Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

PHP perte de session avec header

mike0379, le lundi 17 mars 2008 à 17:02:08
Bonjour,
voilà je fais le truc classique d'authentification.
j'ai donc une page index.php où il faut saisir login et pwd et une autre loginForm.php où il y a le traitement.
Une fois authentifié, j'enregsitre mes variables de sessions avec session_register.
Pour finir, j'appelle la commande header pour revenir à ma page index.php.
Pb: une fois revenu à ma page index.php, les variables de sessions sont vides.

j'ai fait tout un tas de recherches mais sans succès.
Est ce une faute de programmation? Un paramètrage non fait dans le php.ini de wamp?

A noter que si dans loginForm.php, j'utilise la commande include($_SERVER['DOCUMENT_ROOT']."index.php"); au lieu de header("Location: http://" . $_SERVER['HTTP_HOST']. "/" . "index.php"); je retrouve mes variables de session!

merci de votre aide.

voici mon code:
//index.php

<?php
session_name();
session_start();
echo "login:'".$login."'";

<form method="POST" action="/phpform/loginForm.php">
<table border="0" cellpadding="1" cellspacing="0">
<tr>
<td>Identifiant : </td>
<td>
<input name="loginForm" tabindex="1" type="text"/>
</td>
</tr>
<tr>
<td>Mot de passe</td>
<td>
<input name="passwordForm" tabindex="2" type="password"/>
</td>
</tr>
<tr>
<td colspan="2" align="right">
<input name="Identification" type="submit" tabindex="3" value="Connexion"/>
</td>
</tr>
</table>
</form>

...?>

//loginForm.php
<?php
session_name();
session_start();

//fonction login() de vérification du login et du mot de passe

if (!login())
{
session_destroy();
header("Location: http://" . $_SERVER['HTTP_HOST']. "/" . "index.php");
}
else
{
$login=$_POST['loginForm'];
$password=$_POST['passwordForm'];
$id_session=session_id();
session_register("login");
session_register("password");
session_register("id_session");
header("Location: http://" . $_SERVER['HTTP_HOST']. "/" . "index.php");
}
?>
Configuration: Windows XP
Internet Explorer 6.0
WAMP
Répondre à mike0379  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Newphy, le lundi 17 mars 2008 à 22:11:14
Sur un site, j'ai mit session_start() en haut (parce que sinon ça ne marche pas). Et dans le script d'authentification, si le login est bon $_SESSION['pseudo'] sera égal au pseudo (login...) et si le gars veut se déconnecter la valeur de $_SESSION['pseudo'] sera nulle (donc a préciser dans le script de ne pas afficher la page si $_SESSION['pseudo'] est nulle). Et les redirections avec du javascript (location.href='ma_page.truc'). J'espère que ça a put t'aider parce que chez moi cette méthode marche super.
Répondre à Newphy

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mike0379, le mardi 18 mars 2008 à 09:25:54
merci mais j'ai mis session_start() et session_register est équivalent à $_SESSION.

ensuite pour le javascript, je veux éviter d'écrire du code qui sera coté client, c'est pourquoi je préfère le gérer directement en php.

ce que je ne comprends pas c'est que sur des posts présentant du code avec header cela semble fonctionner. alors pourquoi pas moi?
je me dis que j'ai peut être oublié de modifier un paramètre dans mon php.ini ou un truc comme ca, mais je ne sais pas.

Quelqu'un a t il une idée?
Répondre à mike0379

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Newphy, le mardi 18 mars 2008 à 20:53:01
je suis désolé je ne peux pas t'aider, je ne connais pas trop les headers :s
Répondre à Newphy

4


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
le père, le mardi 18 mars 2008 à 22:02:05
Bonjour

Pour enregistrer tes variables de session, n'utilise pas session_register('variable') mais plutôt $_SESSION['variable']=valeur. session_register ne marche pas si register_globals est désactivé et justement, depuis PHP 4.2, cette directve est désactivée par défaut.
Répondre à le père

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mike0379, le mercredi 19 mars 2008 à 08:51:39
ah merci! ca fonctionne.
Utiliser session_register ou $SESSION fonctionne très bien lorsque register_globals est désactivé et lorsuq'on utilise les include.
Mais effectivement, cela ne fonctionne plus avec les headers.
J'ai donc activé register_globals et maintenant tout marche.
Merci!
Répondre à mike0379

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
le père, le mercredi 19 mars 2008 à 09:04:59
Bonjour

J'ai donc activé register_globals
Ce qu'il ne fallait pas faire . Tu ouvres la porte à de nombreuses attaques contre ton serveur, mais bon, c'est toi qui vois...
http://fr.php.net/manual/fr/security.globals.php
Répondre à le père

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mike0379, le mercredi 19 mars 2008 à 10:05:15
OK mais alors comment fais je?
Répondre à mike0379

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
le père, le mercredi 19 mars 2008 à 10:12:00
N'utilise jamais session_register. Si tu manipules tes variables de session UNIQUEMENT sous la forme $_SESSION[], avec register_globals desactivé, ça marche très bien, avec ou sans headers.
Au passage, à quoi sert le session_name() que tu mets au début de tes scripts ?
Répondre à le père

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 mike0379, le mercredi 19 mars 2008 à 10:53:28
effectivement cela fonctionne.
merci.
Répondre à mike0379

Résultats pour PHP perte de session avec header

[PHP] Porblème avec header et session_start() (Résolu) Bonjour, je suis en train de concevoir un site web et j'ai un problème. J'ai, au début d'une page, le script suivant: www.commentcamarche.net/forum/affich-8298746-php-porbleme-avec-header-et-session-start
Php session cookie qui ne se supprime pas (Résolu) Bonjour, j'utilise le script trouvé a cette page http://www.manuelphp.com/php/function.session-destroy.php mais cela ne supprime pas le cookie comment cela ce fait-ce ? je connai tres mal les session donc si vous voulez des reseignement sur mon... www.commentcamarche.net/forum/affich-4190949-php-session-cookie-qui-ne-se-supprime-pas

Résultats pour PHP perte de session avec header

[PHP] Headers already sent by.....Lorsque vous utilisez une fonction Php qui manipule les en-têtes http comme par exemple: header() setcookie() session_start() Il est important d'utiliser ces fonctions avant d'avoir généré le moindre flux vers le client. A partir du moment où... www.commentcamarche.net/faq/sujet-1916-php-headers-already-sent-by

Résultats pour PHP perte de session avec header

Faire un lien par page Index.php (Résolu)Bonjour à tous, J'ai fait des petites pages en Php, et comme je débute... J'ai un "Index.php" qui inclus "header, menu_G, menu_D et footer". Dans un des menu, j'ai fait un lien vers la page qui contient des images. En fait, il y a 3... www.commentcamarche.net/forum/affich-1870175-faire-un-lien-par-page-index-php
Problème kit graphique php (Résolu)Bonjour, je viens d'avoir un kit graphique en php le contenu : - 5 feuilles en php ( bas, centre, header, index, menu ) - 1 feuille en css voici mon index : http://firehope.free.fr/index.txt je voudrais enfaite pouvoir cliquer sur un lien et que... www.commentcamarche.net/forum/affich-4911849-probleme-kit-graphique-php
Sessions, Headers --> problèmes à répétition (Résolu)Bonjour à tous, Je vous expose mon problème. Cela fait plusieurs jours que j'essaie en vain de faire des sessions corrects et des header(location) qui fonctionnent. Pourquoi ? simplement car j'ai une page index.php avec mon design (du code... www.commentcamarche.net/forum/affich-3570888-sessions-headers-problemes-a-repetition

Résultats pour PHP perte de session avec header

PHP - Les cookies et les en-têtes HTTPLes en-têtes HTTP Lors de chaque échange par le protocole HTTP entre votre navigateur et le serveur, des données dîtes d'en-têtes contenant des informations sur les données à envoyer (dans le cas d'une requête) ou envoyées (dans le cas d'une... www.commentcamarche.net/contents/php/phpcookie.php3