probleme avec formulaire php, enregistrement en db

Mammouth du PHP | 843 Messages

18 mars 2006, 22:43

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:
Modifié en dernier par BeRoots le 18 mars 2006, 23:50, modifié 1 fois.
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

18 mars 2006, 22:58

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 843 Messages

18 mars 2006, 23:56

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:
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

19 mars 2006, 00:06

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 15 Messages

19 mars 2006, 00:10

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
Entre deux solutions, toujours choisir la troisième

Mammouth du PHP | 843 Messages

19 mars 2006, 00:20

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:
Modifié en dernier par BeRoots le 19 mars 2006, 00:33, modifié 2 fois.
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Eléphanteau du PHP | 15 Messages

19 mars 2006, 00:26

C'est bien ça, et tu as effectivement un champ de formulaire nommé "save" ... Quelle est l'erreur ?
Entre deux solutions, toujours choisir la troisième

Mammouth du PHP | 843 Messages

19 mars 2006, 00:32

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
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

19 mars 2006, 01:04

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>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 15 Messages

19 mars 2006, 01:06

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 ...
Entre deux solutions, toujours choisir la troisième

Mammouth du PHP | 843 Messages

19 mars 2006, 01:49

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:
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

19 mars 2006, 01:54

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" ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 843 Messages

19 mars 2006, 02:12

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
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 843 Messages

19 mars 2006, 02:14

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<
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

19 mars 2006, 02:39

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" !

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute