Sessions PHP fonctionne pas.
JM
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila 6hrs que je cherche a faire marcher mon code PHP mais rien a faire.
J'ai chercher sur plusieurs forum personne ne semble avoir ce prob.
Je m'explique:
J'ai une page nommé membres.php avec un formulaire dessus pour se loguer.
Comme vous pouvez le voir si on se logue avec les bon renseignements on est renvoyer sur la page membres.php mais cette fois si on affiche Vous êtes bien logué.... au lieu du formulaire de login.
Tout va bien jusqu'ici.
Le probleme survient quand je change de page. Exemple, je suis logué dans une session sur la page membres.php et quand je click sur un lien me menant vers la page nouvelles.php la session fou l'camp.
J'ai essayé avec 3 pages différentes contenant le MÊME code et 2 des pages sur 3 conserve ou récupere la session.
Membres.php (C'est ok la var $_SESSION["login"] contient qqchose)
Index.php (C'est ok la var $_SESSION["login"] contient qqchose)
Nouvelles.php (la var $_SESSION["login"] contient rien)
voici le petit bout de code dans Index.php et Nouvelles.php
Le plus étrange dans tout ca c'est que lorsque je vide les cookie et les fichiers temporaires c'est Index.php qui fonctionne mal et Nouvelles.php qui fonctionne...
Besoin d'un exorciste!!!!
Merci
Voila 6hrs que je cherche a faire marcher mon code PHP mais rien a faire.
J'ai chercher sur plusieurs forum personne ne semble avoir ce prob.
Je m'explique:
J'ai une page nommé membres.php avec un formulaire dessus pour se loguer.
<?php session_start(); $loginOK = false; $errorMessage = ''; $db = mysql_connect('localhost', 'MESINFOS', 'MESINFOS'); mysql_select_db('db_website',$db); // Test de l'envoi du formulaire if($_POST) { // Les identifiants sont transmis ? if(!empty($_POST['login']) && !empty($_POST['pass'])) { $sql = "select PASSWORD, NOM, SEXE, PRENOM, PLEVEL from table_utilisateurs where EMAIL='".$_POST['login']."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); // On vérifie que l'utilisateur existe bien. if (mysql_num_rows($req) > 0) { if ($_POST['pass'] == $data['PASSWORD']) { $loginOK = true; } else { $loginOK = false; $errorMessage = 'Mauvais login / password.'; } } else { $loginOK = false; $errorMessage = 'Compte introuvable.'; } } else { $loginOK = false; $errorMessage = 'Un champ est rester vide.'; } } else { $loginOK = false; $errorMessage = ''; } if ($loginOK) { $_SESSION['login'] = $_POST['login']; $_SESSION['sexe'] = $data['SEXE']; $_SESSION['nom'] = $data['NOM']; $_SESSION['prenom'] = $data['PRENOM']; $_SESSION['plevel'] = $data['PLEVEL']; $url = "membres.php?".session_name()."=".session_id(); header("Location: $url"); //header('Location: membres.php'); exit(); } ?> HTML HTML HTML HTML HTML <?php if(!isset($_SESSION["login"])) { echo '<p><form action="membres.php" method=\'post\'> <p align="center" class="style3">Cette section est réservé exclusivement aux membres du site web.<br></p> <p align="center" class="style3"> </p> <p align="center" class="style3">'.$errorMessage.' Merci de recommencer.ll ', $_SESSION['login'] ,'</p> <p align="center" class="style3"> </p> <p align="center" class="style1">Entrer vos informations</p> <table width="214" border="0" align="center"> <tr> <td rowspan="2" class="style2"><img src="img/accueuil/cadena.gif" width="47" height="44"></td> <td height="24" class="style2">Login</td> <td><input type="text" name="login" maxlength="250"></td> </tr> <tr> <td height="24" class="style2">Password</td> <td><input type="password"name="pass" maxlength="10"></td> </tr> <tr> <td height="26" colspan="3" align="center"><div align="right"> <input type="submit" value="Entrer"></div> </td> </tr> </table> <p align="center"><a href="signup.html">S\'inscrire</a></p> </form></p>'; } else { echo 'Vous êtes bien logué ',$_SESSION['login'],' ',$_SESSION['nom'],' ',$errorMessage; } ?>
Comme vous pouvez le voir si on se logue avec les bon renseignements on est renvoyer sur la page membres.php mais cette fois si on affiche Vous êtes bien logué.... au lieu du formulaire de login.
Tout va bien jusqu'ici.
Le probleme survient quand je change de page. Exemple, je suis logué dans une session sur la page membres.php et quand je click sur un lien me menant vers la page nouvelles.php la session fou l'camp.
J'ai essayé avec 3 pages différentes contenant le MÊME code et 2 des pages sur 3 conserve ou récupere la session.
Membres.php (C'est ok la var $_SESSION["login"] contient qqchose)
Index.php (C'est ok la var $_SESSION["login"] contient qqchose)
Nouvelles.php (la var $_SESSION["login"] contient rien)
voici le petit bout de code dans Index.php et Nouvelles.php
<?php session_start(); echo 'session : ' , $_SESSION['login'] , '<br /> '; ?>
Le plus étrange dans tout ca c'est que lorsque je vide les cookie et les fichiers temporaires c'est Index.php qui fonctionne mal et Nouvelles.php qui fonctionne...
Besoin d'un exorciste!!!!
Merci
A voir également:
- Sessions PHP fonctionne pas.
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Retour a la ligne avec Echo comment faire ? - Forum Webmastering
- Je ne peux pas ouvrir ma session sur mon ordinateur ✓ - Forum Windows
1 réponse
toutes tes pages de la zone membre doivent avoir ceci tout au début (attention sans caracteres , balises html, espaces avant)
<?php session_start(); if(!isset($_SESSION['login']) || $_SESSION['login'] ==""){ header('Location:index.php'); exit(); }else{ ?> la partie html du contenu de ta page html nouvlelles.php <DOCTYPE......... <html> </html> <?php } ?>