Erreur PHP de débutant
Fermé
the.newB
-
28 janv. 2008 à 16:30
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 29 janv. 2008 à 11:43
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 29 janv. 2008 à 11:43
A voir également:
- Erreur PHP de débutant
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
3 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
28 janv. 2008 à 16:39
28 janv. 2008 à 16:39
Bonjour,
Pour utiliser des variables tableau dans des chaines de caractère, il faut utiliser des {}, ou sortir de la chaine.
Donc quand tu écris
"INSERT INTO ..... ($_POST['adresse'], ...)"
il faut en fait mettre :
"INSERT INTO ..... ({$_POST['adresse']}, ...)"
ou
"INSERT INTO ..... (".$_POST['adresse'].", ...)"
Voilà voilà !
Xavier
Pour utiliser des variables tableau dans des chaines de caractère, il faut utiliser des {}, ou sortir de la chaine.
Donc quand tu écris
"INSERT INTO ..... ($_POST['adresse'], ...)"
il faut en fait mettre :
"INSERT INTO ..... ({$_POST['adresse']}, ...)"
ou
"INSERT INTO ..... (".$_POST['adresse'].", ...)"
Voilà voilà !
Xavier
Merci pour ta réponse éclair :) Mais maintenant j'obtiens des erreurs SQL :/ ( je sais je suis lourd )
Je ne sais pas trop pourquoi il y a une erreur . Revoici donc ma page de traitement des données qui enregistre les données dans ma table http://fr.pastebin.ca/876117 et le formulaire pour saisir les données à enregistrer. http://m2ga.free.fr/sncf/form_inscription.php
Voici donc l'erreur SQL qui s'affiche : 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 '@hotmail.com,passw,18 rue de jack,paris,12,1,chomeur,'')' at line 1
J'ai l'impression que mysql ne supporte pas les "@" ( dans la champs mail ) ainsi que les espaces ( dans le champs adresse ).
Merci !
Je ne sais pas trop pourquoi il y a une erreur . Revoici donc ma page de traitement des données qui enregistre les données dans ma table http://fr.pastebin.ca/876117 et le formulaire pour saisir les données à enregistrer. http://m2ga.free.fr/sncf/form_inscription.php
Voici donc l'erreur SQL qui s'affiche : 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 '@hotmail.com,passw,18 rue de jack,paris,12,1,chomeur,'')' at line 1
J'ai l'impression que mysql ne supporte pas les "@" ( dans la champs mail ) ainsi que les espaces ( dans le champs adresse ).
Merci !
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
29 janv. 2008 à 11:43
29 janv. 2008 à 11:43
Bonjour,
Dans ce genre de cas, le plus simple est de demander à afficher la requête.
Remplace
Tu pourras alors relire ta requête SQL... Et te rendre compte que les champs texte ne sont pas entre guillemets !
Je te laisse corriger en conséquence :)
Xavier
PS : l'affichage de la requête, c'est pour débugger uniquement, hein. C'est dangereux de la laisser une fois ton site en ligne.
PPS : je t'invite également à recherché des informations sur une technique du nom de "injection sql". C'est quelque chose qui permettrait à un utilisateur peu scrupuleux d'effacer ta base de données dans l'état actuel des choses, et qui n'est pas dur à empêcher.
Dans ce genre de cas, le plus simple est de demander à afficher la requête.
Remplace
mysql_query("INSERT INTO agent VALUES ('', $_POST['nom'], $_POST['prenom'], $_POST['mail'], $_POST['pass'], $_POST['adresse'], $_POST['ville'], $_POST['departement'], $_POST['formationDemande'], $_POST['metierActuel'], '')") or die(mysql_error());par
$requeteSql = "INSERT INTO agent VALUES ('', $_POST['nom'], $_POST['prenom'], $_POST['mail'], $_POST['pass'], $_POST['adresse'], $_POST['ville'], $_POST['departement'], $_POST['formationDemande'], $_POST['metierActuel'],'')"; mysql_query($requeteSql) or die(mysql_error()."<br /><b>Requête :</b><br />$requeteSql");
Tu pourras alors relire ta requête SQL... Et te rendre compte que les champs texte ne sont pas entre guillemets !
Je te laisse corriger en conséquence :)
Xavier
PS : l'affichage de la requête, c'est pour débugger uniquement, hein. C'est dangereux de la laisser une fois ton site en ligne.
PPS : je t'invite également à recherché des informations sur une technique du nom de "injection sql". C'est quelque chose qui permettrait à un utilisateur peu scrupuleux d'effacer ta base de données dans l'état actuel des choses, et qui n'est pas dur à empêcher.