Probleme session php

nair17 Messages postés 28 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 29 juin 2009 - 25 juin 2009 à 10:40
nair17 Messages postés 28 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 29 juin 2009 - 29 juin 2009 à 13:37
Bonjour
à tous, voila comment faire pour dire si login == administrateur alors
ouvre page administrateur et si login == autre login qui existe dans
base de donnée alors ouvre page client
Voila ce que j'ai fait :
<?php
include('connexion.php');
 $data_base_2 = mysql_query("select login,mdp,id from utilisateurs " );
 $result_db=mysql_fetch_array($data_base_2);
 $result1=$result_db['mdp'];
 $result=$result_db['login'];

    define('LOGIN',$result);
    define('PASSWORD', $result1);
  

    // Definition des constantes et variables
  
    $errorMessage = '';

    // Test de l'envoi du formulaire
    if($_POST) {
   

        // Les identifiants sont transmis ?
        if(!empty($_POST['login']) && !empty($_POST['password'])) {
      
            // Sont-ils les mêmes que les constantes ?
            if($_POST['login'] !== LOGIN) {
          
                $errorMessage = 'Mauvais login !';
            }
              elseif($_POST['password'] !== PASSWORD) {
            
                $errorMessage = 'Mauvais password !';
            }
              else
            {

                // On ouvre la session
                session_start();
              
                // On enregistre le login en session
                $_SESSION['login'] = LOGIN;
               
                        if ($_SESSION['login']==administrateur){
                      
              
                // On redirige vers le fichier menue.php
              header('Location:modele_admin.php');
                exit();
              }

             

   
            }
        }
          else
        {
            $errorMessage = 'Veuillez inscrire vos identifiants svp !';// si rien n'est écrit dans l'un des champs
        }
    }
   
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Foire Aux Questions -FAQ</title>
<style type="text/css" media="screen">
    @import url("faq_styles.css");
</style>
</head>

        <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">

  
                    <fieldset>

                <legend>Identifiez-vous</legend>
                <?php

               
                    // Rencontre-t-on une erreur ?
                    if(!empty($errorMessage)) {
                  
                        echo htmlspecialchars($errorMessage);
                        // affiche le message d'erreur concernner
                    }
                ?>
               
                    <label for="login">Login :</label>
                   
               

               
                    <label for="password">Password :</label>
                   
                   
               

   
           
            </fieldset>
      
   

 </form>       

</html>

4 réponses

cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
25 juin 2009 à 18:39
Bonsoir,

Je n'ai pas tout lu mais je pense que tu dois modifier cette ligne :

header('Location:modele_admin.php');

en y incluant l'adresse absolue de l'URL ciblé.

header('Location: http://www.exemple.com/pagecible.php');

Sinon, as-tu des erreurs avec ton code ? Si oui, lesquelles ?

Cordialement
0
nair17 Messages postés 28 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 29 juin 2009
26 juin 2009 à 07:26
merci de m'aider mais cela n'est pas mon probleme je n'est pas d'erreur sur mon code je veux juste que si on écris dans le login autre chose que administrateur et qui existe dans la base de donnée alors on ouvre la page fait pour le client alors que si c'est l'admisnistrateur on ouvre la page de l'administrateur
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
27 juin 2009 à 23:45
if ($_SESSION['login']==administrateur)

doit d etoute manière être écrit:

if ($_SESSION['login']=='administrateur')

puiisque la comparaison porte sur une chaine et pas sur une constante. Ce qui peut explique rl'échec du test
0
nair17 Messages postés 28 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 29 juin 2009
29 juin 2009 à 13:37
oui lerci nautilus99 mais cela ne resout toujours pas mon probleme mais merci quand meme
0
Rejoignez-nous