Forum-webmaster
Général => Discussions générales => Message commencé par: Toutankharton le le 02-05-2003 a 19:35:07

Titre: Enregistrement de nom
Posté par: Toutankharton le le 02-05-2003 a 19:35:07

Bon, ce que je demande est assez compliqué, et je ne sait meme pas quel language utiliser :
En fait, je voudrais que, lorsque un visiteur rentre sur la page soit OBLIGÉ d'entrer un nom, et que sur cette page soit affiché l'historique de toutes les personnes qui sont venue visiter cette page...
en gros, la page devrait se presenter comme ça :

Thomas est venu sur cette page 1 fois
Justin est venu sur cette page 10 fois
Toto est venu sur cette page 50 fois

Bon, et une fois cela fait, je voudrai inclure sur un autre page (en locurence la page d'accueil) un tableau du genre, les visiteurs les plus acidus, avec une sorte de classement par nb de visite...

Moi, à vue de nez je trouve que ça sent beaucoup le PHP et je ne sait pas grand chose dedans, mais bon si c'est possible a faire, ça serait cool de m'aider...

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 02-05-2003 a 20:15:10

euh... je n'y connait rien en PHP, alors si tu pouvais me détailler un peu ce ode, que je comprenne...

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 02-05-2003 a 23:03:28

Pour l'instant c'est assez clair, il y a juste un truc que je ne comprend pas :
Citation:
// connexion à MySQL... // on se connecte à MySQL (là faut mettre ta fonction de connexion)


Donc je donne les coordonés pour me connecter a MySQL, la, c sa ? et/ou c quoi exactement que je doit mettre exactement ?

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 04-05-2003 a 21:27:40

Bon, encore pas mal de probs ! je pense que je n'ai pas su bien remplir les données de connexion.php parce qu'il me dit ça :
Citation:
Parse error: parse error, unexpected T_STRING in c:\program files\easyphp\www\visites.php on line 10

Titre: Re:Enregistrement de nom
Posté par: FireLink le le 05-05-2003 a 01:26:15

Non... c'est pas toi c une erreur dans le code...

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 05-05-2003 a 15:35:55

Merci gustave, vous savez quelle est l'erreur ? d'apres ce que PHP dit, c'est à la ligne 10, d'un truc "T_STRING"... je suis perdu !

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 05-05-2003 a 19:02:17

Bé le code c'est toi qui me l'as filé ! Tu veut que je te file ce que j'ai marqué dans connexion.php ???

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 05-05-2003 a 22:03:02

Ouais ba c bon :

<?php
if ($action!=="identifie") { // si action différent de identifie
if ($action=="identifier") { // si action action = identifier
include("connexion.php"); // connexion à MySQL... // on se connecte à MySQL (là faut mettre ta fonction de connexion)
$result=mysql_query("SELECT id FROM visites WHERE nom='$nom'"); // on sélectionne l'id de ta table visite ou le nom vaut le nom tapé
if (mysql_num_rows($result)!=1) { // si pas de résultat
mysql_query("INSERT INTO visites (nom,visites) VALUES ('$nom','1'); // on fait un nouvel enregistrement du nom avec 1 visite
}
else { // sinon
mysql_query("UPDATE visites SET visites='visites+1' WHERE nom='$nom'"); // on met à jour la table en ajoutant une visite pour le nom tapé
}
mysql_close(); // fin de la connexion à MySQL
header ("Location: $PHP_SELF?action=identifie"); // on revient sur la page avec action identifie
}
else { // sinon
echo "<form method=\"post\" action=\"$PHP_SELF?action=identifier\">Nom : <input type=\"text\" name=\"nom\" /><input type=\"submit\" value=\"Ok\" /></form>"; // formulaire de demande de nom
}
}
?>

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 05-05-2003 a 22:21:11

Probleme résolu !
le nouveau prob c'est qu'il m'affiche ça :
Citation:
Désolé, accès à la base mysql impossible Message de MySQL : Access denied for user: 'joulin.thomas@php5-1.free.fr' to database 'mysql'

Donc, je suppose que c'est parce que je ne rempli pas bien les données de conexion.php... je sait je suis enervant ! dc :
define(NOM, "La je met mon pseudo ?");
define(MDP, "ici mon password ?");
define(BASE, "Ici, ???");
define(SERVEUR, "Là je laisse localhost nan ?");

sachant que je suis chez free...

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 05-05-2003 a 22:35:25

ba alors si je met ça :

define(NOM, "PSEUDO");
define(MDP, "PASSE");
define(BASE, "SQL.FREE.FR");
define(SERVEUR, "LOCALHOST");

il m'affiche
Citation:
Désolé, accès à la base sql.free.fr impossible Message de MySQL : Access denied for user: 'joulin.thomas@php5-2.free.fr' to database 'sql.free.fr'

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 05-05-2003 a 22:42:56

lol ! c rien ;D bonapparemment il se connect bien, mais >:( il y a un nouveau prob :
Citation:
Warning: Cannot add header information - headers already sent by (output started at /var/www/free.fr/11/j/o/u/l/joulin.thomas/connexion.php:38) in visites.php on line 13

Donc ? Un prob ligne 13 ou quoi ? voici ma ligne 13 :

Code:
header ("Location: $PHP_SELF?action=identifie"); // on revient sur la page avec action identifie

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 05-05-2003 a 22:59:30

ba apparemment il me dise de mettre comme j'ai mis ...
Citation:
Accéder à la base de données avec PHP

Les fonctions habituelles de PHP3 ou PHP4 pour utiliser MySQL sont disponibles. Votre base de données porte le nom de votre login. Pour y accéder, vous devez utiliser votre login/mot de passe habituel et vous connecter sur le serveur sql.free.fr Exemple de connexion :


<?php

//ici les parametres pour la connexion
$host="sql.free.fr"; $base="Votre login"; $passe="Votre mot de passe";

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 06-05-2003 a 19:12:09

Ba ouais mais genre quoi ? j'y conait rien à php et sur phpdebutant ils n'explique pas comment sa connecter a mysql (sauf lecon 14, mais c'est un peu confus...)
dc qu'est ce que je fait ?

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 06-05-2003 a 21:33:24

Bon, j'ai cherché sur des sites, et ils n'avaient pas le meme script de connexion quer toi, mais j'ai quand meme fait le leur, pour tester... donc voila ce que j'ai fait :

Code:
<?
$db = mysql_connect('sql.free.fr','joulin.thomas','58fhw7wi') or die ("erreur de connexion");
mysql_select_db('joulin.thomas',$db) or die ("erreur de connexion base");

// pour récupérer les données, on utilise la fonction select comme suit

$req = mysql_query("SELECT id,date,prenom,email from test_tbl "); // on sélectionne les colonnes id,date,prenom,email de la table test_tbl

//pour afficher on se sert de 2 fonctions, une boucle while() et mysql_fetch_array() qui recroupe les données de la requète dans un tableau associatif

while ( $resultat = mysql_fetch_array($req))
{
print 'l\'id ->'.$resultat[id].' date ->'.$resultat[date].' prenom->'.$resultat[prenom].' email ->'.$resultat[email].'<br>';
}

mysql_close();//pensez toujours à refermer la connexion
?>


apres avoir crée cette table et mis les infos dedans bien sur, et le resultat est positif... donc, ma question, ce serait pas plus simple que je mette ce script de connexion, qui fait que deux lignes, ou dans ton script il y des truc important a mettre... voila merci d'avance de ton aide (et de ta patience lol !)

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 07-05-2003 a 21:29:49

On me dit que
Citation:
Header se mets toujours avant toute balise html, ou echo ou print et sans espace avant <?php

donc, cela pourrait resoudre mon prob de la ligne 13...
mais ou je mettrais cette ligne?

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 08-05-2003 a 13:10:21

D'acord, j'ai comprit, donc en fait, je ne devrait pas avoir de probleme avec le header si tout se passe bien... Mais est ce que l'on pourrait pas essayer de l'enlever (donc ne pas avoir de message d'erreur) pour voir ce que cela donne ?

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 08-05-2003 a 14:16:25

Ba c'est ce que j'ai fait avec le script simple, et tout a bien fonctionné ! mais je ne sait pas ce qu'il faut que je mette pour tester avec ton script

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 08-05-2003 a 15:50:24

yep :) resultat convaincant : je met ce code :

Code:
<?php
include("connexion.php");
$result=mysql_query("SELECT id,date,prenom,email from test_tbl");
while ($arr=mysql_fetch_array($result)) {
echo $arr[id]." --> ".$arr[date]."<br />";
}
mysql_close();
?>


et il m'affiche
Citation:
1 --> 4-04-2002
2 --> 4-04-2002
3 --> 4-04-2002
4 --> 4-04-2002

ce que je voulait voir.. donc le prob ne vient pas de conexion.php ?

Maintenant la page s'affiche et tout, mais on a ça comme erreur :
Citation:
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in visites.php on line 16

Ma ligne 16 c'est :

Code:
echo "<form method="post" action="$PHP_SELF?action=identifier">Nom : <input type="text" name="nom" /><input type="submit" value="Ok" /></form>"; // formulaire de demande de nom

Alors ou est l'erreur ? J'ai cherché ce que cela voulait dire et on m'a dit que L'analyseur PHP s'attendait à rencontrer un caractère spécial, comme par exemple : }, ), ", ', ou , (virgule) et qu'il ne l'a pas trouvé... Pourtant il y a bien le ";" a la fin de la ligne, et tout...

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 08-05-2003 a 16:05:16

Oula ! ça va plus du tout ! bon j'ai mis des \ devant les " comme ça :
Citation:
echo "<form method=\"post\" action=\"$PHP_SELF?action=identifier\">Nom : <input type=\"text\" name=\"nom\" /><input type=\"submit\" value=\"Ok\" /></form>"; // formulaire de demande de nom

et alors il me done une erreur gigantesque :
Citation:
Warning: Failed opening 'connexionphp' for inclusion (include_path='/var/www/free.fr/11/j/o/u/l/joulin.thomas/include/:.') in visites.php on line 4

Warning: Can't connect to MySQL server on 'sql.free.fr' (111) in visites.php on line 5

Warning: MySQL Connection Failed: Can't connect to MySQL server on 'sql.free.fr' (111) in visites.php on line 5

Warning: MySQL: A link to the server could not be established in visites.php on line 5

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in visites.php on line 6

Warning: Can't connect to MySQL server on 'sql.free.fr' (111) in visites.php on line 7

Warning: MySQL Connection Failed: Can't connect to MySQL server on 'sql.free.fr' (111) in visites.php on line 7

Warning: MySQL: A link to the server could not be established in visites.php on line 7

Warning: mysql_close(): no MySQL-Link resource supplied in visites.php on line 12

Warning: Cannot add header information - headers already sent by (output started at /var/www/free.fr/11/j/o/u/l/joulin.thomas/visites.php:4) in visites.php on line 13


Et puis on me dit que au lieu de d'afficher un message d'erreur, je renvoie un boolean...en fonction du résultat renvoyé par la fonction, je fais le header ou non.
alors si tu comprend...

Titre: Re:Enregistrement de nom
Posté par: Toutankharton le le 08-05-2003 a 21:12:33

En fait, j'avais simplement oublié les guillemets pour l'include... Maintenant que je les ai mis il m'affiche une erreur 404 ! c'est bizzare nan ?

// je rajoute que l'erreur est pour le fichier "http://joulin.thomas.free.fr/visites.php?action=identifier"


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.