Balise <form> qui ne renvoie rien à mon script PHP - PHP - Programmation
Marsh Posté le 23-09-2008 à 12:08:30
Qu'y a-t-il entre <form action="monscript.php" method="post"> et </form> ?
Par exemple, est-ce que l'on a bien <input type=text name="monNom" id="monNom"> ?
Est-ce qu'il y a un boutton de type "submit" (pour déclencher l'action du form) et non pas uniquement de type "button" (qui ne déclenche pas cette action) ?
Marsh Posté le 23-09-2008 à 13:05:56
Fait un "print_r($_POST);" pour voir ce que cette variable contient.
Sinon, vérifie la variable "$monMail" dès le début du script pour voir si les données ne seraient pas là.
Au fait, c'est quelle version de php sur ce serveur?
Marsh Posté le 23-09-2008 à 15:47:39
Photofanch a écrit : puisque je suis bien meilleur programmateur en html qu'en php... |
On dit programmeur, ou développeur si on est distingué.
Et je ne sait pas pas comment tu fais pour "programmer" du HTML.
Le langage HTML (HyperText Markup Language) est, comme son nom l'indique, un langage de balisage... et en aucun cas un langage de programmation !
Essaye ceci :
form.php
Code :
|
test.php
Code :
|
Marsh Posté le 23-09-2008 à 19:50:10
ReplyMarsh Posté le 24-09-2008 à 02:16:52
grosbin a écrit : toi t'es fan du single quote |
C'est bien quand le double n'est pas nécessaire en php mais en html c'est " obligatoire
Marsh Posté le 24-09-2008 à 09:06:34
Oui en Html je sais que c'est obligatoire
Désolé pour le "programmateur" mais comme je n'écris du html que quand j'ai besoin de mettre mon site à jour, j'ai fait un petit écart de vocabulaire, je m'excuse auprès des puristes (tout comme "programmer" du html, je suis photographe, pas webdesigner, donc sorry là aussi)
Donc mon code html est bien en double quote, là où mon script php est en single quote.
>> olivthill: j'ai bien mis, partout, des balises input de type text, comme celle-ci <input type=text name="monNom" id="monNom">, mais sans déclarer d'id dans les balises. Si je ne m'abuse c'est le "name" qui est posté au script php, pas l'id. Mais si j'ai faux, c'est peut-être de là que vient mon erreur.
Et j'ai bien un bouton de validation de type <input type="submit">
Merci pour les réponses, et si vous en avez d'autres, je suis preneur...
Marsh Posté le 24-09-2008 à 10:32:16
Photofanch > Pour le coup du "programmeur contre programmateur", c'est un peu comme si tu disais "portique" quand tu parles d'un portier. C'est juste des mots qui ne désignent pas du tout la même chose.
Bon sinon, ça en est où? T'as essayé ce qu'on t'a indiqué?
Marsh Posté le 24-09-2008 à 15:04:25
hello,
effectivement c'est bien le "name" qui est envoyé.
Faudrait que tu postes soit le formulaire, soit le résultat du print_r($_POST) pour qu'on puisse avancer ...
Marsh Posté le 24-09-2008 à 15:45:14
OK je fais ça ce soir si j'ai le temps
Je regarde aussi du côté des paramètres php du serveur ovh, on ne sait jamais.
Marsh Posté le 25-09-2008 à 11:10:46
Le print_r($_POST) me renvoie:
Array ( )
Le formulaire, le voici (imbriqué dans un tableau, j'ai donc fait une copie du code sans les balises tr, td, ...
<form name="FCS_resa" class="cssform" action="form.php" method="post">
<input type="text" name="monNom">
<input type="text" name="accNom">
<input type="text" name="monPrenom">
<input type="text" name="accPrenom">
<input type="text" name="monAge">
<input type="text" name="accAge">
<input type="text" name="monAdr">
<input type="text" name="accLien">
<input type="text" name="monCP">
<input type="text" name="maVille">
<input type="text" name="monTel">
<select name="formuleChoisie">
<option value ="book6">Book 6 photos</option>
<option value ="book9">Book 9 photos</option>
<option value ="book12">Book 12 photos</option>
<option value ="book15">Book 15 photos</option>
<option value ="book20">Book 20 photos</option>
<option value ="book24">Book 24 photos</option>
</select>
<input type="text" name="monSite" value="http://">
<select name="rdvCoiffMaqu">
<option value ="non">Je m'en occupe</option>
<option value ="oui">Me prendre un rdv</option>
</select>
<input type="text" name="monMail">
<select name="joignable">
<option value ="matin">Le matin</option>
<option value ="midi">Au déjeûner</option>
<option value ="ap_midi">Dans l'après-midi</option>
<option value ="soir">Le soir</option>
<option value ="journee">Toute la journée</option>
<option value ="weekend">Le week-end</option>
</select>
<textarea name="commentaires"></textarea>
<input type="submit" class="formbutton" value="Envoyer">
</form>
Marsh Posté le 25-09-2008 à 11:39:21
=> A vérifier à l'aide de la fonction phpversion() ( <? echo phpversion(); ?> )
=> A vérifier à l'aide de la fonction phpinfo()
=> A vérifier à l'aide de la fonction phpinfo()
Vu qu'on a quasiment pas avancé en 48 heures voilà en gros ce qu'il faut que tu vérifies. A partir de là tu sauras ce que tu peux utiliser pour récupérer tes variables. A noter que seules les superglobales ($_POST et co) sont accessible dans les fonctions sans faire de "global $unevariable;".
Marsh Posté le 25-09-2008 à 17:15:14
1) Ferme tes balises input : <input ... />
2) Ne mets pas d'espace entre le value et le = dans tes éléments option.
3) Indente ton code
4) Ceci ne te pose-t-il pas de problèmes ? Je m'en occupe
En HTML, tu peux mettre des simples ou double quote autour des attributs.
En XHTML tu dois mettre des simples ou double quote autour des attributs.
Marsh Posté le 26-09-2008 à 16:05:33
C'est sûr que mon HTML est assez ancien, mais bon j'ai toujours fait comme ça donc j'y suis habitué.
Le "je m'en occupe" ne pose pas de problème puisque dans le POST, ça doit renvoyer quelque chose comme &rdvCoiffMaqu=non
Pour la config php:
Version 4.4.9
register_globals est On
Je n'ai aucune trace de register_long_arrays
Faut-il ajouter une ligne register_long_arrays dans le php.ini ?
Marsh Posté le 26-09-2008 à 16:12:48
Je reviens sur mon message précédent:
Après une petite manip indiquée par ovh, je suis passé à la version 5.2.6
Et là, ô miracle, register_globals et register_long_arrays sont "On"
Je teste à nouveau le script, et toujours le même problème:
Les champs sont vides.
Marsh Posté le 26-09-2008 à 16:14:49
register_long_arrays n'est utile que si tu utilise $HTTP_POST_VARS, ce qui n'est pas le cas
est ce que ton formulaire et la page de traitement sont des fichiers php distincts ?
Marsh Posté le 26-09-2008 à 16:22:16
le formulaire: resa.html
le script: form.php
Ce sont deux fichiers distincts
Marsh Posté le 26-09-2008 à 16:23:33
J'ajoute que ça me pose le même problème lorsque c'est un formulaire en Flash qui renvoie vers le script php...
Marsh Posté le 26-09-2008 à 16:27:17
$_POST est toujours à vide quelque soit le script?
Un truc auquel je viens de penser. Dans le php.ini, la ligne "variables_order" permet de définir quelles sont les superglobales qui sont créé. Je ne vois pas pourquoi ça aurait été modifié, mais si ton navigateur envoie bien les données ça peut être utile de regarder ça.
En dehors de ce que j'ai déjà dit, d'une erreur au niveau de l'html ou d'une erreur dans ton script qui viderait les $_* ou dans le .htaccess qui empêcherait leur création, je ne vois pas ce qui empêcherait le remplissage de $_POST.
Marsh Posté le 26-09-2008 à 16:38:28
variables_order m'indique EGPCS
le .htaccess ne contient qu'une ligne, qui force l'utilisation de php5
Mes codes html et php sont dans les messages ci-dessus.
Marsh Posté le 26-09-2008 à 17:11:20
Je viens de tester une manip toute bête: héberger mon script sur un autre site.
Je passe d'un mutualisé OVH à un autre mutualisé OVH, et allez comprendre pourquoi, le script n'a pas été modifié, mais ça marche...
C'est quand même un peu gros, non ?
En tout cas merci à tous (et toutes ) pour vos conseils et le temps passé sur le problème.
Marsh Posté le 29-09-2008 à 21:04:27
Parfois aussi il suffit que le transfert soit foireux et ça donne des résultats foireux
Marsh Posté le 06-10-2008 à 10:31:46
luc@s > RTFM :$_REQUEST
request_order
Résumé : Le contenu dépend de la configuration depuis php5.3 .
Marsh Posté le 23-09-2008 à 11:37:30
Bonjour
J'ai réalisé un formulaire, qui renvoie vers un code php. Celui-ci doit renvoyer les champs du formulaire par mail.
Mon script php se retrouve dans le formulaire:
<form action="monscript.php" method="post">
Ce script contient le code suivant:
<?php
//on définir et initialise quelques variables
$destinataire='moi@monsite.com';
$header='From: '.$_POST['monMail'];
$subject='Nouvelle réservation';
$message = 'Nom: ' . $_POST['monNom'] . '\n';
$message .= 'Prénom: ' . $_POST['monPrenom'] . '\n';
$message .= 'Age: ' . $_POST['monAge'] . '\n';
$message .= 'Adresse: ' . $_POST['monAdr'] . '\n';
$message .= 'Code Postal: ' . $_POST['monCP'] . '\n';
$message .= 'Ville: ' . $_POST['maVille'] . '\n';
$message .= 'Numero de tel: ' . $_POST['monTel'] . '\n';
$message .= 'URL: ' . $_POST['monSite'] . '\n';
$message .= 'Mail: ' . $_POST['monMail'] . '\n';
//on envoie le mail en séparant les adresse des deux destinataires par une virgule et un espace
mail($destinataire,$subject,$message,$header);
//on dirige vers le résultat
header('Location: http://www.monsite.com/test/merci.html');
?>
Et le message que je reçois m'indique systématiquement:
Nom:
Prénom:
Age:
...
Ma balise FORM ne renvoit rien !!!!! ni avec Firefox ni avec IE...
J'ai modifié mon code, au lieu d'envoyer le mail, je lui demande de m'écrire directement ce que me poste le formulaire
J'ai donc écrit:
echo $message;
Et il me donne la chose suivante (j'ai renseigné les champs dans la page html, chacun comporte normalement la valeur "zz" ):
Nom: \nPrénom: \nAge: \nAdresse: \nCode Postal: \nVille: \nNumero de tel: \nURL: \nMail: \n
Je n'ai donc que des variables vides ?
J'aurais pourtant juré que c'était le script php qui ne marche pas, puisque je suis bien meilleur programmateur en html qu'en php... Mais non, j'ai la preuve que ma balise <FORM> ne renvoie rien!!!!!
En visitant les différents sujets sur internet, qui parlaient de ce problème, j'ai lu qu'il fallait modifier les paramètres de serveur php, ou tester de nouveaux codes... Pourtant à la base, j'utilise un script tout à fait basique, que beaucoup utilisent tous les jours et qui marche.
Pareil en renvoyant les champs de mon formulaire sous Flash, avec ActionScript3: je reçois des messages vides!!!!!
S'il vous plaît, aidez-moi à comprendre ce problème, je suis dessus depuis 8h ce matin et je ne trouve aucune solution!!!
Merci!