Probleme formulaire et insert into ?
Hello,
Mon petit problème du jour: j'ai un formulaire sur lequel j’envoie les données vers la page goaction.php pour faire un insert into et rien ne s'inscrit dans la base, qui veux bien verifier mon code, Merci :)
<form method="post" name="form1" action="goaction.php">
<input name="nom" type="text" class="box" value="" size="41">
etc...
<input type="submit" value="Envoyer" name="envoyer">
</form>
Je recupère le code pour faire un insert into
<?
if (isset($_POST['ID'])
&& isset($_POST['nom'])
etc…
&& isset($_POST['adresse'])) {
$sql = 'INSERT INTO ma_table (ID, nom, adresse) VALUES('.$_POST['nom'].'", "'.$_POST['adresse'].'")';
mysql_query ($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());
echo ‘Bravo';
mysql_close();
}
?>
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
Bonjour,
Voila une solution, peut-etre qu'elle fonctionnera :
<?php // tous les serveurs ne connaissent pas forcement les <?
/*Mettre dans la meme page, comme les retour d'erreur sont plus facile a afficher, apres tu peux toujours separer le formulaire html et l'inclure !*/
//Toujours verifier si le formulaire a été submit
if(isset($_POST['envoyer']) && $_POST['envoyer'] == "Envoyer")
{
/* tu ne teste pas si ta variable est vide ?!! voir empty() */
if ((isset($_POST['ID']) // tu avais oublier une (
&& isset($_POST['nom'])
etc…
&& isset($_POST['adresse'])) {
//N'oublie pas ta connection mysql
/*
Pour les insertions dans mysql, il faut "nettoyer" ces variables (sinon tu risque d'avoir des prob d'affichage et de securité), regarde les cours de laglobule, sinon tu as aussi strip_tags() , htmlentities() , ....... bref */
*/
$sql = 'INSERT INTO ma_table (nom, adresse) VALUES("'.$_POST['nom'].'", "'.$_POST['adresse'].'")'; // tu avais oublier un " devant $_POST['nom'].
mysql_query ($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());
echo 'Bravo'; //tu as mis un ` , g rectifier
mysql_close();
//faire ta redirection;
}
?>
<form method="post" name="form1" action="goaction.php">
<input name="nom" type="text" class="box" value="<?php if(!empty($_POST['nom'])) echo $_POST['nom'];?>" size="41">
etc...
<input type="submit" value="Envoyer" name="envoyer">
</form>
Si tu mets ID, il fallait mettre "" dans ton inserto, si ton id est en autoincrement, pas besoin de mettre ID, et donc pas besoin de "", il faut garder l'ordre des champs.
Apres pour les petites erreurs, bon tu as du surement taper vite fait ton script et ca fait souvent ca ! ;)
Je t'ai rajouter ma facon a moi, apres chacun a la tienne ! Ce sont des conseils que m'ont donnée aussi des personnes, apres tu peux les suivres si tu en as envie.
Ciao,
I am singing in the rain , I am happy again !!
Merci pour ta correction. Maintenant je recois Parse error: parse error... est qu'il ne manque pas un } quelque part ?
Si Dieu existe, j'espère qu'il a une bonne excuse -woody allen-
<?php
if(isset($_POST['envoyer']) && $_POST['envoyer'] == "Envoyer")
{ // <== C'est ce bloque qui n'était pas fermé
if ((isset($_POST['ID']) // tu avais oublier une (
&& isset($_POST['nom'])
etc…
&& isset($_POST['adresse'])) {
//N'oublie pas ta connection mysql
$sql = 'INSERT INTO ma_table (ID, nom, adresse) VALUES(NULL,"'.$_POST['nom'].'", "'.$_POST['adresse'].'")';
// En auto-incrément tu peux aussi mettre NULL à la place de "",
//je pense même que c'est mieu. à savoir aussi,
//si tu donne toutes les valeurs de chaque colonne de ta table, pas besoin de "(ID, nom, adresse)"
mysql_query ($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());
echo 'Bravo'; //tu as mis un ` , g rectifier
mysql_close();
//faire ta redirection;
}
} // <== La fermeture manquante
?>
<form method="post" name="form1" action="goaction.php">
<input name="nom" type="text" class="box" value="<?php if(!empty($_POST['nom'])) echo $_POST['nom'];?>" size="41">
etc...
<input type="submit" value="Envoyer" name="envoyer">
</form>
Kro kro kro kronemburg
Salut,
Je suis désolé, j'ai pas tester le script et donc j'ai pas remarquer les { }, par contre pour les accolades, quand tu ouvres une accolade, tu va a la ligne, en indentant de 4 espaces (pour eviter les probleme d'affichage entre les editeurs php), ensuite tu vas a la ligne et tu mets ton bloc d'instruction.
Voila ca te permettra d'avoir un code plus lisible pour les autres personnes et donc une facilité plus accrue pour retrouver les erreurs. (ce sont des conseils lu dans un bouquin).
Bonne continuation.
Ciao,
I am singing in the rain , I am happy again !!
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: