Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/07/2011, 01h43   #1
Invité de passage
 
Inscription : décembre 2008
Messages : 67
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 67
Points : 4
Points : 4
Par défaut Problème script connexion session membre

Bonjour,

Voilà sur mon site il y a un partie membre , avec un formulaire pour s'inscrire et se connecter. J'ai un problème avec la partie connexion . Quand j'essaye , ca me marque que je suis connecté mais aucune variable de session n'ai créer . Voila le code :

Formulaire :
Code :
1
2
3
4
5
6
7
8
9
10
<form method="POST" action="connexion.php">
 
	<label for="username" class="username">Username :</label> 
	<input type="text" class="username" id="username" name="username" />
 
	<label for="password" class="password">Password :</label>
	<input type="password" class="password" id="password" name="password" />
	<br>
	<input type="submit" value="Login" /><br />
</form>
Script connexion :
Code :
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();
?>
//Du code 
<?php
mysql_connect('******','*****','*******') or die("erreur de connexion au serveur");
mysql_select_db('******') or die("erreur de connexion a la base de donnees");
        //On verifie si le formulaire a ete envoye
        if(isset($_POST['username']) AND isset($_POST['password']))
        {
		        $username = $_POST['username'];
                $password = $_POST['password'];
 
                //On recupere le mot de passe de lutilisateur
                $req = mysql_query('SELECT password FROM membre WHERE username="'.$username.'"');
                $dn = mysql_fetch_array($req);
                //On le compare a celui quil a entre et on verifie si le membre existe
                if($_POST['password']==$dn['password'])
                {
						echo 'Ok';
						$_SESSION['username'] = $dn['username'];
						echo '<meta http-equiv="refresh" content="2; URL=news.php">';
                }
                else
                {
                        //Sinon, on indique que la combinaison nest pas bonne
                        $message = 'Erreur';
						echo '<meta http-equiv="refresh" content="; URL=index.php">';
                }
        }
        else
                {       
				echo 'Vous devez entrer tous les champs ';
				}
?>
La page qui vérifie si je suis connecter :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
session_start();
// On teste si la variable de session existe et contient une valeur
if(isset($_SESSION['username']))
{
 
} 
else
{
  // Si inexistante ou nulle, on redirige vers le formulaire de login
  echo'<meta http-equiv="refresh" content="0; URL=index.php">';
}
?>
Donc quand j'arrive sur la 3em page , celle ou il y a le code juste au dessus , ca me redirige sur la page index.php , alors que ça ne devrait pas :s pouvez-vous m'aider ? Merci Bonne journée
max1395 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 01h48   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
sur la 3eme page après ton session_start fait :

Code :
exit(print_r($_SESSION, true));
ps :
- tu dois proteger tes valeurs mysql avec mysql_real_escape_string, ton code n'est pas sécurisé sinon
- pour debuger mysql c'est avec le trace_mode donc pas de or die a faire ( de plus c'est pas die mais exit)
Code :
ini_set('mysql.trace_mode', true);
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 02h03   #3
Invité de passage
 
Inscription : décembre 2008
Messages : 67
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 67
Points : 4
Points : 4
Ca me marque :

Array ( [username] => )

La session n'ai pas créer , mais pourquoi ?
max1395 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 02h07   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 116
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 116
Points : 8 465
Points : 8 465
si c'est bon, mais enfaite dans ta requete tu ne va cherche que le password, donc $dn['username'], n'existe pas, rajoute username dans ton SELECT

Quand on développe il faut absolument travailler avec le niveau d'erreur maximal

dans ton php.ini

Code :
1
2
display_errors = On
error_reporting = E_ALL | E_STRICT
sinon au début de ton code faire

Code :
1
2
ini_set('display_errors', true)
error_reporting(-1);
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/07/2011, 02h12   #5
Invité de passage
 
Inscription : décembre 2008
Messages : 67
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 67
Points : 4
Points : 4
Ok merci , j'avais effectivement oublier le username Merci énormément !
max1395 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h06.


 
 
 
 
Partenaires

Hébergement Web