Boulet du php

Fermé
rach - 14 nov. 2007 à 02:37
 rach - 16 nov. 2007 à 20:38
Bonjour,
Mon idée a la base est de creer un formulaire en stockant les reponses dans une base de données...
J'ai instalé Wamp sur mon ordi et meme en me contentant de copier coller certains scripts je n'arrive pas a inserer les informations saisies
dans la bdd creee.
j'imagine que jai raté qq chose... je pense que mon probleme vient non moins du script ( puisque j'ai tenté avec plusieurs) que d'un probleme
de " localhost".
Voila comment je procede: je creer un ficher formulaire que j'enregistre en.html ou. php (jai tenté les deux ca ne change rien.
je cree un fichier cible que j'enregistre en .php et qui contient le codage censé faire la requet a Mysql.
ces deux fichiers sont enregistrés (enfin etaient parceque ca m'gavait j'verrais demain... ^^) dans :d/Wamp/www/test
j'arrive a enregister des données dans la table en passant directement par mysql mais pas par script...
qu'est ce que j'fais mal? je recopie quand meme lles scripts
la table creee est: film
Le fichier formlaire:
<html>
<head>
<title>Insertion film</title>
</head>
<body>
<form method="post" action="insert.php">
Genre:<br>
<input type="text" name="genre_film"><br>
Titre:<br>
<input type="text" name="titre_film"><br>
Réalisateur:<br>
<input type="text" name="realisateur"><br>
Année de sortie:<br>
<input type="text" name="sortie_film"><br>
Durée du film en minutes<br>
<input type="text" name="duree_film"><br>
<input type="submit" name="submit" value="Insérer le film">
</form>
</body>
</html>

le fichier que j'enregistre en cible.php ou insert.php ....

<?
// Si action d'enregistrement
if($submit){
// connection a la base en local
$connect = mysql_connect("localhost","root","");
// selection de la base
mysql_select_db("film", $connect);
// votre requete d'insertion
$sql="INSERT INTO film (id_film, genre_film, titre_film, realisateur, sortie_film,duree_film)";
$sql.=" VALUES ('', '$genre_film', '$titre_film', '$realisateur', '$sortie_film', '$duree_film')";
mysql_query("$sql", $connect);
// fermeture de la connection
mysql_close($connect);
echo"insertion réussie";
}
?>
jai essayé de tout mettre sur la meme page enregistrée en tant que insert.php, mais ca ne change rien...
le pire c'est que je n'ai pas de message d'erreur :/
Merci de m'orienter
A voir également:

23 réponses

sfel Messages postés 1640 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2009 430
14 nov. 2007 à 07:31
bonjour

déjà ici tu as une erreur

if($submit)

toi c'est
if($_POST[submit])


ensuite

mysql_select_db("film", $connect);

c'es tjuste
 mysql_select_db("film");


et
$sql.=" VALUES ('', '$genre_film', '$titre_film', '$realisateur', '$sortie_film', '$duree_film')";

paieil c'est
$_POST[genre_film]
$_POST[titre_film]


bon tu peux faire avant :
$genre_film = $_POST[genre_film]
$titre_film = $_POST[titre_film]


et ca
mysql_query("$sql", $connect);

tu remplace par
mysql_query("$sql", $connect);


et enfin
mysql_close($connect);

simplement
mysql_close();
0
Bonjour,
Merci de repondre si rapidement.
J'ai donc essaye de corriger suivant vos conseils, je ne suis pas sure mais ca devrait donner ca:?
<?
// Si action d'enregistrement
if($_POST[submit]){
// connection a la base en local
$connect = mysql_connect("localhost","root","");
// selection de la base
mysql_select_db("film");
// votre requete d'insertion

$genre_film = $_POST[genre_film]
$titre_film = $_POST[titre_film]
$realisateur = $_POST[realisateur]
$sortie_film = $_POST[sortie_film]
$duree_film = $_POST[duree_film]


$sql="INSERT INTO film (id_film, genre_film, titre_film, realisateur, sortie_film,duree_film)";
$sql.=" VALUES ('','$_POST[genre_film]','$_POST[titre_film]','$_POST[realisateur]','$_POST[sortie_film]','$_POST[duree_film]')";

mysql_query("$sql", $connect);
// fermeture de la connection
mysql_close();
echo"insertion réussie";
}
?>
Malheureusement ca n change ien e mon coté. quand j'envoye le formulaire il point sur la partie "insert.php" mais je ne vois pas insertion réussie comme prevu.
Vous me demander egalement:
et ca
mysql_query("$sql", $connect);
tu remplace par
mysql_query("$sql", $connect);
et la je ne vois pas la difference?
Merci de votre aide
0
sfel Messages postés 1640 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2009 430
14 nov. 2007 à 08:34
autant pour mooi, j'ai oublié de supprimer

mysql_query("$sql", $connect);
a remplacer par
mysql_query($sql);

et même tu tape
mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());

ce "or die", te permet d'afficher a l'écran si la requete plante, et où est le problème.

0
Bonjour,
je viens de trouver la faute impardonnable :X
dans la premiere ligne <? il fallait
<?php ( n'est pas boulet qui veut).
j'ai aussi changé :
mysql_select_db("film"); par
mysql_select_db("test");
ca marche je suis trop ! content
merci sfel pour ton coup de main.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sfel Messages postés 1640 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2009 430
14 nov. 2007 à 10:01
de rien

<? passe aussi très bien

0
Bonjour,
Ca marche plus :/
d'un cote jai ca: formulaire html:

<html>
<head>
<title>Insertion film</title>
</head>
<body>
<form method="POST" action="insert.php">
Genre:<br>
<input type="text" name="genre_film"><br>
Titre:<br>
<input type="text" name="titre_film"><br>
Réalisateur:<br>
<input type="text" name="realisateur"><br>
Année de sortie:<br>
<input type="text" name="sortie_film"><br>
Durée du film en minutes<br>
<input type="text" name="duree_film"><br>
<input type="submit" name="submit" value="Insérer le film">
</form>
</body>
</html>

qui renvoit a ca:

<html>
<body>
<?php
// Si action d'enregistrement
if($_POST[submit]){
// connection a la base en local
$connect = mysql_connect("localhost","root","");
// selection de la base
mysql_select_db("Test");
// votre requete d'insertion
$sql="INSERT INTO film (id_film, genre_film, titre_film, realisateur, sortie_film,duree_film)";
$sql.=" VALUES ('','$_POST[genre_film]','$_POST[titre_film]','$_POST[realisateur]','$_POST[sortie_film]', '$_POST[duree_film]')";

mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());
// fermeture de la connection
mysql_close();
echo"insertion réussie";
}
?>
</body>
</html>

jusqu'ici tout va bien mais quand j'essaye d'adapter ce script ca donne pour la premiere partie:
<form method="POST" action="InscriptionReussie.php">

<legend>Reel</legend>
<fieldset id="Reel">
<label>Nom: </label>
<input type="text" name="Nom" size="20"/><br/>
<label>Prenom: </label>
<input type="text" name="Prenom" size="15" /><br />
<label>Tel Fixe: </label>
<input type="text" name="TelFixe" size="14" Maxlenght="14"/><br/>
<label>Tel Portable: </label>
<input type="text" name="TelPortable" size="14" Maxlenght="14"/><br/>
<label>Adresse: </label>
<input type="text" name="Adresse" size="30" /><br />
<label>Email: </label>
<input type="text" name="Email" size="20" Maxlenght="20"/><br/>
<p>
<input type="submit" name="submit" value="S'inscrire" />
<input type="reset" value="Recommencer" />
</p>
</form>

et:
<html>
<body>
<?php
// Si action d'enregistrement
if($_POST[submit])
{
// connection a la base en local
$connect = mysql_connect("localhost","root","");
// selection de la base
mysql_select_db("Test");
// votre requete d'insertion
$sql="INSERT INTO inscriptions (id, Nom, Prenom, TelFixe, TelPortable, Adresse, Email)";
$sql.=" VALUES ('','$_POST[Nom]','$_POST[Prenom]','$_POST[TelFixe]','$_POST[TelPortable]', '$_POST[Adresse]', '$_POST[Email])";
mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());
// fermeture de la connection
mysql_close();
echo"insertion réussie";
}
?>
</body>
</html>
Et la ca ne marche pas :/

quelq'un a une idée sil vous plait?
0
sfel Messages postés 1640 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2009 430
14 nov. 2007 à 13:00
ca ne marche pas sur le film ou la personne (ou les deux)
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
14 nov. 2007 à 13:28
Ca marche pour le film mais pas pour la personne.

Juste une petite remarque par rapport à ce qu'à dit sfel :

mysql_query($sql, $connect);


tu remplace par

mysql_query($sql);


C'est tout de même préférable de prendre l'habitude de gérer la connexion ouverte par le script plutot que prendre la derniere connexion ouverte par défaut.
Quand tu fait : "mysql_queryy($request)" sans préciser quel source de connexion prendre, la derniere connexion ouverte est prise par défaut. Donc si un jour dans un script tu gère plusieurs connexion, tu pourrais te trouver mal et mettre un certain temps à comprendre ce qui ne va pas. Cela dit, les deux syntaxe fonctionne très bien, libre à toi de prendre celle qui te correspond le plus selon ton besoin.


Pour ce qui est de ta nouvelle erreur, rien de choquant à priori dans le code, il faudrait que tu place des :
echo "<BRPASSAGE ICI";

par exemple, pour déterminer exactement ou plante ton script. Sinon as-tu vérifié que ta requête SQL est correcte (si tu l'exécute directe sur ta base de données, à la main) ?

0
Bonjour,

pas du tout d'accord avec un post plus haut, il est préférable d'utiliser <?php ?> à <? ?> (en php5 ça ne passe pas !)

ensuite dans ta rquette essayes de modifier les valeurs comme ceci

VALUES ('','".$_POST['Nom']."',etc......


et ensuite au lieu de:

mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());
// fermeture de la connection
mysql_close();
echo"insertion réussie";


mets plutot:

$req=mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());
  // fermeture de la connection
mysql_close();
if($req){
    echo "insertion réussie";
}else{
    echo "Pas d'insertion dans la BDD"; 
}
0
Bonjour,
Merci pour vos reponses,
j'explore ces nouvelles pistes et je vous tiens informé.
Merci a tous
0
Re Bonjour,
Je tente donc de modifier dans tous les sens:

$sql="INSERT INTO inscriptionS (id, Nom, Prenom, Age, Sexe, TelFixe, TelPortable, Email, Adresse, CodePostal, Commune, Activite, Secteur,)";
$sql.=" VALUES ('','".$Nom."','".$Prenom."','".$Age."','".$Sexe."','".$TelFixe."','".$TelPortable."','".$Email."','".$Adresse."','".$CodePostal."','".$Commune."','".$Activite."','".$Secteur."')";
$req=mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());
// fermeture de la connection
mysql_close();
}
if($req){
echo "insertion réussie";
}else{
echo "Pas d'insertion dans la BDD";
}
en essayant avec ceci jai cette erreur grace a echo "<BRPASSAGE ICI";

erreur dans la requete SQL : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES ('','','DUDULE','-25','Homme','02','1212121212','LDODFFDKJD@JDJDLK','14' at line 1
donc la je cherche, apparement ca serait un prble de syntax...si vous savez d'ou ca vient je suis preneur ^^
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
15 nov. 2007 à 13:22
Je ne sais pas si c'est une erreur de recopie ou une réelle erreur dans ton script, mais dans ton dernier post du met ceci :
$sql.=" VALUES ('','".$Nom."','".$Prenom."','".$Age."','".$Sexe." ','".$TelFixe."','".$TelPortable."','".$Email."','".$Ad resse."','".$CodePostal."','".$Commune."','".$Activite." ;','".$Secteur."')"; 


Il y a un point virgule qui n'a rien à faire là.
Si ca ne vient pas de là, ma fois... erreur de syntaxe SQL, je te conseille de tester ta requête sur ta base manuellement en remplacant les variable par leur valeur jusqu'à avoir la bonne syntaxe, mais à priori elle est bonne. Peut-être pourrait tu nous mettre les types de tes données pour vérifier que ce que tu passe comme valeur est correct ?

Sinon quand j'ai écrit : <BRPASSAGE ICI, je voulais dire <BR>PASSAGE ICI (faute d'écriture)
0
Bonjour,
Merci Kij_82,
le point virgule n'avait effectivment rien a faire la depuis ca marche bcp mieux.
Un problme en chassant un autre j'expose le suivant:
<html>
<body>
<?php
if($_POST[submit]);
{
$connect = mysql_connect("localhost","root","");
mysql_select_db("Test");
if (isset($_POST['Nom']))
if (isset($_POST['Prenom']))
if (isset($_POST['Age']))
if (isset($_POST['Sexe']))
if (isset($_POST['TelFixe']))
if (isset($_POST['TelPortable']))
if (isset($_POST['Email']))
if (isset($_POST['Adresse']))
if (isset($_POST['CodePostal']))
if (isset($_POST['Commune']))
if (isset($_POST['Acivite']))
if (isset($_POST['Secteur']))
if (isset($_POST['Locomotion']))
if (isset($_POST['NomIG']))
if (isset($_POST['PrenomIG']))
if (isset($_POST['SurnomIG']))
if (isset($_POST['Carriere']))
if (isset($_POST['Background']))
if (isset($_POST['Decouverte']))
// Si on a les infos rentrées par le visiteur
$Nom = mysql_real_escape_string(htmlspecialchars($_POST['Nom']));
$Prenom = mysql_real_escape_string(htmlspecialchars($_POST['Prenom']));
$Age = mysql_real_escape_string(htmlspecialchars($_POST['Age']));
$Sexe = mysql_real_escape_string(htmlspecialchars($_POST['Sexe']));
$TelFixe = mysql_real_escape_string(htmlspecialchars($_POST['TelFixe']));
$TelPortable = mysql_real_escape_string(htmlspecialchars($_POST['TelPortable']));
$Email = mysql_real_escape_string(htmlspecialchars($_POST['Email']));
$Adresse = mysql_real_escape_string(htmlspecialchars($_POST['Adresse']));
$CodePostal = mysql_real_escape_string(htmlspecialchars($_POST['CodePostal']));
$Commune = mysql_real_escape_string(htmlspecialchars($_POST['Commune']));
$Activite = mysql_real_escape_string(htmlspecialchars($_POST['Activite']));
$Secteur = mysql_real_escape_string(htmlspecialchars($_POST['Secteur']));
$Locomotion =($_POST['Locomotion']);
$NomIG = mysql_real_escape_string(htmlspecialchars($_POST['NomIG']));
$PrenomIG = mysql_real_escape_string(htmlspecialchars($_POST['PrenomIG']));
$SurnomIG = mysql_real_escape_string(htmlspecialchars($_POST['SurnomIG']));
$Carriere = mysql_real_escape_string(htmlspecialchars($_POST['Carriere']));
$Background = mysql_real_escape_string(htmlspecialchars($_POST['Background']));
$Decouverte = ($_POST['Decouverte']);
$sql="INSERT INTO inscriptionS (id, Nom, Prenom, Age, Sexe, TelFixe, TelPortable, Email, Adresse, CodePostal, Commune, Activite, Secteur, Locomotion, NomIG, PrenomIG, SurnomIG, Carriere, Background, Decouverte)";
$sql.="VALUES ('','".$Nom."','".$Prenom."','".$Age."','".$Sexe."','".$TelFixe."','".$TelPortable."','".$Email."','".$Adresse."','".$CodePostal."','".$Commune."','".$Activite."','".$Secteur."','".$Locomotion."','".$NomIG."','".$PrenomIG."','".$SurnomIG."','".$Carriere."','".$Background."','".$Decouverte."')";
$req=mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());
// fermeture de la connection
mysql_close();
}
if($req){
echo "Vous vous etes inscrit avec Succes";
}else{
echo "Pas d'insertion dans la BDD";
}
?>
</body>
</html>

Voila l'integralité du script le plus performant que jai reussi a creer/detourner.pour quelqu'un qui ne connait ni mysql ni le php ya 4 jours j'en suis pas peu fier. C'est aussi la raison de son style surmenent peu academique.
Donc, jai un prble et une question. commencons pas la QUESTION: jai un point virgule qui se balade dans la quatrieme ligne if($_POST[submit]);
quand je l'enleve ca plante pourtant il me semble qu'on ne doit pas en mettre apres if?
La reponse a cette question sera probablement la solution a mon PROBLEME:
Quasiment toutes les données (le prenom, l'age .....) sont enregistrées dans la table sauf le nom

Sinon pour le type de donnée de Nom j ai mi mediumtext, j'imagine que tinytext sufirait.
J'hesite a trop bidouiller parceque j'ai peur que ca plante ^^
Il me reste aussi une chose a eclaircire, mes données $Locomotion et $Decouverte s'enregistre en Array sur la bdd mais comme dans le formulaire c'est un choix de type checkbox je devrais pouvoir trouver des infos la dessus.
Merci encore
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
15 nov. 2007 à 14:32
Quelle belle erreur :)

Petit cours sur l'imbrication des conditions :

Lorsque tu veux faire plusieurs tests successifs, soit tu les inclus directement dans le même test de condition comme suit :
 if ( isset($_POST["nom"]) && isset($_POST["prenom"]) ){
      // --- Alors je fais mon traitement
 }


Soit tu imbrique tes tests de conditions, mais correctement, comme suit :
if ( isset($_POST["nom"]) ){
   if ( isset($_POST["prenom"]) ){
       // --- Etc...
   }
}


Pour reprendre ce que tu as fais, tu n'as pas mis de '{' ni '}' sur tes tests. Que se passe-t-il dans ce cas ? Il se trouve que lorsque tu ne met pas de '{' / '}' sur l'ouverture / fermeture de ton test, la prochaine (et uniquement la prochaine) instruction est éxécuter si le test est passé.
Donc, dans ton cas, tu as effectivement choisi d'imbriquer tes tests, mais sans accolades, donc seulles la première instruction qui suit chaque test est prise en compte en cas de réussite du test. Conclusion, à chaque test réussi tu refais le test suivant, et ainsi de suite, jusqu'à : $Nom = mysql_real_escape_string(htmlspecialchars($_POST['Nom'])); qui est la derniere instruction.

Vu que tes tests ne sont pas passés, alors cette instruction n'est pas réalisée, donc ta variable n'est pas initialisée. Par contre le reste s'éxécute et est initialisé, ce qui explique ton résultat.

Correction à apporter :
Mettre des accolades pour le dernier test (au moins), et si possible inclure tous des tests dans un seul IF comme suit :

if (isset($_POST['Nom'])
    && isset($_POST['Prenom'])
   ...ect...
   && isset($_POST['NomIG'])
   && isset($_POST['PrenomIG'])
   && isset($_POST['SurnomIG'])
   && isset($_POST['Carriere'])
   && isset($_POST['Background'])
   && isset($_POST['Decouverte']) ){

    /// --- Initialisation des variables :
   $Nom = mysql_real_escape_string(htmlspecialchars($_POST['Nom']));
   $Prenom = mysql_real_escape_string(htmlspecialchars($_POST['Prenom']));
     ...etc...
   $PrenomIG = mysql_real_escape_string(htmlspecialchars($_POST['PrenomIG'])); 
}

0
Bonjour,
Alors quand je tente:
if (isset($_POST['Nom'])
&& isset($_POST['Prenom'])
...etc...
&& isset($_POST['Background'])
&& isset($_POST['Decouverte'])){ <=jai rajouté laccolade?
et
$Background = mysql_real_escape_string(htmlspecialchars($_POST['Background']));
$Decouverte = ($_POST['Decouverte']);
} <== et la aussi
si je supprime le point virgule apres if($_POST[submit]) qui, je le sais, n'a rien a faire la, jai le message pas d'insertion dans la base de donnée.
si je laisse le point virgule, jai tjrs le meme prble du nom pas enregistre ds la bdd.
0
Bonsoir,

là:

$sql="INSERT INTO inscriptionS......

le S majuscule est une erreur de frappe ou est ce le vrazi nom de ta table inscriptions

@lain
0
Bonjour,
Merci Alain42 mais apparement c'est pas sensible a la case :/ dommage j'y coyais!
donc voici les dernieres nouvelles de mon script

<html>
<body>
<?php
if($_POST[submit])

