Problème session php
Guyome
-
clabman Messages postés 58 Statut Membre -
clabman Messages postés 58 Statut Membre -
Bonjour,
J'ai, sur un site que je fais, un souci de session :
Sur la page d'accueil, je fais appel à des include sous la forme :
Les include marchent bien, mais les sessions ne démarrent pas. En fait je vais vous montrer mpn code et vous expliquer au fur et à mesure :
J'ai un script qui se connecte à la base de donnée et qui démarre la session, qui est placé tout en haut de mon code !
Ensuite, voilà le script qui permet d'envoyer les données via un formulaire :
S'il la sesion ne renvoie rien ça renvoie donc à ce formulaire :
Et la vérification se fait sur ce script :
Le souci est le suivant :
Seul le formulaire s'affiche, n'affichant pas le $message. Je ne vois pas du tout ça peut venir !!! Si vous pouviez m'aiguiller.
Merci
J'ai, sur un site que je fais, un souci de session :
Sur la page d'accueil, je fais appel à des include sous la forme :
<?php include('/include/session.inc.php'); ?>
Les include marchent bien, mais les sessions ne démarrent pas. En fait je vais vous montrer mpn code et vous expliquer au fur et à mesure :
J'ai un script qui se connecte à la base de donnée et qui démarre la session, qui est placé tout en haut de mon code !
<?php $hote= 'xxxxx'; $user = 'xxxxx'; $passe ='xxxxx'; $base= 'xxxxx'; $connexion = mysql_connect($hote, $user,$passe); mysql_select_db($base,$connexion); ini_set('arg_separator.output', '&'); ini_set("url_rewriter.tags","a=href,area=href,frame=src,iframe=src,input=src"); session_start(); ?>
Ensuite, voilà le script qui permet d'envoyer les données via un formulaire :
<?php if($_SESSION['pseudo'] == '') { $message = "<p>Pour vous connecter, merci d'indiquer votre <em>identifiant</em> et votre <em>mot de passe</em></p>"; include('/include/identification.inc.php'); } else { switch ($_SESSION['categorie']) { case "1": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break; case "2": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break; } echo '<p>Bonjour ', $_SESSION['prenom'], ' ', $_SESSION['nom'], ' |', $lienhorizontal, '</p>'; } ?>
S'il la sesion ne renvoie rien ça renvoie donc à ce formulaire :
<?php echo $message ?> <form method="post" action="../login.php"> <p><br /> <label for="pseudo">Identifiant : </label><input type="text" name="pseudo" size="15px" id="pseudo" /><br /> <label for="motdepasse">Mot de passe : </label><input type="password" name="motdepasse" size="15px" id="motdepasse" /><br /> <input type="submit" value="connexion" id="connexion" /> </p> </form>
Et la vérification se fait sur ce script :
<?php if($_SESSION['pseudo'] == '') { // on regarde si le formulaire est bon pour voir si le champ pseudo est vide if (isset($_POST) && empty($_POST['pseudo']) && !empty($_POST['motdepasse'])) { $message = '<p>Vous avez oublié d\'indiquer votre <i>identifiant</i></p>'; include('/include/identification.inc.php'); } // pour voir si le champ mot de passe est vide if (isset($_POST) && !empty($_POST['pseudo']) && empty($_POST['motdepasse'])) { $message = '<p>Vous avez oublié d\'indiquer votre <i>mot de passe</i></p>'; include('/include/identification.inc.php'); } // pour voir si les champs pseudo et mot de passe sont vides if(isset($_POST) && empty($_POST['pseudo']) && empty($_POST['motdepasse'])) { $message = '<p>Merci de rentrer votre <i>identifiant</i> et votre <i>mot de passe</i></p>'; include('/include/identification.inc.php'); } // Si les deux sont remplis alors : if(isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['motdepasse'])) { // on extrait les données extract($_POST); // on va chercher les données pour le pseudo entrée $sql = "SELECT * FROM identification WHERE pseudo='$pseudo'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on récupère les entrées comme il faut $data = mysql_fetch_assoc($req); // on compare ce qu'on a entré et le vrai mot de passe if($data['motdepasse'] != $motdepasse) { $message = '<p>Les informations rentrées ne sont pas correctes</p>'; include('/include/identification.inc.php'); } else { $_SESSION['logged'] = 1; $_SESSION['pseudo'] = $data['pseudo']; $_SESSION['nom'] = $data['nom']; $_SESSION['prenom'] = $data['prenom']; $_SESSION['categorie'] = $data['categorie']; /* on crée la fonction du lien supplémentaire dans le menu. */ switch ($data['categorie']) { case "1": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break; case "2": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break; } // on affiche le nom et le prénom echo '<p>Bonjour ', $data['prenom'], ' ', $data['nom'], ' | ', $lienhorizontal, '</p>'; } } } else { switch ($_SESSION['categorie']) { case "admin": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break; case "eleve": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break; } echo '<p>Bonjour ', $_SESSION['prenom'], ' ', $_SESSION['nom'], ' |', $lienhorizontal, '</p>'; } ?>
Le souci est le suivant :
Seul le formulaire s'affiche, n'affichant pas le $message. Je ne vois pas du tout ça peut venir !!! Si vous pouviez m'aiguiller.
Merci
A voir également:
- Problème session php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
- Session invalide ou obsolète ✓ - Forum finances
3 réponses
En plus, j'ai l'impression qu'il ne renvoie rien du tout, car le verification.php ne traite aucune info !
Pour info, ça marchait jusqu'à la migration du site !
Pourtant tous les liens de raccourcis vers les include sont bons !
merci
Pour info, ça marchait jusqu'à la migration du site !
Pourtant tous les liens de raccourcis vers les include sont bons !
merci
est ce que tout le code que tu as posté est sur la même page ou sur des pages différentes ???
Sinon tu dois démarrer tes sessions sur chaque page...
Sinon tu dois démarrer tes sessions sur chaque page...
Oui, en fait je te mets une page type pour te montrer :
En fait il semble qu'il ne prenne pas en compte le démarrage de la session et la connexion à la base de donnée. Pourquoi ? je ne sais pas !
<?php include('/include/session.inc.php'); ?> <!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" lang="fr"> <head> isions avocat" /> <link rel="StyleSheet" /styleindex.css" type="text/css" /> <script type="text/javascript"> <!-- window.onload=montre; function montre(id) { var d = document.getElementById(id); for (var i = 1; i<=10; i++) { if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} } if (d) {d.style.display='block';} } //--> </script> </head> <body> <div class="conteneur"> <div class="entetegauche"> </div> <div class="entetedroite"> <?php include('/include/identifiant.inc.php'); // sur la page login.php, ici j'aurai verification.php ?> </div> <div class="bandeau"> </div> <div class="menuhorizontal"> <?php include('/include/menuhorizontal.inc.php'); ?> </div> <div class="menuvertical"> <?php include('/include/menuverticalgeneral.inc.php'); ?> </div> <div class="contenu"> <?php include('/include/affichage5infos.inc.php'); ?> </div> <div class="colonnedroite"> <?php include('/include/colonnedroitegeneral.inc.php'); ?> </div> <div class="pied"> <?php include('/include/pied.inc.php'); ?> </div> </div> </body> </html>
En fait il semble qu'il ne prenne pas en compte le démarrage de la session et la connexion à la base de donnée. Pourquoi ? je ne sais pas !