pb de variable mais où ?

Invité
Invité n'ayant pas de compte PHPfrance

11 janv. 2006, 16:36

bonjour à tous,
voici le soucis

sur localhost j'ai créé la base carodb dans laquelle j'ai créé une table magasin dont les champs sont vetements et livres

Quand je fais select * from magasin j'ai bien

Code : Tout sélectionner

vetements livres kiabi Harry potter gemo les fleurs du mal

ensuite j'ai créé un formulaire (formulairebase1.htm) et son php (valide.php) avec les codes suivants

formulaire
<form action="valide.php" method="post">
  <p>Quelle est votre v&ecirc;tement pr&eacute;f&eacute;r&eacute; ?<br>
    <input type="text" name="vetements">
  </p>
  <p>Quel est votre livre pr&eacute;f&eacute;r&eacute; ?<br>
    <input type="text" name="livres">
    <input type="submit" value="Envoyer">
  </p>
</form>


valide
<?PHP
 
$db = mysql_connect('localhost', 'caro', 'oceiris'); 
mysql_select_db('carodb',$db); 
 
$sql = "INSERT INTO magasin
VALUES('$vetements','$livres')";
mysql_query($sql) 
or die('Erreur SQL !'.$sql.'
'.mysql_error()); 
 
echo 'merci beaucoup, vos infos ont été enregistrées.'; 
mysql_close(); 
 
?>


Ces 2 fichiers je l'ai ai mis dans program files\easyphp1-8\www\exercicescaro

quand je test j'ai le message suivant
Notice: Undefined variable: vetements in f:\program files\easyphp1-8\www\exercicescaro\valide.php on line 7

Notice: Undefined variable: livres in f:\program files\easyphp1-8\www\exercicescaro\valide.php on line 7
merci beaucoup, vos infos ont été enregistrées.

et bein entendu quand je repasse par le select * from magasin j'ai rien de neuf
si j'enlève les ' il me met vetements et livres mais pas ce que j'ai marqué dans les champs ! et il m'ajoute 2 lignes vides !!!

pouvez vous m'aiguiller stp ? merci

Mammouth du PHP | 19672 Messages

11 janv. 2006, 16:55

Normal, tu ne récupères pas les valeurs envoyées depuis le formulaire: ce que tu as fait correspond à une configuration par défaut de PHP d'avant la version 4.2 qui avait la directive register_globals à ON : par défaut, elle est maintenant à OFF et on doit utiliser les super-globales. Correction :
<?php
$vetements = $_POST['vetements'];
$livres    = $_POST['livres'];

$db = mysql_connect('localhost', 'caro', 'oceiris');
mysql_select_db('carodb',$db);

$sql = "INSERT INTO magasin VALUES('". $vetements ."', '". $livres ."')";
mysql_query($sql) or die('Erreur SQL !'.$sql.' '.mysql_error());

echo 'merci beaucoup, vos infos ont été enregistrées.';
mysql_close();
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

11 janv. 2006, 17:00

ah merci je comprenais pas pourquoi dans certains codes yavé post ou pas !
je vais essayer
merci beaucoup !

Invité
Invité n'ayant pas de compte PHPfrance

11 janv. 2006, 17:02

impeccable !
merci merci !