Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/04/2011, 21h04   #1
Membre à l'essai
 
Inscription : février 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 97
Points : 20
Points : 20
Par défaut Formulaire + Cookies

Bonsoir,

J'ai deux ennui sce soir:

Le premier concerne un formulaire qui fonctionne bien avec Internet Explorer et Safari mais qui ne fonctionne pas bien avec FireFox.

Le formulaire est le suivant:

Code :
1
2
3
4
 
<form  enctype="multipart/form-data"  name="addToBasket" action="sh_notebook.php"  method="post" >
<INPUT  name="ref" value="1" type="hidden"></INPUT><input type="submit" name="addToBasketButton" value="Ajouter à votre panier">
</form>
Dans la page action note "sh_notebook.php" j'ai le script suivant:

Cela affiche toute la table des variables postées. Je répète cela fonctionne bien sous IE8 et Safari mais pas du tout avec FireFox. Une idée ? C'est très curieux.

Mon second problème concerne les cookie. J'enregistre bien les cookie avec le code suivant:
Code :
1
2
 
setcookie($name, $value, time()+3600*24*365*1);

Dans mon navigateur je conctate que cela enregistre bien mon cookie mais reference ave cla page de creation. Lorsque je veux relire ces cookies dans une autre page, cela ne fonctionne pas (je n'ai aucun cookie). Faut-il utiliser la variable "domain" pour que ce cookie soit accessible de partout dans mon domaine ?

Code :
1
2
3
4
 
 
avec $domain = "127.0.0.1"
setcookie($name, $value, time()+3600*24*365*1, "", $domain);
J'ai essayé mais cela ne fonctionne pas bien. Des idée pour rendre accessible mon cookie part tout les scrip PHP de mon site ?

Merci de toute aide.
Jolt0x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 21h10   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
1 - qu'obtiens-tu avec firefox ?

2 - vérifie déjà que tes variables contiennent bien quelque chose.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 21h57   #3
Membre à l'essai
 
Inscription : février 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 97
Points : 20
Points : 20
Merci.

Avec FireFox, le tableau $_POST qui contient toutes les variables du formulaire est vide ( vérifié avec print_r($_POST) ). Seconde vérification, lorsque je palpe avec un isset($_POST['maVariable']) c'est vide.

J'ai déjà eu ce genre de problème sur d'autre formulaire avec Firefox. C'est très curieux et cela semble aléatoire. J'ai redémarré mon PC et je suis prêt a parier que je n'ai plus le problème. Ça s'est pour le premier souci.

Le second souci concerne les cookies. J'ai un script dans un premier répertoire qui crée des cookies. Les cookies sont bien crées et parfaitement bien présents dans les fichiers du navigateur. Je l'ai vérifié. Lorsque, a partir d'un autre script php, situé dans un autre répertoire, j'essaie de lire les cookies mais je n'obtiens rien. Faut-il mettre un paramètre dans le champ $domain comme mis plus haut pour autoriser tous les script du site web a accéder aux cookies ?
Jolt0x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 22h25   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
1 - rencontres-tu le même problème avec Firefox sur un autre poste ?

2 - tu sembles insister sur le fait que le deuxième fichier sois dans un repertoire différent, as-tu testé dans le même repertoire ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 22h50   #5
Membre à l'essai
 
Inscription : février 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 97
Points : 20
Points : 20
Merci de ton intérêt a ma question, Sabotage.

Je reconfirme, malheureusement, le problème avec FireFox persiste. Avec le formulaire donné plus haut, Il n'y a aucune variable dans le tableau POST. $POST est vide. A print_r($_POST) il n'affiche rien.

Avec IE8 et Safari cela fonctionne parfaitement. Cela m'échappe complétement.

Pour le second problème, il faut lire la documentation de la fonction "setcookie". Est-il besoin, lorsque l'on a des script dans des répertoire différent, de renseigner le champ "domain". Parce que je confirme que les cookies créés par un script d'un premier répertoire sont illisible par un autre script d'un autre répertoire.
Jolt0x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 23h00   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
Pour le second problème, il faut lire la documentation de la fonction "setcookie".
Ne te gêne pas pour ça.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 00h04   #7
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Citation:
Envoyé par Jolt0x Voir le message

Code :
1
2
 
<INPUT  name="ref" value="1" type="hidden"></INPUT>
Au passage tu as une erreur ici : il ne devrait pas y avoir </INPUT>
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 11h07   #8
Membre à l'essai
 
Inscription : février 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 97
Points : 20
Points : 20
Merci a vous deux pour vos réponse.

J'ai fait un petit script nommé "test.php" dans lequel j'ai pris le code qui ne marche pas avec FireFox. C'est ca:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
 
 print_r($_POST);
 
echo "
 
<form name=\"addToBasket\" action=\"test.php\"  method=\"post\" onsubmit= \"return 1\">
<INPUT  name=\"ref\" value=\"1111\" type=\"hiddXen\">  <input type=\"submit\" name=\"addToBasketButton\" value=\"Ajouter à votre panier\">
</form>
 
";
 
 
?>
Copier/coller et vous verrez que sous FireFox cela ne marche pas !! Bon sang de bois !!!! La commande print_r($_POST); n'affiche rien car $_POST est vide !!!!!!!

Merci.
Jolt0x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 11h17   #9
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Chez moi ca fonctionne avec firefox.

tu as essayé sans ta fonction javascript ?

Citation:
La commande print_r($_POST); n'affiche rien car $_POST est vide !!!!!!!
print_r affiche Array() si $_POST est vide, il n'affiche pas rien.
tu as Array() ou tu n'as rien ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 12h01   #10
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Citation:
Envoyé par Jolt0x Voir le message
Code :
1
2
 
<form  enctype="multipart/form-data"  name="addToBasket" action="sh_notebook.php"  method="post" >
Pourquoi as-tu "enctype="multipart/form-data", de mémoire, ça n'est utile que si tu as un fichier à envoyer.

Citation:
Envoyé par Jolt0x Voir le message
echo "

<form name=\"addToBasket\" action=\"test.php\" method=\"post\" onsubmit= \"return 1\">
<INPUT name=\"ref\" value=\"1111\" type=\"hiddXen\"> <input type=\"submit\" name=\"addToBasketButton\" value=\"Ajouter à votre panier\">
</form>

";
Tu te rends compte que tu as un champ de type hiddXen ?
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 12h02   #11
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
4e paramètre de setcookie :

Citation:
$path

Le chemin sur le serveur sur lequel le cookie sera disponible. Si la valeur est '/', le cookie sera disponible sur l'ensemble du domaine domain. Si la valeur est '/foo/', le cookie sera uniquement disponible dans le répertoire /foo/ ainsi que tous ses sous-répertoires comme /foo/bar/ dans le domaine domain. La valeur par défaut est le répertoire courant où le cookie a été défini.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 12h05   #12
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Citation:
Envoyé par ABCIWEB Voir le message
Au passage tu as une erreur ici : il ne devrait pas y avoir </INPUT>
ça dépend des navigateurs et s'il est en xHTML ou HTML.
En XML <test id="1" /> est semblable à <test id="1"></test>

Certains ont gardé les 2 syntaxes pour le XHTML.
Mais clairement, il est préférable de garder la 1ère syntaxe pour être compatible partout
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 16h20   #13
Membre à l'essai
 
Inscription : février 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 97
Points : 20
Points : 20
Citation:
Envoyé par sabotage Voir le message
Chez moi ca fonctionne avec firefox.

tu as essayé sans ta fonction javascript ?


print_r affiche Array() si $_POST est vide, il n'affiche pas rien.
tu as Array() ou tu n'as rien ?
J'ai bien le Array(), evideemnt. Mais c'est tout. $_POST est vide.

Merci Shikiryu. Je n'ai pas encore testè mais ca doit être ca;le 4e paramètre de setcookie ($path)

Le type "hiddXen" est simplement là pour ne pas effacer le mot hidden et pouvoir le retrouver rapidement. Enlève le si tu veux. Mais ca ne règle pas mon soucie.

Avez vous testé mon script tel que je vous l'ai proposè ?
Jolt0x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 16h27   #14
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Oui, sous FF4.

Résultat :
Citation:
Array ( [ref] => 1111 [addToBasketButton] => Ajouter à votre panier )
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 19h41   #15
Membre à l'essai
 
Inscription : février 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 97
Points : 20
Points : 20
OK, j'ai upgradè vers FF 4 et ca marche mieux. Je ne comprends pas bien.

Pour les cookies, c'est OK.

J'ai une autre question. Lorsque j'ai commencé a coder en PHP j’utilisais une fonction dont je ne me souvien pas le nom exact et je ne le retrouve plus dans l'aide en ligne. En fait, ce n’était pas un fonction exactement.

Je faisais ca:

messageAAfficher = EOD <<<
message n'importe quoi, du html, etc.
" mon message "
;

puis je faisais

echo messageAAfficher et ca affiche le message.

C'est utile pour par exemple éviter de mettre des backslash comme caractère échappement. Vous voyez ? Sinon pour afficher mon message ils faut mettre \" mon message \"

Des idées ? Ce n'est pas EOD ou EOF, je ne sais plus.

Merci.
Jolt0x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 20h28   #16
Membre à l'essai
 
Inscription : février 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 97
Points : 20
Points : 20
c'est bon j'ai retrouvé la commande:

Code :
1
2
3
4
5
6
 
$str = <<<EOD
Exemple de chaîne
sur plusieurs lignes
en utilisant la syntaxe Heredoc.
EOD;
Jolt0x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 20h33   #17
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
C'est la syntaxe heredoc
Et tu peux bien mettre ce que tu veux comme balise en ouverture qui suit les "<<<" pourvu que la fermeture porte le même nom.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 20h56   #18
Membre à l'essai
 
Inscription : février 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 97
Points : 20
Points : 20
Merci a tous.

Je propose de fermer ce sujet. Je tag en résolue.
Jolt0x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 10h54   #19
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Citation:
Envoyé par Jolt0x Voir le message
OK, j'ai upgradè vers FF 4 et ca marche mieux. Je ne comprends pas bien.
Ton ancien FF n'avait pas un plugin empêchant l'envoi par POST (ce serait bête mais bon...)
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h21.


 
 
 
 
Partenaires

Hébergement Web