Page 1 sur 3

probleme avec formulaire php, enregistrement en db

Posté : 18 mars 2006, 22:43
par BeRoots
salut à tous :)

j'ai fait un formulaire à partir de l'exemple proposer par Cyrano.

dans sont exemple il ne traite pas la partie sauvegarde des données donc j'ai essayer de le faire mais je rencontre des problèmes :cry:

je souhaiterai enregistrer les resultat dans une table de db et je pense que ce que j'ai fait ai correct :wink:

une fois que le formulaire est verifié, il devient une <div> ou l'on affiche toutes les variables correspondantes aux champs du formulaire.

dans cette div, apres l'affichage des variables, j'ai inseré un deuxieme formulaire comme ceci:
print ("<form action=\"<?php echo($_SERVER['PHP_SELF']); ?>\" method=\"post\"><input type=\"submit\" class=\"verif\" name=\"save\" value=\"S'enregistrer\" /></form>");
j'ai le message d'erreur suivant:
Parse error: parse error in c:\.....form_inscription21_final.php on line 219
le probleme est en faite dut à ceci:
<form action=\"<?php echo($_SERVER['PHP_SELF']); ?>\"
pourtant j'ai le même action dans le formulaire n°1 et ça passe :-k


si quelqu'un peut m'aider :pouce:

merci d'avance :wink:

Posté : 18 mars 2006, 22:58
par Truc
Pas très courant d'avoir des ouvertures de balises php et echo dans un "print" :wink:

Et vraiment pas obligé de balancer tout ce code [-X

Posté : 18 mars 2006, 23:56
par BeRoots
c'est vrai qui a pas besoin, désolé :oops:

j'edite mon premier message pour virer ça ;)

par contre que ce soit print ou echo c'est pareil :?

sauf qu'avec echo j'ai le message suivant:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
si quelqu'un comprend le fin mot de l'histoire :pouce:

Posté : 19 mars 2006, 00:06
par Truc
tu peux toujours nous montrer ce que tu as tenté de faire avec un echo, avec une dizaine de lignes autour de la ligne, sinon on ne comprend encore moins :wink:

faut choisir ...

Posté : 19 mars 2006, 00:10
par rafaelle
Bonjour

Faut choisir ...

Soit tu fais :
//le php qui est avant, éventuellement 
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"><input type="submit" class="verif" name="save" value="S'enregistrer"></form>
Soit tu fais (moi je préfère echo mais c'est pareil avec print) :
<?php
echo "<form action=\"".$_SERVER['PHP_SELF'])."\" method=\"post\"><input type=\"submit\" class=\"verif\" name=\"save\" value=\"S'enregistrer\" /></form>";
?>
Mais pas les deux, hein ...

Raf

Posté : 19 mars 2006, 00:20
par BeRoots
en faite c'était une grosse erreur de debutant :oops:

au lieu de faire des echo consecutifs avec du code html dedant il fallait tout simplement mettre ceci:
?>
<!-- le code html seul...-->
<!-- ... encore du html-->
<!-- ... ha voila la ligne interessante -->
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<input type="submit" class="verif" name="save" value="S'enregistrer" />
</form>
<?php
// enregistement en base de donnée dans une table

if(isset($_POST['save']))
{
// mise au format ISO de la date de naissance
$datenaiss_sql = "$annee-$mois-$jour";

//connexion au serveur MySQL
include ("sql_connection.php");
$connexion = mysql_connect($host, $user, $pass)
or die('Erreur SQL !<br />'.$connexion.'<br />'.mysql_error());

//sélection de la BDD
$db = mysql_select_db($usebdd,$connexion)
or die('Erreur SQL !<br />'.$db.'<br />'.mysql_error());

// insertion des données recuperer dans la table

$sql = "INSERT INTO " . $table2 . " (prenom, nom, datenaiss) VALUES($prenom, $nom, $datenaiss_sql)";
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// déconnection avec MySQL
mysql_close();
// redirection
header("location: index.php");
exit;
}

par contre maintenant j'ai un problème avec ceci:
 if(isset($_POST['save']))
je m'en sert pour verifier que le <input> à bien été cliquer avant de lancer la sauvegarde en db. Mais aparament ça n'a pas l'air d'être ça :-k

si quelqu'un peu m'expliquer :wink:

isset

Posté : 19 mars 2006, 00:26
par rafaelle
C'est bien ça, et tu as effectivement un champ de formulaire nommé "save" ... Quelle est l'erreur ?

Posté : 19 mars 2006, 00:32
par BeRoots
aucune erreur, c'est bien là le problème :?

pourtant il devrait y en avoir une car ma redirection ne ce fait pas et l'enregistrement en DB non plus d'ailleur :cry:

je sais plus trop où chercher la :-k

Posté : 19 mars 2006, 01:04
par Truc
il n'est pas vide le formulaire, il y a des champs a l'interieur ?

test le retour de POST:
<pre>
<? var_dump($_POST); ?>
</pre>

ah ?

Posté : 19 mars 2006, 01:06
par rafaelle
Au passage, mets des quotes autour de tes chaînes :
VALUES('$prenom', '$nom', '$datenaiss_sql')

Tu n'as pas l'air d'entrer dans ta boucle ... Vérifie en faisant un :
else { echo "toto"; }
après l'accolade fermante } de ton if ...

Posté : 19 mars 2006, 01:49
par BeRoots
et bien non je ne rentre pas dans ma boucle :?

@TRUC:

non mon formulaire n'est pas vide. Quand je test le retour de POST j'ai bien un tableau qui s'affiche :wink:

si quelqu'un voit où est le soucis :pouce:

Posté : 19 mars 2006, 01:54
par Truc
non mon formulaire n'est pas vide. Quand je test le retour de POST j'ai bien un tableau qui s'affiche
Oh, quelle joie :lol:
On peut le voir s'il te plait [-o<

Il contient un indice "save" ?

Posté : 19 mars 2006, 02:12
par BeRoots
oui bien sur #-o
array(12) {
["pseudo"]=>
string(7) "zzzZzzz"
["pass"]=>
string(3) "xxx"
["passverif"]=>
string(3) "xxx"
["prenom"]=>
string(4) "toto"
["nom"]=>
string(4) "titi"
["phone"]=>
string(10) "0600000000"
["email"]=>
string(19) "[email protected]"
["adresse"]=>
string(15) "lieu dit la bas"
["postal"]=>
string(5) "54222"
["ville"]=>
string(5) "pekin"
["datenaiss"]=>
string(10) "15/12/1979"
["envoi"]=>
string(7) "Envoyer"
}
bizard l'indice est celui de mon autre formulaire :-k (qui est dans le même code)

vait essayer un...

Code : Tout sélectionner

<pre> <? var_dump($_POST['save']); ?> </pre>
... à la place

Posté : 19 mars 2006, 02:14
par BeRoots
j'ai le message suivant:
Notice: Undefined index: save in c:\program files\easyphp1-8\www\chart_php2\admin\form_inscription22_final.php on line 240

NULL
quelqu'un peut il m'expliquer [-o<

Posté : 19 mars 2006, 02:39
par Truc
tu es sûr qu'il s'agit du même formulaire ?

tu as ça dans POST:
["envoi"]=>
string(7) "Envoyer"
donc "envoi" et non "save" !