> 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
99,23 €Disque dur externe portable Western Digital Elements USB 3.0 5 To à 99,23 €
Valable jusqu'au 22 Avril

Amazon propose actuellement le disque dur externe portable Western Digital Elements USB 3.0 5 To à 99,23 € livré gratuitement. On le trouve habituellement à partir de 119 €. Ce disque dur qui tient dans la main est silencieux, ne chauffe pas et dispose d'une connectique USB 3.0 qui vous offrira des transferts rapides. Il est compatible USB 2.0.


> Voir l'offre
899,90 €PC Portable 14 pouces HUAWEI MateBook D (Core i7, 16 Go RAM, 512 Go SSD, GeForce MX250) à 899,90 €
Valable jusqu'au 20 Avril

Amazon fait une promotion sur le PC portable 14 pouces HUAWEI MateBook D qui passe à 899,90 € livré gratuitement alors qu'on le trouve ailleurs à partir de 1100 €. Ce portable possède un processeur Intel Core i7-10510U, 16 Go de RAM, un SSD 512 Go, une carte graphique dédiée GeForce MX250 et tourne sous Windows 10. Son écran de 14 pouces est Full HD. Son poids plume de 1,38 kg et son autonomie de 10 heures vous permettront de l'emmener facilement partout avec vous. Il intègre un capteur d'empreinte digitale sur le bouton d'alimentation et se recharge via USB-C. Une très bonne affaire.


> Voir l'offre
74,50 €Tondeuse à gazon électrique Bosch ARM 32 à 74,50 €
Valable jusqu'au 21 Avril

 Amazon fait une promotion sur la tondeuse à gazon électrique Bosch ARM 32 qui passe à 74,50 € livrée gratuitement alors qu'on la trouve ailleurs à partir de 109,99 €.  Avec la tondeuse à gazon ARM 32 Bosch, rien de plus facile que de bien entretenir sa pelouse en un minimum de temps. Équipée d’un puissant moteur de 1 200 W, elle tond sans effort et efficacement l’herbe haute ou dense et assure une tonte parfaite.

Sa grande légèreté et sa forme compacte permettent de contourner facilement les obstacles. Son guide herbe permet une tonte au ras des murs, des parterres de fleurs et des bordures.  La hauteur de coupe est réglable de 20 à 60 mm. Bac de ramassage de 31 litres. La tondeuse à gazon ARM 32 est par ailleurs peu encombrante. Le guidon peut être replié après utilisation.


> 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