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

PHP & Base de données Discussion :

Variable gloabale session


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Novembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication

    Informations forums :
    Inscription : Novembre 2011
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Variable gloabale session
    Bonjour à tous,

    J'ai un problème lorsque je rappelle ma variable session en page d’accueil

    Lors de l'authentification mon inscription marche bien mais j'ai un problème pour afficher à la place de l'authentification le nom de l'utilisateur connecté.

    Voici le code source

    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
     
    // Connexion à la BDD
    include 'connexion.php';
     
    $sql =
    <<<SQL
    SELECT
        login_personne,
    	password_personne
    FROM
        personne
    WHERE login_personne="$_POST['login']"
    SQL;
     
    $qry = mysql_query($sql);
    if ($qry === false) 
    {
         die(mysql_error());
    }
     
    while ($row = mysql_fetch_assoc($qry)) {
    	$login_bdd = $row['login_personne'];
    	$password_bdd = $row['password_personne'];
    }
     
     
    // Test de l'envoi du formulaire
    if(!empty($_POST))
    	{
    		// Les identifiants sont transmis
    		if(!empty($_POST['password']) && !empty($pass_form))
    		{
    			if($_POST['login'] !== $login_bdd)
    			{
    				$errorMessage = 'Mauvais Login !';
    				echo $errorMessage;
    			}
    			elseif($_POST['password'] !== $password_bdd)
    			{
    				$errorMessage = 'Mauvais password !';
    				echo $errorMessage;
    			}
    			else
    			{
    			// On ouvre une session
    			session_start();
    			// On enregistre le login en session
    			$_SESSION['login'] = $login_bdd;
    			//Redirection vers index.php
    			header('Location: index.php');
    			}
    		}
    		else { $errorMessage = 'Veuillez inscrire vos identifiants svp !'; } 
    }
    Le code en header.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
     
    if (empty($_SESSION['login'])) 
    					{
    					echo '<div id="authentification">
    						<form action="authentification.php" method="post">
    						<font color="#1d516e"><b>Login : </b><input size="10" value="" name="login">
    						&nbsp;&nbsp;<b>Mot de passe : </b><input type="password" size="10" value="" name="password">
    						<input type="submit" value"Entrer">&nbsp;&nbsp;
    						&nbsp;&nbsp;&nbsp;<a href="./inscription.php?param=1">Inscription</a>
    						</form>
     
    					</div>';
    					}
    					else
    					{
    					echo 
    					'<div id="authentification">
    						<p>Bonjour ' . $_SESSION['login'] . '<p>
    					</div>';
    					}

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Tu fais bien tes session_start partout où c'est nécéssaire ?

    Au passage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT
        login_personne,
    	password_personne
    FROM
        personne
    WHERE login_personne="$_POST['login']"
    ça c'est une bonne grosse faille d'injection, corrige ça tout de suite

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Novembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication

    Informations forums :
    Inscription : Novembre 2011
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    et comment en mettant des antislashs par exemple désolé mais je ne connais pas la méthode !

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    filter_input et mysql_real_escape_string seraient déjà un bon début.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Salut Blueyes
    Tu dis que l'authentification fonctionne, cependant le code tel que tu l'as conçu ne peut pas fonctionner,
    il y a des erreurs de syntaxe, des variables non déclarées,
    un bouton submit sans nom avec un value sans signe =, etc...
    Je t'ai réécris le code pour qu'il fonctionne, en y incluant une fonction de connexion à la bd (tu n'a plus qu'à changer les identifiants).
    Si tu veux afficher le login de la personne sur la page d'authentification il te suffit d'activer le session_start() qui est en commentaire,
    mais c'est idiot de faire ça puisqu'un utilisateur connecté ne doit pas repasser vers la page de login mais bien vers la page de déconnexion.

    Code de la page authentification:
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    <?php 
     
    //session_start();
     
    if (empty($_SESSION['login'])) 
    {
    	echo '
    	<div id="authentification">
    	<form action="authentification.php" method="post">
    	<font color="#1d516e"><b>Login : </b><input size="10" value="" name="login">
    	&nbsp;&nbsp;<b>Mot de passe : </b><input type="password" size="10" value="" name="password">
    	<input type="submit" name="entrer" value="Entrer">&nbsp;&nbsp;
    	&nbsp;&nbsp;&nbsp;<a href="inscription.php">Inscription</a>
    	</form>
    	</div>';
    }
    else
    {
    echo 
    	'<div id="authentification">
    		<p>Bonjour ' . $_SESSION['login'] . '<p>
    	</div>';
    }
     
    // Connexion à la BDD connexion.php
    function ConnectBD()
    {
    	$IP='localhost';
    	$LOGIN='root';
    	$PASS='';
    	$BD='test';
    	if( $Connection = mysql_connect($IP,$LOGIN,$PASS) )
    	{
    		if( mysql_select_db($BD,$Connection) )
    		{
    			return( $Connection );
    		}
    		else
    		{
    			echo '<BR><BR>¤ ERREUR lors de la CONNECTION à la BD '.$BD.': <B>'.mysql_error().'</B><BR/>';
    			return( false );
    		}
    	}
    	else
    	{
    		echo '<BR><BR>¤ ERREUR lors de la CONNECTION au serveur MYSQL: <B>'.mysql_error().'</B><BR>';
    		return( false );
    	}
    }
     
     
    if(isset($_POST['entrer']))
    {
    	ConnectBD(); 
    	$sql ='SELECT login_personne, password_personne FROM personne WHERE login_personne="'.mysql_real_escape_string($_POST['login']).'"'; 
    	$qry = mysql_query($sql);
    	$row = mysql_fetch_array($qry);	
    	$login_bdd = $row['login_personne'];
    	$password_bdd = $row['password_personne'];
    	// Test de l'envoi du formulaire
    	// Les identifiants sont transmis
    	if(empty($_POST['login']) || empty($_POST['password']))
    	{
    		echo 'Veuillez remplir tous les champs!';
    	}
    	else if(!empty($_POST['login']) && !empty($_POST['password']))
    	{
    		if(($_POST['login']!==$login_bdd) || $_POST['password'] !== $password_bdd)
    		{
    			echo 'Le login et le password ne correspondent pas!';
    		}
     
    		else
    		{
    		// On ouvre une session
    		session_start();
    		// On enregistre le login en session
    		$_SESSION['login'] = $login_bdd;
    		//Redirection vers index.php
    		header('Location: index.php');
    		}
    	}
    }
    ?>
    Code de la page index:
    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
    //Sur ta page index.php
    //tu dois avoir en début de page:
    	session_start();
    ?>
     
    <?php
    //Et à l'endroit où tu veux affficher le pseudo:
    if(isset($_SESSION['login']))
    {	
    	echo '<div id="authentification">
    		  <p>Bonjour ' . $_SESSION['login'] . '<p>
    		  </div>';
    }
    else
    {
    	echo '<div id="authentification">
    		  <p>Veuillez vous <a href="authentification.php">identifier</a> ou vous <a href="inscription.php">inscrire</a><p>
    		  </div>';
    }
    ?>

Discussions similaires

  1. [C#] Tester existence d'une variable de session
    Par IDNoires dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/12/2004, 12h30
  2. Création d'une variable de session avec un ID
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 18/10/2004, 10h28
  3. Effacer les variables de session
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2003, 13h42
  4. Variable de session
    Par Sadneth dans le forum ASP
    Réponses: 6
    Dernier message: 14/11/2003, 11h12
  5. variable de session
    Par divableue dans le forum ASP
    Réponses: 2
    Dernier message: 23/10/2003, 16h04

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