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 0x80070643 - Accueil - Windows
 - Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
 - Erreur 4101 france tv - Forum Lecteurs et supports vidéo
 - J'aime par erreur facebook notification - Forum Facebook
 
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.