livre d'or erreur

ludo2163
Invité n'ayant pas de compte PHPfrance

18 avr. 2014, 21:30

Comment sa ?
je ne vois pas ce que tu veux

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 avr. 2014, 21:59

Montre nous le code parce que la c'est pas simple ;)

Tu as peu être une différence de configuration entre les ordis de ton lycée et le tiens (conf. de php).


@+
Il en faut peu pour être heureux ......

ludo2163
Invité n'ayant pas de compte PHPfrance

19 avr. 2014, 07:51

Il y a déjà tous le code.
Mais le revoici étant donner qu'il y a eu pas mal de modification:

page 1, guestbook.php:
<html>
  	 <head>
  	 <title>Mon livre d'or</title>
  	 <script language="JavaScript">
<!--
function verif(lemail) {
    var arobase = lemail.indexOf("@"); var point = lemail.lastIndexOf(".")
    if((arobase < 3)||(point + 2 > lemail.length)||(point < arobase+3))
        return false
        return true
}

function testform(lenom,mail,comment) {
    if(lenom.value=="") {
        lenom.focus();
        return false
    }
    if(!verif(mail.value)) {
        mail.value="";
        mail.focus();
        return false
    }
    return true
}
//-->
</script>
  	 </head>
  	 <body>
  	 <?php
  	 include('config.inc.php');
  	 // Ici on ouvre une connexion au serveur MySQL
	 // on se connecte à MySQL
$db = mysql_connect('localhost', 'root', ''); 
mysql_select_db('test',$db);
  	 // Voir le tutorial sur ce sujet
  	 
  	 // Si le formulaire à été soumis, $ajout vaudra true
  	 if (isset($_POST['ajout'])) {
   	 
   	// On récupère les données postées : Voir les tutos dans la section "Débutez"
	 
  	 // On vérifie que les champs ne sont pas vides
  	 if (!empty($name) && !empty($lemail) && !empty($comment)) {     
  	     // Définit la variable de date
  	     $date = time();
  	 
  	     // Créé la requête
  	     $query = "INSERT INTO $table(date,name,email,comment) VALUES('$date','$name','$lemail','$comment')";
  	 
  	     // Exécute la requête d'insertion du message
  	     $result = mysql_query($query) or die('Erreur SQL : '.mysql_error());
  	 } else {
  	     // On affiche un message d'erreur
  	     echo '<script language="javascript">alert(\'Merci de remplir tout les champs.\');location.href='.$_SERVER['PHP_SELF'].';</script>';
  	     echo '<noscript>Merci de remplir tout les champs. <a href="'.$_SERVER['PHP_SELF'].'">retour</a></noscript>';
}

  	 }
  	 
  	 // Ici se trouve le script permettant d'afficher la liste de messages
?>
<table width="100%" height="100%" ><tr><td>
  	     <b><?php
  	     
  	     // Requête ordonnant les messages par dates
  	     $query = "SELECT date,name,email,comment FROM $table ORDER BY date DESC";
  	     
  	     // Exécute la requête précédente
  	     $result = mysql_query($query) or die('Erreur SQL : '.mysql_error()); 
  	     
  	     // Renvoie le nombre de lignes pour pouvoir afficher le nombre total de messages postés
  	     echo mysql_num_rows($result); 
  	     ?> 
  	     messages
  	     </b>
  	     <table width="95%"><tr><td>
  	         <hr size=1>
  	 
  	     <?php
  	     // Définit la boucle : tant qu'il y a des messages dans la BDD
  	     while ($val = mysql_fetch_array($result)) { 
  	         echo '<font color="black" face="verdana, arial">Message de :</font>';
  	         // Affiche le pseudo du posteur de message (avec lien mailto:)
  	         echo '<a href="mailto:'.$val['email'].'">'.$val['name'].'</a>'; 
  	         echo '<font color="black" face="verdana, arial">Posté le : </font>';
  	         // Affiche la date où a eté posté le message
  	         echo '<font color="orange">'.date("d/m/Y",$val['date']).'</font>';
  	         // Affiche le message posté
  	         echo '<div>'.htmlentities($val['comment']).'</div>';
  	         echo '<hr size=1>';
  	     } 
  	     // Ici se trouve le formulaire d'ajout de message
	 ?>
  	     </td></tr></table>
  	 </td></tr></table>
  	 
  	 
<table width="80%"><tr><td>
  	     <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" onSubmit="return testform(this.name,this.lemail,this.comment)">
  	     <input type="hidden" name="ajout" value="true">
  	     <table cellspacing="0" cellpadding="0" style="border: 1px solid red;" height="288">
  	         <tr>
  	             <td width="130"><font color="red">Nom</font></td>
 	             <td width="205"><input name="name" size="20"></td>
 	         </tr>
 	         <tr>
  	             <td width="130"><font color="red">Votre Email :</font></td>
  	             <td width="205"><font color="red"><input name="lemail" size="20"></font></td>
  	         </tr>
  	         <tr>
  	             <td colspan="2">
  	                 <textarea name="comment" rows="4" cols="55"></textarea>
  	                 <br><br>
  	                 <input type="Submit" value="Valider">
  	                 <br><br>
  	                 <a href="#">Haut</a><br>
  	             </td>
  	         </tr>
  	     </table>
  	     </form>
  	 </td></tr></table> 
  	 <?php
  	 // Et ici on ferme la connexion à la base de données 
	 @mysql_close();
  	 ?>
  	 </body></html> 
Et la seconde page, config.inc.php:
<?php
  	 
  	 // l'adresse de votre serveur php
  	 $host = 'localhost'; 
  	 
  	 // votre login : root sur localhost
  	 $user = 'root'; 
  	 
  	 // votre pass : vide sur localhost
  	 $pass = 'ludo'; 
  	 
  	 // le nom de la base de données
  	 $bdd = 'test';
  	 
  	 // le nom de votre table Sql
  	 $table = 'guestbook';
  	 
  	 // Renvoie vers la page de code php, ici c'est la page même !
  	 $_SERVER['PHP_SELF']; 
 	 
  	 ?> 
Voilà et voici le lien du site ou j'ai pris le code: http://www.phpdebutant.org/article95.php

Eléphant du PHP | 58 Messages

19 avr. 2014, 09:58

Tu n'as pas de mot de passe dans ton premier extrait de code alors qu'il est spécifié dans le second.

ludo2163
Invité n'ayant pas de compte PHPfrance

19 avr. 2014, 10:17

Tu n'as pas de mot de passe dans ton premier extrait de code alors qu'il est spécifié dans le second.
juste une petite erreur de ma part, mais cela ne change rien, le code ne marche pas

Eléphant du PHP | 58 Messages

19 avr. 2014, 10:37

Peux-tu nous poster le résultat d'un
print_r($db);
juste après
$db = mysql_connect('localhost', 'root', ''); 

ludo2163
Invité n'ayant pas de compte PHPfrance

19 avr. 2014, 10:41

il y a "Resource id #4" qui apparait en haut de la page

Eléphant du PHP | 58 Messages

19 avr. 2014, 12:35

Et si tu fais la même chose avec $query et $result ?

ludo2163
Invité n'ayant pas de compte PHPfrance

19 avr. 2014, 15:43

Et si tu fais la même chose avec $query et $result ?
Cela me met "SELECT date,name,email,comment FROM guestbook ORDER BY date DESC1 messages " pour $query
et "Resource id #51 messages" pour $result

Eléphant du PHP | 58 Messages

20 avr. 2014, 09:30

Pour $query, c'était celui qui fait l'insert ! :D