Pb PHP $_POST[]
emmaus
-
gryzzly Messages postés 4608 Date d'inscription Statut Contributeur Dernière intervention -
gryzzly Messages postés 4608 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un petit problème de variable en php, et comme je suis débutant cela n'arrange rien...
En fait je crée un formulaire pour qu'un utilisateur X s'enregistre. Pour cela il remplit les case "prénom", "nom", "numéro".
Jusque la tout fonctionne mais le but est de sauvegarder dans un fichier txt, ce que l'utilisateur vient de remplir, grâce à un fichier .php.
J'écris donc :
<?php
$newline="\r\n";
$file=fopen("register.txt","a");
$data=$_POST['nom'] . ";" . $_POST['prenom'] . ";" . $_POST['email'] . ";" . $_POST['mobile'] . $newline;
fwrite($file,$data);
fclose($file);
?>
mais le fichier txt m'affiche seulement ";;;", ce qui signifie que les variables doivent se perdre en cours de route...
Donc voila, si quelqu'un pouvait m'aider à sortir de cette panade ce serait vraiment simpa...
j'ai un petit problème de variable en php, et comme je suis débutant cela n'arrange rien...
En fait je crée un formulaire pour qu'un utilisateur X s'enregistre. Pour cela il remplit les case "prénom", "nom", "numéro".
Jusque la tout fonctionne mais le but est de sauvegarder dans un fichier txt, ce que l'utilisateur vient de remplir, grâce à un fichier .php.
J'écris donc :
<?php
$newline="\r\n";
$file=fopen("register.txt","a");
$data=$_POST['nom'] . ";" . $_POST['prenom'] . ";" . $_POST['email'] . ";" . $_POST['mobile'] . $newline;
fwrite($file,$data);
fclose($file);
?>
mais le fichier txt m'affiche seulement ";;;", ce qui signifie que les variables doivent se perdre en cours de route...
Donc voila, si quelqu'un pouvait m'aider à sortir de cette panade ce serait vraiment simpa...
A voir également:
- Pb PHP $_POST[]
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
14 réponses
comment ca le "code de mon formulaire", c'est ca ?
<FORM name="formulaire" method="POST" action="register.php" enctype="text/plain" onSubmit="return testTotal(document.formulaire)"> <table> <tr> <td>Nom</td> <td><input type="text" name="nom" /></td> </tr> <tr> <td>Prénom </td> <td><input type="text" name="prenom" /></td> </tr> <tr> <td>email</td> <td><input type="text" name="email" /></td> </tr> <tr> <td>Mobile</td> <td><input type="text" name="mobile" /></td> </tr> <tr> <td><INPUT type="submit" name="buttontest" value="Envoyer"></td> </tr> </table> <br> </form>
oui, mais tout semble en ordre !…
essaie d'afficher ce que contient '$_POST' :
essaie d'afficher ce que contient '$_POST' :
<?php print_r( $_POST ); $newline="\r\n"; $file=fopen("register.txt","a"); $data=$_POST['nom'] . ";" . $_POST['prenom'] . ";" . $_POST['email'] . ";" . $_POST['mobile'] . $newline; fwrite($file,$data); fclose($file); ?>
j'ai essayé mais rien ne se passe...
cela me renvoie sur une page blanche, et dans mon .txt, toujours pareil, ";;;"
Merci de ta dispo en tt cas c'est simpa
cela me renvoie sur une page blanche, et dans mon .txt, toujours pareil, ";;;"
Merci de ta dispo en tt cas c'est simpa
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ton script PHP est bien nommé 'register.php' ?
et tes variables ne seraient pas effecer par ta vérification en JS par hasard ?
essaie sans la fonction JS.
et tes variables ne seraient pas effecer par ta vérification en JS par hasard ?
essaie sans la fonction JS.
ah oui pardon, JS pour Javascript.
un bout de code appelé par 'onSubmit="return testTotal(document.formulaire)"'.
il faut l'enlever et tester pour savoir si ça vient de là.
un bout de code appelé par 'onSubmit="return testTotal(document.formulaire)"'.
il faut l'enlever et tester pour savoir si ça vient de là.
<FORM name="formulaire" method="POST" action="register.php" enctype="text/plain" onSubmit="return testTotal(document.formulaire)"> <table> <tr> <td>Nom</td> <td><input type="text" name="nom" /></td> </tr> <tr> <td>Prénom </td> <td><input type="text" name="prenom" /></td> </tr> <tr> <td>email</td> <td><input type="text" name="email" /></td> </tr> <tr> <td>Mobile</td> <td><input type="text" name="mobile" /></td> </tr> <tr> <td><INPUT type="submit" name="buttontest" value="Envoyer"></td> </tr> </table> <br> </form>
dans mon JV ;-), j'ai ces fonctions :
En tout cas, c'est simpa de m'aider
unction testTotal(form) { // teste tous les envois var OK = true; if(testEmail(form)==false) { OK = false; } if(testNomPrenom(form)==false) { OK = false; } if(testPhone(form) == false) { OK = false; } if (OK == true) { alert("Tous les champs ont été correctement remplis"); } } function testNomPrenom(form) { // teste si le nom et prenom sont valides var OK = true; if (form.nom.value == "") { alert("Le nom saisi n'est pas valide"); OK = false; } if (form.prenom.value == "") { alert("Le prenom saisi n'est pas valide"); OK = true; } return OK ; } function testEmail(form) {// teste si l'email est valide var OK = true; if ((form.email.value == "") || (form.email.value.indexOf('@') == -1)) { alert("L'email saisi n'est pas valide"); OK = false; } return OK; } function check(input, check) { var OK = true; for (var i=0;i<input.length;i++) { var chr = input.charAt(i); var found = false; for (var j=0;j<check.length;j++) { if (chr==check[j]) found = true; } if (!found) OK = false; } return OK; } function testPhone(form) { var OK = true; if (!check(form.mobile.value,["1","2","3","4","5","6","7","8","9","0","/","+","-"]) || (form.mobile.value == "")) { alert ("Le numero de telephone n'est pas valide"); OK = false; } return OK; }
En tout cas, c'est simpa de m'aider
même en mettant en commentaire toute la fonction TestTotal, ca ne marche pas. Je repete bien que j'ai le traitement dans un fichier lettre.php et à côté j'ai mon register.php.
Comment register.php sait que la variable "nom" existe??
En plus je la déclare même pas, sauf quand je fais
Je dois pas faire un output par exemple dans register.php ou un truc du genre??
Comment register.php sait que la variable "nom" existe??
En plus je la déclare même pas, sauf quand je fais
input type="text" name="nom"
Je dois pas faire un output par exemple dans register.php ou un truc du genre??
ton formulaire envoie les données par 'POST'.
donc chaque variable se retrouve dans le tableau '$_POST' à l'index 'name', le même que tu as précisé avec l'attribut 'name' de la balise '<input />'.
donc pour :
tu devrais retrouver la valeur dans le fichier 'script.php' avec '$_POST['nom'].
donc pour toi :
doit se trouver dans 'register.php'
donc chaque variable se retrouve dans le tableau '$_POST' à l'index 'name', le même que tu as précisé avec l'attribut 'name' de la balise '<input />'.
donc pour :
<form method="post" action="script.php"> <input name="nom" /> </form>
tu devrais retrouver la valeur dans le fichier 'script.php' avec '$_POST['nom'].
donc pour toi :
<?php $newline="\r\n"; $file=fopen("register.txt","a"); $data=$_POST['nom'] . ";" . $_POST['prenom'] . ";" . $_POST['email'] . ";" . $_POST['mobile'] . $newline; fwrite($file,$data); fclose($file); ?>
doit se trouver dans 'register.php'
essaie d'enlever "enctype="text/plain" dans le <form>.
et si ça marche tu pourras dire merci à Gryzzly !
-;o)
et si ça marche tu pourras dire merci à Gryzzly !
-;o)