{
$connect = mysql_connect("localhost","root","");
mysql_select_db("Test");
if (isset($_POST['Nom'])
&& isset($_POST['Prenom'])
&& isset($_POST['Age'])
&& isset($_POST['Sexe'])
&& isset($_POST['TelFixe'])
&& isset($_POST['TelPortable'])
&& isset($_POST['Email'])
&& isset($_POST['Adresse'])
&& isset($_POST['CodePostal'])
&& isset($_POST['Commune'])
&& isset($_POST['Acivite'])
&& isset($_POST['Secteur'])
&& isset($_POST['Locomotion'])
&& isset($_POST['NomIG'])
&& isset($_POST['PrenomIG'])
&& isset($_POST['SurnomIG'])
&& isset($_POST['Carriere'])
&& isset($_POST['Background'])
&& isset($_POST['Decouverte'])) {

// Si on a les infos rentrées par le visiteur
$Nom = mysql_real_escape_string(htmlspecialchars($_POST['Nom']));
$Prenom = mysql_real_escape_string(htmlspecialchars($_POST['Prenom']));
$Age = mysql_real_escape_string(htmlspecialchars($_POST['Age']));
$Sexe = mysql_real_escape_string(htmlspecialchars($_POST['Sexe']));
$TelFixe = mysql_real_escape_string(htmlspecialchars($_POST['TelFixe']));
$TelPortable = mysql_real_escape_string(htmlspecialchars($_POST['TelPortable']));
$Email = mysql_real_escape_string(htmlspecialchars($_POST['Email']));
$Adresse = mysql_real_escape_string(htmlspecialchars($_POST['Adresse']));
$CodePostal = mysql_real_escape_string(htmlspecialchars($_POST['CodePostal']));
$Commune = mysql_real_escape_string(htmlspecialchars($_POST['Commune']));
$Activite = mysql_real_escape_string(htmlspecialchars($_POST['Activite']));
$Secteur = mysql_real_escape_string(htmlspecialchars($_POST['Secteur']));
$Locomotion =($_POST['Locomotion']);
$NomIG = mysql_real_escape_string(htmlspecialchars($_POST['NomIG']));
$PrenomIG = mysql_real_escape_string(htmlspecialchars($_POST['PrenomIG']));
$SurnomIG = mysql_real_escape_string(htmlspecialchars($_POST['SurnomIG']));
$Carriere = mysql_real_escape_string(htmlspecialchars($_POST['Carriere']));
$Background = mysql_real_escape_string(htmlspecialchars($_POST['Background']));
$Decouverte = ($_POST['Decouverte']);}

$sql="INSERT INTO inscriptions (id, Nom, Prenom, Age, Sexe, TelFixe, TelPortable, Email, Adresse, CodePostal, Commune, Activite, Secteur, Locomotion, NomIG, PrenomIG, SurnomIG, Carriere, Background, Decouverte)";
$sql.="VALUES ('','".$Nom."','".$Prenom."','".$Age."','".$Sexe."','".$TelFixe."','".$TelPortable."','".$Email."','".$Adresse."','".$CodePostal."','".$Commune."','".$Activite."','".$Secteur."','".$Locomotion."','".$NomIG."','".$PrenomIG."','".$SurnomIG."','".$Carriere."','".$Background."','".$Decouverte."')";
$req=mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());
// fermeture de la connection
mysql_close();
}
if($req){
echo "Vous vous etes inscrit avec Succes";
}else{
echo "Pas d'insertion dans la BDD";
}
?>
</body>
</html>

j'ai enlevé le fameux point virgule. je crois bien comprendre que j'ai pas compris ce que m'avait dit kij_82. A ce niveau la, jarrive bien a entrer dans la bdd, jai une entrée supplementaire, mais aucune information nest ecrite. A part l'Id..
0
Bonjour,

Si tu n'inscrit dans la base que l'id, ça veut dire que les autres valeurs $Nom etc.. sont vides.

Donc la partie dans ta condition:


if (isset($_POST['Nom']) &&..................................) {
$Nom = mysql_real_escape_string(htmlspecialchars($_POST['Nom']));

etc..

}

Ne s'éxécute pas, vous vérifier mets un echo "Passe par ici"; dedans


Autre remarque à quoi ça sert de verifier le isset de toutes ces $_POST, isset veut dire défini, donc posté, ce serra vrai dans tous les cas,ipour vérifier que le client a bien saisi qq chose il faut mettre:

