Problèmes de sessions

Floy
Invité n'ayant pas de compte PHPfrance

15 févr. 2006, 16:50

Bonjour à tous,

Voila J'ai créer un espace perso sur mon site web.
Pour accéder à cette espace perso l'internaute doit rentrer un login et un mot de passe sur une page que j'ai appelé (auth.php). Ce login et ce mot sont ensuite vérifier dans un script situé sur une autre page appelé (verif.php). J'enregistre sur cette meme page (verif.php) dans deux variables de sessions le login et le mot de passe.
Sur cette meme page (verif.php), l'internaute une fois enregistré et son authentification reussi il peut accéder à deux autres pages (lien hypertext), que son "mon profil" (profil de l'internaute) et "ma base" (base de l'internaute). Mon probleme est le suivant, une fois que l'internaute choisi d'aller sur la page 'mon profil', et qu'il décide de revenir ensuite sur la page verif.php pour accéder à la page "la base". L'internaute n'est plu reconnu.
Une fois que j'ai selectionné la page "mon profit' et que je veut revenir ensuite sur 'verif.php' pour acceder a la page "ma base"
il m'affiche : Undefined variable: message
Pourquoi ?
Ais-je oublier quelque chose ?
Ca doit etre une question toute bête mais je débute en php et avec les sessions
<?php
// initialisation de la session
session_start() ;

if ( (isset ($_SESSION['nom'])) || (isset ($_SESSION['motdepasse'])) ) {
}

else {

// on les récupère
$nom = $_POST['pseudo'] ;
$motdepasse = $_POST['motdepasse'] ;

// on teste si le mot de passe est valide :
if ( verification( $nom, $motdepasse ) ) {

// on sauvegarde donc son nom dans la session
$_SESSION['nom'] = $nom ;
$_SESSION['motdepasse']= $motdepasse;
$message = 'Vous êtes correctement identifié !
<tr>
<td width="18" class="milieugauche">&nbsp;</td>
<td width="746" class="milieu" id="textmilieuplan"><br>
<p class="milieu-texte"><strong><em>Menu d\'administration du site</em> :</strong></p>

<a href="choix_secteur.php"> | Créer une page de présentation d\' une communauté</a><br><br>

<a href="choix_secteur2.html"> | Modifier le tableau des horaires des messes</a>&nbsp;&nbsp;&nbsp;<a href="form_sup_messe.php"> | Supprimer une messe</a><br><br>
<a href="choix_sec_ag.html"> | Modifier l\'agenda<br><br><br></a>
<a href="menu_base.html">| Ajout/Suppression d\'une communaut&eacute; ou d\'une messe <br><br><br></a>
<a href="sommaire.php3">| Retour</a>                         
</tr>
' ;
}
else {
// sinon on avertit l'utilisateur :
$message = 'Mot de passe invalide !<br><br>' ;
$message .='<a href="sommaire.php3">| Retour</a>' ;
}
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>#NOM_SITE_SPIP - Identification</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="designplan.css" rel="stylesheet" type="text/css">
<link href="typographie.css" rel="stylesheet" type="text/css">
</head>

<body>
<p>

          (-- j'ai enlever les lignes html --)

<form method="post" action="verif.php">
       
<?php echo $message ?>
      
      <?php

       function verification($nom,$motdepasse){
        // Connexion SQL
        $dbhote = 'localhost';
        $dbuser = 'root';
        $dbpass = '';
        $dbbase = 'mabase';
        $link = mysql_connect($dbhote,$dbuser,$dbpass);
        mysql_select_db($dbbase,$link);
      
        // Création de la requête SQL
        $nom_sql = mysql_real_escape_string($nom) ;
        $pass_sql = mysql_real_escape_string($motdepasse) ;
        $sql ="SELECT * FROM tb_users "
            . " WHERE user_name='$nom_sql' AND password='$pass_sql'" ;
       
        // Exécution de la requête SQL
        $result = mysql_query($sql,$link);
        if(mysql_num_rows($result)>0){
         return TRUE;
        }else{
        return FALSE;
        }
       }
      ?>

       
    (-- j'ai enlever les lignes html --)
       

</form>
</p>
</body>
</html>
Merci

ViPHP
fab
ViPHP | 2657 Messages

15 févr. 2006, 17:18

remplace
<?php echo $message; ?>
par
<?php if(isset($message)) { echo $message; } ?>
L'erreur vient du fait que tu essayes d'afficher une variable qui n'existe pas forcément : dans le cas ou tu ne passes pas par le else en haut tu n'as pas de variable $message
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Floy
Invité n'ayant pas de compte PHPfrance

15 févr. 2006, 17:30

OK Mais maintenant il ne m'affiche plus rien ! Comme si il n'y avait pas de message d'erreur ! Seulement si il n'y a pas d'erreur il devrait m'affichier donc les liens, je devrai etre identifier ???

Invité
Invité n'ayant pas de compte PHPfrance

15 févr. 2006, 17:30

OK Mais maintenant il ne m'affiche plus rien ! Comme si il n'y avait pas de message d'erreur ! Seulement si il n'y a pas d'erreur il devrait m'afficher les liens, je devrai etre identifier ???

ViPHP
fab
ViPHP | 2657 Messages

15 févr. 2006, 17:32

d'apres le code que tu m'as posté je ne peux pas te dire :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }