Erreur PHP de débutant
the.newB
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,
Je suis débutant en php et j'essaie tant bien que mal de développer un petit script d'espace membre pour m'entrainer. Je bloque sur l'erreur suivante ; Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /inscription.php on line 10
Et voici le code source de la page disponible ici >> http://fr.pastebin.ca/876060
L'erreur se situe à la ligne 10. Si quelqu'un pourrait m'aider sa serait sympa :)
Merci d'avance !
Je suis débutant en php et j'essaie tant bien que mal de développer un petit script d'espace membre pour m'entrainer. Je bloque sur l'erreur suivante ; Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /inscription.php on line 10
Et voici le code source de la page disponible ici >> http://fr.pastebin.ca/876060
L'erreur se situe à la ligne 10. Si quelqu'un pourrait m'aider sa serait sympa :)
Merci d'avance !
A voir également:
- Erreur PHP de débutant
- Expert php pinterest - Télécharger - Langages
- Erreur t32 ✓ - Forum Livebox
- Erreur upes 1025 - Forum Téléviseurs
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows
3 réponses
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 !
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.