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 :

Récupérer le nom utilisateur


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut Récupérer le nom utilisateur
    Maintenant que la communauté m'a aidé à résoudre mon problème de session, j'ai un autre problème.
    Le site est divisé en 3 parties:
    - 1 partie visible par tout le monde,
    - 1 partie où il faut se connecter pour avoir accès à une newsletter,
    - 1 partie payante

    Après avoir vérifier le nom utilisateur et le mot de passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	   $_SESSION['utilisateur'] = $utilisateur;
    	   $_SESSION['acces'] = $acces;
    Quand la personne veut ouvrir la page payante je demande le code d'accès
    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
    <?php
       $val='';
       if(isset($_POST['codeconf']))      $code=$_POST['codeconf'];
       else	$code = "";
       // on vérifie si l'identifiant et le mot de passe sont renseignés
    C'est que je voudrais faire avant de vérifier le code d'accès
       if (!empty($_POST['codeconf'])) { 
    	$sql = mysql_query("SELECT * FROM admin WHERE acces ='".$code."'",$connexion);
    	if (mysql_num_rows($sql) > 0)
    	{
    	   $val="ok";
    	   $res = mysql_fetch_array($sql);
               $acces = $res['acces'];
    	}
    	else {
    	   $val="rien";
    	} 
       }
       if ($val === "rien"){
          ?><font face="verdana" size="1" color="red"><b>Code d'accès invalide</b></font><?
       }
    ?>
    Question : A ce niveau là je voudrais savoir si l'utilisateur s'est loger où pas et pour cela je voudrais savoir comment récupérer son nom.
    J'espère que ma question est claire!!

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 864
    Points : 3 437
    Points
    3 437
    Par défaut
    Salut,

    Je ne comprend pas le problème, si tu utilises les sessions ? C'est logiquement là que tu places une variable avec le login si la personne est identifiée; tu testes si le login est renseigné avec un isset sur $_SESSION['login'].

    De plus, dans ton code, je mettrais plutot ce test :

    A+

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Je ne comprends plus
    début de ma pagfe index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
    if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page'];
    ?>
    Quand la personne s'est loger j'affiche ma page où je vérifie que la personne s'est loger avant de lui demander son code
    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
    <?php
    session_start(); 
    if(!isset($_SESSION['utilisateur'])) {
          header("Location: index.php?page=log"); 
          exit;
    }
    // connection à la base de données
    require ('connect.php');
    ?>
    ..............
    <form name="interro" method="Post" action="index.php?page=reseaux">
    ................
    acces aux réseaux
    //--> 
    <?php
       $val='';
       if(isset($_POST['codeconf']))      $code=$_POST['codeconf'];
       else	$code = "";
       // on vérifie si l'identifiant et le mot de passe sont renseignés
       if (!empty($_POST['codeconf'])) { 
    	$sql = mysql_query("SELECT * FROM admin WHERE acces ='".$code."'",$connexion);
    	if (mysql_num_rows($sql) > 0)
    	{
    	   $val="ok";
    	   $res = mysql_fetch_array($sql);
               $acces = $res['acces'];
    	}
    	else {
    	   $val="rien";
    	} 
       }
       if ($val === "rien"){
          ?><font face="verdana" size="1" color="red"><b>Code d'accès invalide</b></font><?
       }
    ?>
    </form>
    Ce que je voudrais c'est envoyer la personne à la page log.php si elle s'est pas loger sinon j'affiche ma page où je lui demande son code.

    Le message d'erreur (toujours le même)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\weblocal\sites\reseauxsante\index.php:13) in c:\weblocal\sites\reseauxsante\reseaux_1.php on line 2
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\weblocal\sites\reseauxsante\index.php:13) in c:\weblocal\sites\reseauxsante\reseaux_1.php on line 4
    Merci d'avance

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Sur la page que j'affiche quand on s'est loger , j'ai mis au début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
    echo $_SESSION['utilisateur'];
    et j'ai un message comme quoi la variable n'est définie?????????

  5. #5
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 864
    Points : 3 437
    Points
    3 437
    Par défaut
    Salut,

    Il faut faire un session_start sur chaque page

    A+

  6. #6
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    En fait je devais ouvrir une session sur ma page index (je travaille avec include)
    enfin je pense que c'était l'erreur parce que ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    session_start();
    if (!isset($_SESSION['utilisateur'])) {
    } 
    if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page'];
    ?>
    Il me reste encore un petit problème.
    Lorsque la personne saisit son code personnel, je veux ouvrir une page "reseaux.php" sinon je reste sur la page "reseaux_1.php".
    J'ai déjà testé mon code mais il m'ouvre ma page "reseaux.php" même si le code est faux.
    Mon erreur doit être grosse mais je vois pas et pour tout dire j'ai tellemeent galéré avec mes sessions que bon......voilà le code de ma page "reseaux_1.php"
    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
    <?php
    // connection à la base de données
    require ('connect.php');
    ?>
    <p align="center">
    <!-- 
    acces aux réseaux
    //--> 
    <form name="interro" method="Post" action="index.php?page=reseaux">
    <font color="black" size="2" face="Tahoma" >
    <table border="0" style="margin-left:40px; margin-top:20px;">
    	<tr>
    		<td align="left"><font face="verdana" size="1">
    			Pour accéder à la liste des réseaux vous devez avoir souscrit un <a href="index.php?page=abo">abonnement</a> aux réseaux. 
    			<br><br>
    			Pour accéder à la liste, entrer le code confidentiel qui vous a été communiqué puis valider.<br><br>
    		</td>
    	<tr>
    		<td align="left"><font face="verdana" size="1">Code confidentiel : <input type="text" name="codeconf" value="">
    			<input type="submit" name="valid" value="Valider" style="height:20px; font-size:9px">
    			<br><br>
    		</td>
    	</tr>
    	<tr>
    		<td><font face="verdana" size="1">Code d'accès oublié ?
    			<span class="choix" onclick="hide('mondiv')"><font color="blue">cliquer ici</span></td>
    	</tr>
    </table>
    <?php
       if(isset($_POST['codeconf']))      $code=$_POST['codeconf'];
       else	$code = "";
       if (!empty($_POST['codeconf'])) { 
    	$sql = mysql_query("SELECT * FROM admin WHERE acces ='".$code."'",$connexion);
    	if (mysql_num_rows($sql) > 0)
    	{
    	   $res = mysql_fetch_array($sql);
               $acces = $res['acces'];
    	}
    	else {
    	   ?><font face="verdana" size="1" color="red"><b>Code d'accès invalide</b></font><?
    	}
       }
    ?>
    Je crois qu'apres ça devrait aller mieux.
    Merci d'avance

  7. #7
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 864
    Points : 3 437
    Points
    3 437
    Par défaut
    Salut,

    Il faut plutot le code de vérification du login pass, ainsi que la redirection vers reseaux.php ou reseaux_1.php.

    A priori, ta page reseaux_1.php ne devrait pas être en cause.

    de plus, je tiens à te faire part d'une solution qui pourrait être utile pour ton projet :

    Théoriquement, tu peux inclure en tête de toutes tes pages, une méthode de vérification de l'authentification. Avec un require_once par exemple. Avant l'appel à cette page, tu peux gérer un "niveau d'authentification", comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $niveauAuth = 1;
    require_once('authentification.php');
    Ta variable niveauAuth contiendrait donc un entier, 0 pour les pages publiques, et 1 pour les pages où une authentification est nécessaire ( tu peux aussi imaginer des chiffres plus grands, ou bien une méthode maison pour récupérer ce niveau en fonction de la page en cours ).

    Dans ta page authentification.php, tu vérifies que ta variable de session est bien settée, et que ton niveau est suffisant pour afficher la page; sinon header("Location:...");

    A+

  8. #8
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Sur un site que j'ai fait j'avais déjà utilisé un système de niveau d'accès mais je l'avais intégré dans ma table des membres et je le récupérais lors du logging pour afficher où non certaines pages.

    Qu'en penses tu?

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

Discussions similaires

  1. Problème pour récupérer le nom utilisateur
    Par philippef dans le forum Langage
    Réponses: 12
    Dernier message: 06/08/2007, 17h57
  2. Réponses: 5
    Dernier message: 11/10/2005, 11h40
  3. Récupérer le nom d'utilisateur
    Par Zolex dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/06/2004, 11h40
  4. Réponses: 3
    Dernier message: 07/05/2004, 10h01
  5. Récupérer le nom de l'utilisateur sous linux
    Par Michaël dans le forum POSIX
    Réponses: 7
    Dernier message: 25/12/2003, 21h38

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