if(!empty($_POST.....


Alors fait coome çà:

if($_POST[submit]){
$connect = mysql_connect("localhost","root","");
mysql_select_db("Test");

if (!empty($_POST['Nom']) {$Nom = mysql_real_escape_string(htmlspecialchars($_POST['Nom']));}
if (!empty($_POST['Prenom']) {$Prenom = mysql_real_escape_string(htmlspecialchars($_POST['Prenom']));}
etc...

}
0
Bonjour,
Merci une fois de plus Alain42 de m'donner un coup de main...
tu dis "Autre remarque à quoi ça sert de verifier le isset de toutes ces $_POST, isset veut dire défini, donc posté, ce serra vrai dans tous les cas,ipour vérifier que le client a bien saisi qq chose il faut mettre:[...]"
jai regardé qq script de formulaire et jai tjrs vu ca il me semble. ca donnerai quoi un$_POST pas defini? Mais faisant plus confiance a ton savoir qu'a mon experience, j'ai donc viré tous les isset, ca donne ca:

<html>
<body>
<?php

if($_POST[submit]){
$connect = mysql_connect("localhost","root","");
mysql_select_db("Test");

if (!empty($_POST['Nom']) {$Nom =
mysql_real_escape_string(htmlspecialchars($_POST['Nom']));
if (!empty($_POST['Prenom']) {$Prenom =
mysql_real_escape_string(htmlspecialchars($_POST['Prenom']));}
if (!empty($_POST['Age']) {$Age =
mysql_real_escape_string(htmlspecialchars($_POST['Age']));}
if (!empty($_POST['Sexe']) {$Sexe =
mysql_real_escape_string(htmlspecialchars($_POST['Sexe']));}
if (!empty($_POST['TelFixe']) {$TelFixe =
mysql_real_escape_string(htmlspecialchars($_POST['TelFixe']));}
if (!empty($_POST['TelPortable']) {$TelPortable =
mysql_real_escape_string(htmlspecialchars($_POST['TelPortable']));}
if (!empty($_POST['Email']) {$Email =
mysql_real_escape_string(htmlspecialchars($_POST['Email']));}
if (!empty($_POST['Adresse']) {$Adresse =
mysql_real_escape_string(htmlspecialchars($_POST['Adresse']));}
if (!empty($_POST['CodePostal']) {$CodePostal =
mysql_real_escape_string(htmlspecialchars($_POST['CodePostal']));}
if (!empty($_POST['Commune']) {$Commune =
mysql_real_escape_string(htmlspecialchars($_POST['Commune']));}
if (!empty($_POST['Acivite']) {$Acivite =
mysql_real_escape_string(htmlspecialchars($_POST['Acivite']));}
if (!empty($_POST['Secteur']) {$Secteur =
mysql_real_escape_string(htmlspecialchars($_POST['Secteur']));}
if (!empty($_POST['Locomotion']) {$Locomotion =
mysql_real_escape_string(htmlspecialchars($_POST['Locomotion']));}
if (!empty($_POST['NomIG']) {$NomIG =
mysql_real_escape_string(htmlspecialchars($_POST['NomIG']));}
if (!empty($_POST['PrenomIG']) {$PrenomIG =
mysql_real_escape_string(htmlspecialchars($_POST['PrenomIG']));}
if (!empty($_POST['SurnomIG']) {$SurnomIG =
mysql_real_escape_string(htmlspecialchars($_POST['SurnomIG']));}
if (!empty($_POST['Carriere']) {$Carriere =
mysql_real_escape_string(htmlspecialchars($_POST['Carriere']));}
if (!empty($_POST['Background']) {$Background =
mysql_real_escape_string(htmlspecialchars($_POST['Background']));}
if (!empty($_POST['Decouverte']) {$Decouverte =
mysql_real_escape_string(htmlspecialchars($_POST['Decouverte']));}

$sql="INSERT INTO inscriptions (id, Nom, Prenom, Age, Sexe, TelFixe, TelPortable, Email, Adresse, CodePostal, Commune, Activite, Secteur, Locomotion, NomIG, PrenomIG, SurnomIG, Carriere, Background, Decouverte)";
$sql.="VALUES ('','".$Nom."','".$Prenom."','".$Age."','".$Sexe."','".$TelFixe."','".$TelPortable."','".$Email."','".$Adresse."','".$CodePostal."','".$Commune."','".$Activite."','".$Secteur."','".$Locomotion."','".$NomIG."','".$PrenomIG."','".$SurnomIG."','".$Carriere."','".$Background."','".$Decouverte."')";
$req=mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());
// fermeture de la connection
mysql_close();
}
if($req){
echo "Vous vous etes inscrit";
}else{
echo "Pas d'insertion dans la BDD";
}

et ca ca done ca:
Parse error: syntax error, unexpected '{' in D:\wamp\www\Test\InscriptionReussie.php on line 9
j'ai tenté d'enlever l'accolade, de la deplacer, la retourner, je l'ai meme menacée mais rien n'y fait...
Quelqu'un connais un tuto ur les noeuds de pendu?
0
Salut,

il faut quand même laisser le isset de if(isset($_POST[submit''])), c'est ce qui verifie que le formulaire a été posté.

il manquait une } pour fermer ta condition if(isset($_POST[submit'']))

et dans ta ligne $sql il trainait des espaces dans $Adresse, $PrenomIg, et un &equ t après $Background qui génent la syntaxe.

 <?php

if(isset($_POST[submit])){
$connect = mysql_connect("localhost","root","");
mysql_select_db("Test");

if (!empty($_POST['Nom']) {$Nom =
mysql_real_escape_string(htmlspecialchars($_POST['Nom']));
if (!empty($_POST['Prenom']) {$Prenom =
mysql_real_escape_string(htmlspecialchars($_POST['Prenom']));}
if (!empty($_POST['Age']) {$Age =
mysql_real_escape_string(htmlspecialchars($_POST['Age']));}
if (!empty($_POST['Sexe']) {$Sexe =
mysql_real_escape_string(htmlspecialchars($_POST['Sexe']));}
if (!empty($_POST['TelFixe']) {$TelFixe =
mysql_real_escape_string(htmlspecialchars($_POST['TelFixe']));}
if (!empty($_POST['TelPortable']) {$TelPortable =
mysql_real_escape_string(htmlspecialchars($_POST['TelPortable']));}
if (!empty($_POST['Email']) {$Email =
mysql_real_escape_string(htmlspecialchars($_POST['Email']));}
if (!empty($_POST['Adresse']) {$Adresse =
mysql_real_escape_string(htmlspecialchars($_POST['Adresse']));}
if (!empty($_POST['CodePostal']) {$CodePostal =
mysql_real_escape_string(htmlspecialchars($_POST['CodePostal']));}
if (!empty($_POST['Commune']) {$Commune =
mysql_real_escape_string(htmlspecialchars($_POST['Commune']));}
if (!empty($_POST['Acivite']) {$Acivite =
mysql_real_escape_string(htmlspecialchars($_POST['Acivite']));}
if (!empty($_POST['Secteur']) {$Secteur =
mysql_real_escape_string(htmlspecialchars($_POST['Secteur']));}
if (!empty($_POST['Locomotion']) {$Locomotion =
mysql_real_escape_string(htmlspecialchars($_POST['Locomotion']));}
if (!empty($_POST['NomIG']) {$NomIG =
mysql_real_escape_string(htmlspecialchars($_POST['NomIG']));}
if (!empty($_POST['PrenomIG']) {$PrenomIG =
mysql_real_escape_string(htmlspecialchars($_POST['PrenomIG']));}
if (!empty($_POST['SurnomIG']) {$SurnomIG =
mysql_real_escape_string(htmlspecialchars($_POST['SurnomIG']));}
if (!empty($_POST['Carriere']) {$Carriere =
mysql_real_escape_string(htmlspecialchars($_POST['Carriere']));}
if (!empty($_POST['Background']) {$Background =
mysql_real_escape_string(htmlspecialchars($_POST['Background']));}
if (!empty($_POST['Decouverte']) {$Decouverte =
mysql_real_escape_string(htmlspecialchars($_POST['Decouverte']));}

$sql="INSERT INTO inscriptions (id, Nom, Prenom, Age, Sexe, TelFixe, TelPortable, Email, Adresse, CodePostal, Commune, Activite, Secteur, Locomotion, NomIG, PrenomIG, SurnomIG, Carriere, Background, Decouverte)";
$sql.="VALUES ('','".$Nom."','".$Prenom."','".$Age."','".$Sexe." ','".$TelFixe."','".$TelPortable."','".$Email."','".$Adresse."','".$CodePostal."','".$Commune."','".$Activite." ;','".$Secteur."','".$Locomotion."','".$NomIG."','".$PrenomIG."','".$SurnomIG."','".$Carriere."','".$Background."','".$Decouverte."')";
$req=mysql_query($sql) or die ("erreur dans la requete SQL : ".mysql_error());
// fermeture de la connection
mysql_close();
}
if($req){
echo "Vous vous etes inscrit";
}else{
echo "Pas d'insertion dans la BDD";
}
}
0