> Tous les forums > Forum des Webmasters
 pb de session php avec IE (presque résolu)
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
papyboingtown
  Posté le 22/03/2006 @ 05:54 
Aller en bas de la page 
Petit astucien
bonjour à tous. Quelqu'un peut-il m'expliquer pourquoi le code suivant fonctionne sous firefox, et echoue sur internetexplorer : Le code de session.php: [code]<?php session_start(); $_SESSION['essai']="quelques choses"; ?> <html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <a href="session2.php">ici</a> </body> </html> [/code] voici le code de session2.php : [code] <?php session_start(); ?> <html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php echo $_SESSION['essai']; ?> </body> </html> [/code] Voilà, j'ai essayé de simplifier au maximum. Ce script marche sur firefox, mais sur internet explorer, il me donne le (célébre) message suivant : Notice: Undefined index: essai in d:\partager\sites\test\session2.php on line 12 alors voilà...[boom] Si quelqu'un à une idée, je suis preneur, d'avance merci A la vôtre [bierre]

Modifié par papyboingtown le 24/03/2006 04:50
Publicité
midnightblue
 Posté le 22/03/2006 à 20:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
La variable de session n'est pas définie. Coder : [code]<?php session_start(); if(empty($_SESSION["essai"])) {$_SESSION["essai"]="";} ?>[/code] et voilou ! *µ*
koala01
 Posté le 22/03/2006 à 23:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Salut, Il faudrait voir de quelle manière la session est gérée chez ton hébergeur… Il faut en effet savoir qu'une session, pour etre gardée d'une page à l'autre, doit fournir un moyen de la récupérer… Deux solutions existent: soit on transmet l'identifiant de session par l'url (ce qui donne quelque chose du genre de fichier.php?sessid=aerzeartt13512456aedxst), soit, le serveur place un "cookie de session", qui est un cookie à durée très limitée (généralement pas plus d'une demi-heure entre chaque requete) qui… subit toutes les limites du cookie, dont, entre autre, le fait que tous les navigateurs sont en mesure de les bloquer… Comme le code fonctionne sous mozilla/firefox, et pas sous internet explorer, et que le code que tu nous présente ne fournit aucune valeur dans l'url, on peut estimer que tu as autorisé les cookie pour le site, mais que tu les a bloqué sous internet explorer… Essaie peut etre de voir ce qui se passerait si tu autorisais exceptionnellement les cookie sous IE pour ce site [clindoeil] S'il apparait que le code fonctionne, n'oublie pas de placer un avertissement sur ton site du genre de "attention, pour fonctionner correctement, ce site nécessite que vous acceptiez les cookies" [clindoeil]
papyboingtown
 Posté le 24/03/2006 à 04:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Bonjour à tous et merci à vous deux pour ces précisions. J'avais bien pensé à cette affaire de cookie, alors j'ai mis la sécu de mon internet explorer au minimum mais ça n'a rien changé. Sinon, je suis en train de le créer ce site et pour l'instant j'utilise easyphp 1.8 qui me donne pleinement satisfaction sous windows mais qui est peut-etre la source de mon petit soucis. Bon si jamais je trouve pas, je met un formulaire de plus avec un submit et pis voilà, y'aura plus de soucis. merci A bientôt et a la vôtre [bierre]
millefeintes
 Posté le 24/03/2006 à 17:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
bonjour, j'ai fait un strict copier coller des 2 scripts et cela fonctionne sur FF et IE de mon côté. Par contre en allant directement sur session2.php, en effet cela ne fonctionne pas car la variable nest pas definie comme il est dit. Et midnightblue a proposé la solution. Et vous pouvez rajouter un message derreur comme quoi la variable nest pas set . ++

