Erreur page livre d'or

Fermé
christophe - Modifié par Whismeril le 27/12/2014 à 14:05
jordane45 Messages postés 36600 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 décembre 2022 - 28 déc. 2014 à 16:23
Bonjour,
j'ai fais il y a quelques années un script de livre d'or et aujourd'hui j'ai essayé de le remettre en ligne, mais quand je valide celui ci j'ai des erreurs!
et dans ma base de données les champs sont vide

Notice: Undefined variable: pseudo in /flex/domain/monsite.fr/site/www/book/merci.php on line 59
voici la ligne
<input type="text" name="pseudo" value="<?echo $pseudo;?>">

et voici la page entiere



<?
require 'config.php';
?>
<?
/////////////////////////////////////////////////////////////////////////////
///                  Livre d'or  1.0        //////////////////////////
///         /////////////////////
///Vous pouvez modifier le script comme vous voulez, mais vous devez laisser/
/////                    le copyright de l'auteur       /////////////////////
//=========================================================================//
 ////////////////içi les infos de votre base de connexion////////
 // Votre serveur SQL
$Host = "$Host"; //renseigner ici le nom de votre base
// Votre login SQL
$User = "$User"; // ici votre login Sql
$Mdp  = "$Mdp";// Votre mot de passe SQL
// connection
// le nom de la base de donnée
$Base = "$Base";  //
//***************************
mysql_connect ( $Host , $User , $Mdp ) or die('Impossible de se connecter');
mysql_select_db($Base) or die('Impossible de selectionner la base');

?>
<?php
     {
     $sql= "INSERT INTO livredorgv VALUES('','$pseudo','$email','$texte','$departement','$ville','$dat')";
     mysql_query($sql) or die ( " Requete HS<br />".$sql."<br />".mysql_error());
     }
     ?>


<html>
<head>
<title>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#000000">
<div align="center">
    <table width="51%" align="center" border="2">
    <tr>
      <td>
        <div align="center"><font color="#FFFF00" size="4">Merci de votre commentaire,
          Voiçi vos infos</font></div>
      </td>
    </tr>
  </table>
  <form method="post" action="merci.php">
    <center>
      <p></p>
      <table width="29%" border="1" bgcolor="#000066">
        <tr>
          <td>
            <div align="center"><font color="#FFFF00"><b><font color="#FFFFFF">Votre
              pseudo :</font></b></font></div>
          </td>
        </tr>
      </table>
      <p>
        <input type="text" name="pseudo" value="<?echo $pseudo;?>">
      </p>
      <table width="29%" border="1" bgcolor="#000066">
        <tr>
          <td>
            <div align="center"><font color="#FFFF00"><b><font color="#FFFFFF">Votre
              email :</font></b></font></div>
          </td>
        </tr>
      </table>
      <p><font color="#FFFFFF"><b>
        <input type="text" name="email" size="50" value="<?echo $email;?>">
        </b></font></p>
      <table width="29%" border="1" bgcolor="#000066">
        <tr>
          <td>
          </td>
        </tr>
      </table>
      <p><font color="#FFFFFF"><b>
                </b></font></p>
      <table width="29%" border="1" bgcolor="#000066">
        <tr>
          <td>
            <div align="center"><font color="#FFFFFF"><b>Texte de votre commentaire
              : </b></font></div>
          </td>
        </tr>
      </table>
      <p><font color="#FFFFFF"><b>
        <textarea name="texte" cols="40" rows="5"><?echo $texte;?></textarea>
        </b></font></p>
      <table width="29%" border="1" bgcolor="#000066">
        <tr>
          <td>
            <div align="center"><font color="#FFFFFF"><b>Votre Département
              : Ex 59</b></font></div>
          </td>
        </tr>
      </table>
      <p><font color="#FFFFFF"><b>
        <input type="text" name="departement" size="2" value="<?echo $departement;?>">
        </b></font></p>
      <table width="29%" border="1" bgcolor="#000066">
        <tr>
          <td>
            <div align="center"><font color="#FFFFFF"><b>Votre ville :</b></font><font color="#FFFF00"><b></b></font></div>
          </td>
        </tr>
      </table>
      <p><font color="#FFFFFF"><b>
        <input type="text" name="ville" size="50" value="<?echo $ville;?>">
        </b></font></p>
      <table width="29%" border="1" bgcolor="#000066">
        <tr>
          <td>
            <div align="center"><font color="#FFFFFF"><b>Date  :
              Ex 11032003</b></font></div>
          </td>
        </tr>
      </table>
      <p>
        <input type="text" name="date" value="<?echo $dat;?>">
      </p>
      <p><font color="#FFFFFF"><b><a href="index.php">Retour sur notre livre</a></b></font></p>
      <p> <font color="#FFFFFF"><b> </b></font></p>
      <p> </p>
    </center>
  </form>
  <p>  </p>
</div>
</body>
</html>


merci a vous de votre aide


EDIT: Ajout de la coloration syntaxique.

4 réponses

Utilisateur anonyme
28 déc. 2014 à 12:48
Salut, je rajouterais que mysql_* est périmé et dangereux.
1
Utilisateur anonyme
27 déc. 2014 à 22:17
Observe la première ligne de ton code.

<?php
//^^^ ICI!!? 
require 'config.php';

//...


Je vais m'abstenir de trop commenter le reste du code, mais fait attention à bien valider ce que tu entres dans ta bdd. J'aimerais bien m'amuser sur ton livre d'or et y entrer du Javascript malveillant. Tout utilisateur représente un risque.

Regarde surtout la fonction htmlspecialchars().
https://www.php.net/manual/fr/function.htmlspecialchars.php
0
jordane45 Messages postés 36600 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 décembre 2022 4 419
28 déc. 2014 à 16:23
Bonjour,

Pour répondre à ta question...
Notice: Undefined variable:

Cela signifie que la variable n'est pas "connue" ( définie... initialisée...).

Ce message apparait car dans le paramétrage de ton serveur PHP l'affichage des NOTICE est activé ( tu peux le désactiver si tu le souhaites... les explications étants disponiblies à foisons sur le net).
Quoi qu'il en soit.... pour palier à cela... il est vivement conseillé de vérifier qu'une variable existe AVANT de l'utiliser.
(via la fonction ISSET par exemple).

Ce qui pour ta ligne de code donnerait :

<?php
$pseudo = isset($pseudo)?$pseudo :'';
?>
<input type="text" name="pseudo" value="<?echo $pseudo;?>">



Pour ton souci d'insertion en BDD... il faut ajouter du débogage à ton script et essayer de comprendre ce qui ne fonctionne pas.



<?php
require 'config.php';

if(isset($_POST)){
  // 1 - Récupération des variables passées en POST
  $pseudo = isset($_POST['pseudo']?$_POST['pseudo']:'';
  $email = isset($_POST['email']?$_POST['email']:'';
  $texte = isset($_POST['texte']?addslashes($_POST['texte']):'';
  $departement = isset($_POST['departement']?$_POST['departement']:'';
  $ville = isset($_POST['ville']?addslashes($_POST['ville']):'';
  $dat = isset($_POST['date']?$_POST['date']:'';
     
  $sql= "INSERT INTO livredorgv 		VALUES('','$pseudo','$email','$texte','$departement','$ville','$dat')";
		
 // 2 -  Affichage de la requete le temps des tests :
  echo "<br> REQUETE :<br>".$sql; 
 
 // 3 - Lancement de la requete
  mysql_query($sql) or die ( " Requete HS<br />".$sql."<br />".mysql_error());
  }
 ?>



PS : Évite de fermer/ouvrir des balises PHP n'importe où...
?>
<?php


PS2: Tu indiques les infos de connexion à ta BDD dans ton script... mais.. que contient ton fichier config.php.. ce n'est pas déjà ça ??

PS3 : Si ta requête n'insère toujours rien dans ta BDD.. tu prends le résultat du ECHO de ton SQL... et tu le tests en DIRECT dans ta BDD.
Par exemple : https://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql



0
fael13 Messages postés 10 Date d'inscription samedi 21 juin 2014 Statut Membre Dernière intervention 5 janvier 2015
Modifié par fael13 le 27/12/2014 à 18:08
Bonjour,
Tu devrais tout reprendre à zéro ^^"
Tu peux simplifier ton livre d'or en mettant le formulaire, la requête et l'affichage directement sur la même page.

Désolé je ne t'aide pas vraiment, mais je pense que tu as franchement meilleur compte à repartir de zero.

https://openclassrooms.com/fr/courses/1603881-apprenez-a-creer-votre-site-web-avec-html5-et-css3/1607171-creez-des-formulaires
-2