IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire + Cookies


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 - qu'obtiens-tu avec firefox ?

    2 - vérifie déjà que tes variables contiennent bien quelque chose.

  3. #3
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    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 ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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 ?

  5. #5
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    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.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour le second problème, il faut lire la documentation de la fonction "setcookie".
    Ne te gêne pas pour ça.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Citation Envoyé par Jolt0x Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <INPUT  name="ref" value="1" type="hidden"></INPUT>
    Au passage tu as une erreur ici : il ne devrait pas y avoir </INPUT>

  8. #8
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Chez moi ca fonctionne avec firefox.

    tu as essayé sans ta fonction javascript ?

    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 ?

  10. #10
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Citation Envoyé par Jolt0x Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  11. #11
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    4e paramètre de setcookie :

    $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.

  12. #12
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    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

  13. #13
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    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è ?

  14. #14
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Oui, sous FF4.

    Résultat :
    Array ( [ref] => 1111 [addToBasketButton] => Ajouter à votre panier )

  15. #15
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    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.

  16. #16
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    c'est bon j'ai retrouvé la commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $str = <<<EOD
    Exemple de chaîne
    sur plusieurs lignes
    en utilisant la syntaxe Heredoc.
    EOD;

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    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.

  18. #18
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Merci a tous.

    Je propose de fermer ce sujet. Je tag en résolue.

  19. #19
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    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...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire + Cookie ?
    Par tilex dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 18/05/2007, 12h10
  2. enregistrer informations des formulaires dans cookies
    Par BernardT dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/07/2006, 10h13
  3. [Cookies] insertion de données automatique dans formulaire
    Par chouchouboy dans le forum Langage
    Réponses: 8
    Dernier message: 09/06/2006, 11h50
  4. [Cookies] Variable envoyée par un formulaire
    Par mmz dans le forum Langage
    Réponses: 10
    Dernier message: 17/03/2006, 11h50
  5. Réponses: 12
    Dernier message: 24/09/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo