IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

$_SESSION['nom']) vide


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut $_SESSION['nom']) vide
    bonsoir,
    j'ai un formulaire index .php sur lequel on s'identifie, puis il est envoyé par POST à login.php pour la vérification du mot de passe. Si on est authentifié, menu1.php s'ouvre.
    1/-voici login.php
    (pas de problème ici)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?php 
     
    // initialisation de la session 
    session_start() ; 
    session_register("user_connected");
    include('variables.php'); 
    include('fonctions.php'); 
     
    // CONNEXION A LA BASE DE DONNEE 
    connexion(); 
    no_cache(); 
     
    $pseudo = ""; 
    $passe = ""; 
     
     
    // AJOUT DE TRIM (EVITE ESPACES VIDES) 
    //if($_POST['pseudo'] && $_POST['passe']) 
    //{ 
    if ((strlen(trim($_POST['pseudo']))==0 && strlen(trim($_POST['passe']))==0)  || ((empty($_POST['pseudo'])) && (empty($_POST['passe'])) ))
       { 
         $_SESSION['message']='champs vides'; 
        // REDIRECTION VERS LA PAGE ERREUR 
        header("Location: ".$pagelogin."?Message=".$_SESSION['message']); 
      } 
      else
       { 
        $pseudo = $_POST['pseudo']; 
        $passe = $_POST['passe']; 
      } 
    //} 
     
    // Et là, tu peux tester l'existence de tes variables 
    if($pseudo && $passe) { 
    // ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET 
    // MOT DE PASSE SAISIS A LA PAGE INDEX.HTM 
    // JE TE SUGGERE DE PROTEGER TON SCRIPT CAR IL EST FAILLIBRE AUX INJECTION SQL 
        $requete=requete("select login from "._TABLE_." where login='".mysql_real_escape_string($pseudo)."' and mdp='".mysql_real_escape_string($passe)."'"); 
     
        // SI AUCUN ENREGISTREMENT NE CORRESPOND 
        if(mysql_num_rows($requete)==0){ 
            // REDIRECTION VERS LA PAGE ERREUR 
     
            $_SESSION['message']='Login ou Mot de passe inexistant'; 
            header("Location: ".$pagelogin."?Message=".$_SESSION['message']); 
        } 
        // SI LE LOGIN ET MOT DE PASSE SONT EXACTS      
        else { 
         // on sauvegarde donc son nom dans la session 
     
    	   $HTTP_SESSION_VARS["user_connected"]=true;
    	   $_SESSION['nom'] = $pseudo; 
          // REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE 
        header("Location:".$pagelogged."?user=".$_SESSION['nom']); 
        }       
    } 
    // TON FORMULAIRE HTML CI-DESSOUS 
    ?>

    2/- voici le début de menu1.php (ici qu'il ya probème!!)

    sur ma machine , lorsque je suis authentifié, $_SESSION['nom'] contient mon nom de session, seulemnt, sur les machines clientes, $_SESSION['nom'] est vide POuvez vous m'aider? merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
    session_start() ; 
    $nom1="";
    if (isset ($_SESSION['nom'])) 
    {
    $nom1=$_SESSION['nom'];
    echo "voici mon pseudo" . $nom1;
    }
    else
    {echo "pas pseudo";
    }
    ?>

  2. #2
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    salut c'est quoi ta version de php?
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  3. #3
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    j'utilise easyphp 1.8.0.1
    php 4.3.10
    mysql 4.1.9
    apache 1.3.33

  4. #4
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    salut oki dans ton fichier de config il faut que tu mettes a true register_globals car tu utilies session_register

    Attention
    Si vous voulez que votre script fonctionne indépendamment de la configuration de la directive register_globals, vous devez utiliser la variable $_SESSION. Tous les éléments de $_SESSION sont automatiquement enregistrés. Si votre script utilise session_register(), il ne fonctionnera pas dans les environnements où register_globals est désactivée.
    register_globals : note importante : Depuis PHP 4.2.0, la valeur par défaut de la directive de configuration PHP register_globals vaut off. La communauté PHP vous recommande de ne pas dépendre de cette directive, mais de trouver d'autres moyens pour accéder aux données, tels que les superglobals.
    et ainsi de suite

    va voir là tu vas trouver réponse je crois
    http://us3.php.net/function.session-register

    bonne journée
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  5. #5
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    ce n'est pas session_register(), j'ai enlevé cela , puisque je ne l'utilise pas!

  6. #6
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    j'ai enlevé session_register(), de mon code

  7. #7
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Ok alors dans ta définition de variable
    $_SESSION['nom'] = $pseudo
    Est ce que tu es certain que ca passe là???
    le code a l'air correct mais c'est p-e avant que ca cause probleme
    ta requete et tout la

    Fait des test pour voir où sa entre et où ca n'entre pas
    Quelle est la valeur de pseudo...
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  8. #8
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    ca semble un peu complexe pareil ce que tu valides
    je te laisse comme je le fais dans ma page de login

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    include("../Classes/cDBConnect.php");
    session_start();
     
    if(isset($_POST["txtUserName"])){
     
    	$user = $_POST["txtUserName"];
    	$pwd = $_POST["txtPassword"];
    	$numIdent = $_POST["txtNumIdent"];
     
    	//Connection à la bd
    	$objCon =& new cDBConnect();
    	$objCon->connect();
     
    	$requete = $objCon->dbQuery("SELECT ajusteurID,ajusteurActif,ajusteurPrenom,ajusteurNom,typeAcces FROM tblAjusteur WHERE ajusteurLogin='$user' and numIdent='$numIdent' and ajusteurPWD='$pwd';");
     
    	$result = mysql_fetch_array($requete);
     
    	if($result['ajusteurActif']==1){  
    		//Usager présent et actif
    		$_SESSION["userID"] = $result['ajusteurID'];;
    		$_SESSION["prenom"] = $result['ajusteurPrenom'];
    		$_SESSION["nom"] = $result['ajusteurNom'];
    		$_SESSION["acces"] = $result['typeAcces'];
     
    		//envoie vers la page d'accueil
    		header("location:../Page/home.php");
    	}
    	else{
    		//Mauvaises entrées ou usager inactif
    		header("location:../Page/login.php?erreur=1");
    	}
    }
    else{
    	header("location:../Page/login.php?erreur=2");
    }
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  9. #9
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    en local, j'ai le contenu de pseudo, mais pas sur les machines clientes
    une chose: les messages: exemple ne sont meme pas visibles chez les clients.

  10. #10
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Et bien la c'est bizar...

    Si je comprends bien...quand tu tests en local...ton code fonction
    si tu vas sur un autre poste et te connecte sur ton serveur....ca n'affiche pas?? sur cet autre poste?
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  11. #11
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    c'est exactement cela le problème!
    c'est pourquoi comme il ya la page secure.php qui est incluse dans les formulaires, je reviens toujours à index.php.
    secure.php cest simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    session_start() ; 
    // on vérifie si l'utilisateur est identifié 
    if (!isset( $_SESSION['nom'] )) 
      header('Location: index.php') ; 
      die(); // Tuer le script (peu eviter des erreurs et afficher la page si le header n'est pas bien envoyé !
      // on arrête l'exécution 
      exit() ; 
    }  
    ?>

  12. #12
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    t'as mis ta variable register_globals a true?
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  13. #13
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    je l'ai dit dans un post j'ai enlevé de mon programme toutes les register_globals et les session_register()

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    Je pense que cela doit venir de ton easy php
    Moi aussi j'ai déjà eu ce problème avec easyphp 1.8
    Il ne reconnaissait plus mes sessions
    Je suis donc retourner sur la 1.7 et j'ai plus de problème
    Donc si tu veux tu peux essayer de changer de version

  15. #15
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    j'ai désinstallé easyphp 1.8 et j'ai installé easyphp 1.7 comme me l'a conseillé Jofire
    tout marche comme sur des roulettes, bien que je ne sache pas pourquoi?
    merci encore à tous pour votre aide et sugestion.

    un bravo à tous et surtout à Jofire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel nom pour le contenu d'une case vide?
    Par byrdo dans le forum Débuter
    Réponses: 6
    Dernier message: 23/08/2012, 17h56
  2. [Sécurité] $_SESSION désespérément vide
    Par Dufok dans le forum Langage
    Réponses: 4
    Dernier message: 15/02/2008, 13h58
  3. Réponses: 8
    Dernier message: 11/11/2007, 00h53
  4. $_SESSION se vide !
    Par merilith dans le forum Langage
    Réponses: 3
    Dernier message: 04/04/2007, 14h34
  5. [JTable] Créer une JTable vide avec des noms de colonnes.
    Par Cyborg289 dans le forum Composants
    Réponses: 2
    Dernier message: 27/09/2005, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo