[PHP] Session détruite sans demande ?!
digival
Messages postés
209
Statut
Membre
-
digival Messages postés 209 Statut Membre -
digival Messages postés 209 Statut Membre -
Bonjour,
J'utilise une session sur toute les pages de mon site mais il y a une page où, lorsqu'on y va, la session se détruit et je suis sûr de ne pas avoir mis de session_unset ou destroy... j'y comprend rien.
Si quelqu'un a une idée de la raison du problème, qu'il me fasse signe ! :)
J'utilise une session sur toute les pages de mon site mais il y a une page où, lorsqu'on y va, la session se détruit et je suis sûr de ne pas avoir mis de session_unset ou destroy... j'y comprend rien.
Si quelqu'un a une idée de la raison du problème, qu'il me fasse signe ! :)
A voir également:
- [PHP] Session détruite sans demande ?!
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Jeux vidéo
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Php alert ✓ - Forum PHP
22 réponses
C'est les register_globales qui posent problème.
Teste ce script pour comprendre le problème :
Tu peux les désactiver en mettant la ligne "php_flag register_globals off" dans le .htaccess
Teste ce script pour comprendre le problème :
<?php session_start(); $_SESSION['user'] = 'avion-f16'; $user = 'digival'; echo $_SESSION['user']; ?>Tu verras apparaître 'digival' et pas 'avion-f16'.
Tu peux les désactiver en mettant la ligne "php_flag register_globals off" dans le .htaccess
Je ne pensais pas que c'était nécessaire mais je joint ici tout ce qui peut être utile si tu en as besoin :
<?php
session_start();
if( isset($_POST['objet']) ) {$_SESSION['objet'] = $_POST['objet'];}
?>
<?php // CONNEXION A LA BDD
mysql_connect("*", "*", "*");
mysql_select_db("*");
?>
<?php // Définition des variables
$destinataire = '*';
$objet = 'Message de mon Site !';
$nom = $_POST['nom'];
$mail = $_POST['mail'];
?>
<?php // CRÉATION DU MAIL :
if( isset($_POST['send'] ) AND ( preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail) ) )
{
// Définition de la variable $passage_ligne
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $destinataire))
{ $passage_ligne = "\r\n"; }
else
{ $passage_ligne = "\n"; }
// 2. Définition du contenu
$message_html = '
<html>
<head>
<title>'. $objet .'</title>
</head>
<body>
<div>
<p>'. $nom .' souhaiterait s\'inscrire sur mon site !</p>
</div>
</body>
</html>
';
$message_txt = 'Message au format texte...';
$boundary = "-----=".md5(rand());
// 4. Création du header de l'e-mail
$header = "From: \"*"<*@hotmail.fr>".$passage_ligne;
$header.= "Reply-to: \"*\" <*@hotmail.fr>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundar\"".$passage_ligne;
// ----- Création du message ----
$message = $passage_ligne.$boundary.$passage_ligne;
// 1. Ajout du message au format texte
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//-------------------------------------------
$message.= $passage_ligne."--".$boundary.$passage_ligne;
// 2. Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//-------------------------------------------
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//-----------------------------
// Envoi de l'e-mail
// Insertion de l'add-mail de l'envoyeur dans bdd
mysql_query("UPDATE inscrits SET adresse='$mail' WHERE nom='$nom' ") or die(mysql_error());
// Définition de l'état du tranfert
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Mon site</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="../includes/style.css" />
</head>
<body>
(...)
</body>
</html>
Bizarre ...
Es-tu hébergé chez 1&1 ?
Qu'elle est la version de PHP (crées une page contenant "<?php phpinfo(); ?>") ?
register_globals est-il activé (toujours avec phpinfo()) ?
Es-tu hébergé chez 1&1 ?
Qu'elle est la version de PHP (crées une page contenant "<?php phpinfo(); ?>") ?
register_globals est-il activé (toujours avec phpinfo()) ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je suis hébergé par Free,
La version actuelle de php est 4.4.3-dev et register_globals est bien activé...
INFO : Il y a une semaine même pas ça marchait et je n'ai pas touché à mon script depuis que ça marchait
La version actuelle de php est 4.4.3-dev et register_globals est bien activé...
INFO : Il y a une semaine même pas ça marchait et je n'ai pas touché à mon script depuis que ça marchait
Ok super merci beaucoup !
Au fait quand tu dis
"Tu peux les désactiver en mettant la ligne "php_flag register_globals off" dans le .htaccess",
tu parles d'une page codée par moi-même ou d'un fichier de wamp ?
Au fait quand tu dis
"Tu peux les désactiver en mettant la ligne "php_flag register_globals off" dans le .htaccess",
tu parles d'une page codée par moi-même ou d'un fichier de wamp ?
C'est un fichier à créer toi-même sur Free (sur ton FTP) à la racine de ton site (là où tu as ta page index.php)
Ce n'est pas possible.
Si register_globals est activé, alors ça t'affichera 'digival' sinon 'avion-f16'.
Et plus haut, tu me dis : “et register_globals est bien activé”
Si register_globals est activé, alors ça t'affichera 'digival' sinon 'avion-f16'.
Et plus haut, tu me dis : “et register_globals est bien activé”
Ben je suis désolé mais j'ai bien vérifié dans les infos php, dont voici la ligne :
" register_globals On On " (avec le design en moins ^^)
Et voici le script du test que tu m'as demandé de coder
Je confirme que c'est avion-f16 qui est affiché :s
" register_globals On On " (avec le design en moins ^^)
Et voici le script du test que tu m'as demandé de coder
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Mon Site</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <?php $_SESSION['user'] = 'avion-f16'; $user = 'digival'; echo $_SESSION['user']; ?> </body> </html>
Je confirme que c'est avion-f16 qui est affiché :s
Bizarre : je viens de tester sur mon serveur, et ça affiche bien "digival" avec register_globals sur On
Alors là, j'avoue que je comprends rien :
j'ai ré-essayé pour la 3ème fois et là, magie, c'est bien digival qu'est affiché ! o0
Je suis sûr d'avoir bien lu les autres fois avion-f16, pourtant.
Peut-être que mon navigateur a vidé le cache automatiquement ou un autre truc du genre...
Bref, je sais ce qu'il me reste à faire, merci encore
A++
j'ai ré-essayé pour la 3ème fois et là, magie, c'est bien digival qu'est affiché ! o0
Je suis sûr d'avoir bien lu les autres fois avion-f16, pourtant.
Peut-être que mon navigateur a vidé le cache automatiquement ou un autre truc du genre...
Bref, je sais ce qu'il me reste à faire, merci encore
A++
Quand ton problème sera résolu, coche le bouton en haut.
Si tu as encore un problème avec ça, alors continue la discution.
Si tu as encore un problème avec ça, alors continue la discution.
Nan en fait je savais pas comment créer un fichier .htaccess mais j'ai lu qu'il suffisait de le nommer comme ça ^^
heu... ça marche pas :(
Voici ma page .htaccess
Voici ma page .htaccess
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Page .htaccess de mon Site</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <?php php_flag register_globals off ?> </body> </html>
.htaccess est un fichier utilisé par le serveur Apache, il n'est pas envoyé au navigateur du client donc il n'a pas besoin de contenir autre chose que les lignes configurations.
Code du .htaccess :
Code du .htaccess :
php_flag register_globals off