Modifié par millefeintes le 24/03/2006 17:20
koala01
 Posté le 25/03/2006 à 23:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Heuu… Visiblement, tu n'as pas *vraiment* conscience de ce que représente une session… Il faut savoir qu'une session, cela permet de "garder" différentes informations entre différentes pages web, durant une durée *très* limitée (généralement, un maximum d'une demi heure entre deux requetes au serveur qui la gere), mais que le simple fait de fermer le navigateur met *également* (et du moins, de manière théorique) fin à la session… De plus, effectivement, si tu vas directement sur la "deuxième page", alors que certaines informations sont définies en variables de session, il n'est pas étonnant que le serveur ne les retrouve pas… vu qu'il n'a aucun moyen de savoir… qu'il aurait du créer une valeur… Ce que tu peux donc faire, au pire, c'est de commencer ta deuxième page en testant l'existance de ta variable de session. Si elle existe, tu la gères de manière classique, et sinon, le seul traitement que tu effectues, c'est d'inclure la page qui génère ta variable de session… (en prenant bien en compte que la déclaration de session doit etre effectuée avant tout envoi d'informations… Avec une page "session.php" du genre de [code] <?php session_start(); $_SESSION['essai']="quelques choses"; ?> <html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <a href="session2.php">ici</a> </body> </html>[/code] (je me suis contenté de reprendre ton propre code, sur ce coup là) tu pourrais très bien avoir une page "session2.php" du genre de [code] <? session_start(); //on vérifie si la variable de session n'est pas définie if(!isset($_SESSION['essai'])) { include('session.php'); } else { ?> <html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php echo $_SESSION['essai']; ?> </body> </html> <? }?>[/code] Le résultat sera que, si la variable de session "essai" n'est pas définie, le fichier dans lequel elle l'est sera inclus, et que ce sera la seule chose qui sera faite… Si, par contre, elle existe, le fichier sera en mesure de la gérer…

Modifié par koala01 le 25/03/2006 23:01
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
699,99 €Ultraportable 14 pouces Asus Vivobook S3400QA (OLED WQXGA+, Core i5, 8 Go, SSD 512 Go) à 699,99 €
Valable jusqu'au 26 Mai

Cdiscount fait une belle promotion sur l'ultraportable Asus Vivobook S3400PA-KM014W qui passe à 699,99 € au lieu de 800 €. Cet ordinateur dispose d'un superbe écran 14 pouces OLED WQXGA+ 2.8K (2880x1800), d'un processeur Intel Core i5 11300H, de 8 Go de RAM, un SSD NVMe de 512 Go et tourne sous Windows 10 que vous pouvez mettre à jour pour Windows 11. Il ne pèse que 1,40 kg et propose une autonomie réelle de 7h30.

Un très bon portable avec un superbe écran idéal pour la bureautique, Internet et le multimédia.


> Voir l'offre
19,99 €Lecteur/graveur de CD/DVD externe USB 3.0 slim à 19,99 €
Valable jusqu'au 26 Mai

Cdiscount fait une promotion sur le lecteur/graveur de CD/DVD externe USB 3.0 slim qui passe à 19,99 €. Ce graveur vous permettra de lire et graver les CD et DVD sur votre ordinateur qui ne dispose pas de lecteur optique (soit la plupart des portables du marché). Branchez-le simplement sur un port USB de votre PC portable grâce à son câble intégré.


> Voir l'offre
149,99 €Nettoyeur haute pression Karcher K4 Power Control à 149,99 € (via ODR)
Valable jusqu'au 26 Mai

Cdiscount fait une promotion sur le nettoyeur haute pression Karcher K4 Power Control à 179,99 € alors qu'on le trouve ailleurs à partir de 199 €. Or Karcher rembourse actuellement 30 € pour l'achat de ce nettoyeur qui vous reviendra à 149,99 € après remboursement.

Le Nettoyeur haute pression K4 Full Power est livré avec un pistolet ergonomique, un flexible 8 m, un nez de robinet pour raccorder un tuyau d’arrosage, une lance Vario Power et une rotabuse. 

Avec sa poignée télescopique rétractable, l'appareil peut être déplacé et rangé facilement. Le K4 Power Control est idéal pour une utilisation intensive et pour nettoyer vélos, outils de jardin, meubles de jardin, etc. Pression max 130 bar, débit max 420 L/h, puissance 1800 Watts, surface conseillée ≈ 30m²/h, moteur universel, pompe Ncor.


> Voir l'offre

Sujets relatifs
Problème avec Xampp - résolu ? si on veut !
Sérieux problème avec filezilla (résolu)
Problème avec variable session
Ouvrir une session avec un mot de passe crypté
Problème avec frontapge (problème résolu )
transfert fichiers pdf avec Firefox [résolu]
Formulaire pb avec les fichiers recus [résolu]
la premiere ligne de htaccess avec free [resolu]
Réduire gif avec gifworks Résolu Merci!
[RESOLU]Souci création de table sur MYSQL avec err
Plus de sujets relatifs à pb de session php avec IE (presque résolu)
 > Tous les forums > Forum Forum des Webmasters