Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 09/09/2011, 11h53   #1
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut Mysql Réponse de connexion en trop

Bonjour,

voilà mon souci, le résultat de la connexion me donne les deux messages ci-dessous :
Connexion réussie....

puis quelques fractions de secondes après...
Vous n'avez rien saisi....

puis redirection vers la page d'accueil (index.php)


Pourquoi le message "Vous n'avez rien saisi...." s'affiche alors qu'il arrive bien à se connecter ?
je ne vois pas où se situe mon erreur ?

Merci de votre aide.

Code :
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
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
<?php session_start();
$nompage = "index.php";
// si l'utilisateur est connecté, c'est le bandeau membre sinon c'est le bandeau classique...
if (!isset($_SESSION['pseudo']) || $_SESSION['pseudo']=='')	
	{	// bandeau classique si pas connecté
		$bandeau = 'bandeau.php';
	}
	else	// bandeau membre si connecté
	{	
		$bandeau = 'bandeau_membres.php';	
	}
require ("configuration.php"); //accès à la base de données
$pseudo_connect = $_POST['pseudo']; //On recupère le pseudo et le pass
$pass = $_POST['password'];
 
if (!empty($pseudo_connect) && !empty($pass)) //S'ils ne sont pas vides
	{
		$sql = connect_sql(); //On se connecte à MySQL
		$reponse = mysql_query ("SELECT * FROM pdf_membre WHERE pseudo='$pseudo_connect'"); //On recupère les infos à partir du pseudo
		$donnees = mysql_fetch_array ($reponse);
		$verif = $donnees['pass'];
		$id = $donnees['id'];
		$pseudo_sql = $donnees['pseudo'];
		$confirm = $donnees['confirm'];
 
		if($pass != $verif) //On verifie que le mot de passe est égal à celui de la Base de Données, si le passe est différent
		{
			$reponse = 'Excusez-nous &nbsp; &nbsp;'.'<b>'.$pseudo_connect.'</b>'.' &nbsp; &nbsp; mais v&ocirc;tre identifiant ou v&ocirc;tre code secret est incorrect !';
			$reponse .= '<p>'.'</p>';
			$redirection = 'index.php'; //On va rediriger vers l'accueil
			sleep(20000);
		}
		elseif(!empty($confirm)) //Si le compte n'est pas activé
		{
			$reponse = 'Votre compte n\'est pas encore activ&eacute;';
			$redirection = 'index.php'; //On va rediriger vers l'accueil
			sleep(20000);
		}  
		else //Sinon tout est bon
		{
			$_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
			$redirection = $_SESSION['page_origine']; //On redirige vers l'espace membre
			$reponse = 'Connexion r&eacute;ussie vous allez &ecirc;tre redirig&eacute;'.'<br>'.'<a href="'.$redirection.'">Rejoindre directement la page'.'</a>';
			sleep(20000);
		} // fin de ELSE si tout est bon
 
		mysql_close($sql); //On ferme la connexion
 
	}  // Fin si le pseudo et mot de passe ne sont pas vides
 
else
	{
		$reponse = 'Vous n\'avez rien saisi !';
		$redirection = 'index.php'; //On va rediriger vers l'accueil
		sleep(20000);
	}
 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
<title>MON SITE</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<meta http-equiv="refresh" content="1;URL=<? echo $redirection; //La redirection ?>">
</head>
<body>
<?php include($bandeau); ?> <!-- insère le bandeau principal en haut en fonction de la connexion -->
<div id="mainContent">
<? echo $reponse; ?><!-- La reponse au script -->
</div>
</body>
</html>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 09h51   #2
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
j'ai essayé de modifier le nom du mot de passe et d'afficher 'echo'...
mais toujours le même résultat : il m'affiche bien la première page "Connexion réussie...." (pseudo & mdp bien affiché) puis quelques fractions de secondes après... "Vous n'avez rien saisi...." (pseudo & mdp VIDES !) et redirection vers la mauvaise page (agenda.php)

je ne vois plus ? vous avez une idée ?
Merci de votre aide.

Code modifié :
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
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
<?php session_start();
$nompage = "index.php";
// si l'utilisateur est connecté, c'est le bandeau membre sinon c'est le bandeau classique...
if (!isset($_SESSION['pseudo']) || $_SESSION['pseudo']=='')	
	{	// bandeau classique si pas connecté
		$bandeau = 'bandeau.php';
	}
	else	// bandeau membre si connecté
	{	
		$bandeau = 'bandeau_membres.php';	
	}
require ("configuration.php"); //accès à la base de données
$sql = connect_sql(); //On se connecte à MySQL
$pseudo_connect = mysql_real_escape_string($_POST['pseudo']); //On recupère le pseudo et le pass
$motdepasse = mysql_real_escape_string($_POST['password']);
 
//S'ils ne sont pas vides
if (!empty($pseudo_connect) && !empty($motdepasse))
	{
		$rech_pseudo = mysql_query ("SELECT * FROM pdf_membre WHERE pseudo='$pseudo_connect'"); //On recupère les infos à partir du pseudo
		$donnees = mysql_fetch_array ($rech_pseudo);
		$verif = $donnees['pass'];
		$pseudo_sql = $donnees['pseudo'];
		$confirm = $donnees['confirm'];
 
		if($motdepasse != $verif) //On verifie que le mot de passe est égal à celui de la Base de Données, si le passe est différent
		{
			$reponse = 'Excusez-nous &nbsp; &nbsp;'.'<b>'.$pseudo_connect.'</b>'.' &nbsp; &nbsp; mais v&ocirc;tre identifiant ou v&ocirc;tre code secret est incorrect !';
			$reponse .= '<p>'.'</p>';
			$redirection = 'index.php'; //On va rediriger vers l'accueil
			sleep(200000);
		}
		elseif(!empty($confirm)) //Si le compte n'est pas activé
		{
			$reponse = 'Votre compte n\'est pas encore activ&eacute;';
			$redirection = 'index.php'; //On va rediriger vers l'accueil
			sleep(200000);
		}  
		else //Sinon tout est bon
		{
			$_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
			$redirection = $_SESSION['page_origine']; //On redirige vers la page d'origine
			$reponse = 'Connexion r&eacute;ussie vous allez &ecirc;tre redirig&eacute;'.'<br>'.'<a href="'.$redirection.'">Rejoindre directement la page'.'</a>';
			$reponse.= ' pseudo saisi : '.$pseudo_connect.' ';
			$reponse.= ' mot de passe saisi : '.$motdepasse.' ';
			sleep(200000);
		} // fin de ELSE si tout est bon
 
	}  // Fin si le pseudo et mot de passe ne sont pas vides
 
// si le pseudo et mot de passe sont vides
else 
	{
		$reponse = 'Vous n\'avez rien saisi !';
		$reponse.= ' pseudo saisi : '.$pseudo_connect.' ';
		$reponse.= ' mot de passe saisi : '.$motdepasse.' ';
		$redirection = 'index.php'; //On va rediriger vers l'accueil
		sleep(200000);
	}
 
mysql_close($sql); //On ferme la connexion
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
<title>MON SITE</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<meta http-equiv="refresh" content="1;URL=<? echo $redirection; //La redirection ?>">
</head>
<body>
<?php include($bandeau); ?> <!-- insère le bandeau principal en haut en fonction de la connexion -->
<div id="mainContent">
<? echo $reponse; ?><!-- La reponse au script -->
</div>
</body>
</html>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 15h02   #3
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Bon, je ne vois pas donc, j'ai mis ceci
Code :
1
2
3
4
5
6
7
else
	{
		$redirection = 'index.php'; //On va rediriger vers l'accueil
		$reponse = '';
		// $reponse = 'Vous n\'avez rien saisi !'; 	// ne fonctionne pas pour le moment !
		// $redirection = 'index.php'; 				// ne fonctionne pas pour le moment !
	}  	// Fin si le pseudo et mot de passe ne sont pas vides
ce qui fait une page vierge avant d'arriver sur l'accueil... c'est pas propre mais je n'ai rien trouvé de mieux....
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 22h00   #4
Membre du Club
 
Inscription : avril 2011
Messages : 91
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 91
Points : 40
Points : 40
Bonsoir.

Si je ne me trompe pas ça doit venir ton meta refresh.

Tu as
Citation:
$pseudo_connect = mysql_real_escape_string($_POST['pseudo']);
$motdepasse = mysql_real_escape_string($_POST['password']);
if (!empty($pseudo_connect) && !empty($motdepasse))
Après le refresh tu n'as plus de _POST donc il passe au else qui affiche "Vous n'avez rien saisi".
p4ndore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 22h38   #5
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
@ p4ndore :
j'ai essayé de le mettre plus bas mais j'ai toujours le message 'vous n'avez rien saisi...
Code :
1
2
3
4
5
6
<div id="mainContent">
<? echo $reponse; ?><!-- La reponse au script -->
</div>
<?php mysql_close($sql); //On se deconnecte ?>
<meta http-equiv="refresh" content="1;URL=<? echo $redirection; //La redirection ?>">
<?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 22h42   #6
Membre du Club
 
Inscription : avril 2011
Messages : 91
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 91
Points : 40
Points : 40
Ce n'est pas son emplacement qui va résoudre le problème.

Le problème vient du rechargement de la page.

Avant de vouloir te connecter à la base vérifie que tu as bien pseudo et password en _POST
p4ndore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 08h08   #7
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
j'ai modifié, et cela m'affiche bien le pseudo et le mot de passe..
puis rechargement de la page : 'vous n'avez rien saisi....' !

je ne vois pas pourquoi il passe au 'else' alors qu'il a bien trouvé le pseudo et mot de passe ???
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
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
 
<?php session_start();
$nompage = "index.php";
require ("configuration.php"); //accès à la base de données
$sql = connect_sql(); //On se connecte à MySQL
$sql2 = detection_mobile();
$sql3 = bandeau_detection();
$pseudo_connect = mysql_real_escape_string($_POST['pseudo']); //On recupère le pseudo et le pass
$motdepasse = mysql_real_escape_string($_POST['password']);
// si le pseudo et mot de passe ne sont pas vides
if (!empty($pseudo_connect) && !empty($motdepasse))
	{
		echo '$pseudo_connect : '.$pseudo_connect;
		echo '<br />';
		echo '$motdepasse : '.$motdepasse;
		echo '<br />';
 
		sleep(500000);
		$rech_pseudo = mysql_query ("SELECT * FROM pdf_membre WHERE pseudo='$pseudo_connect'"); //On recupère les infos à partir du pseudo
		$donnees = mysql_fetch_array ($rech_pseudo);
		$verif = $donnees['pass'];
		$pseudo_sql = $donnees['pseudo'];
		$confirm = $donnees['confirm'];
		if($motdepasse != $verif) //On verifie que le mot de passe est égal à celui de la Base de Données, si le passe est différent
		{
			$reponse = 'Excusez-nous &nbsp; &nbsp;'.'<b>'.$pseudo_connect.'</b>'.' &nbsp; &nbsp; mais v&ocirc;tre identifiant ou v&ocirc;tre code secret est incorrect !';
			$reponse .= '<p>'.'</p>';
			$redirection = 'index.php'; //On va rediriger vers l'accueil
		}
		elseif(!empty($confirm)) //Si le compte n'est pas activé
		{
			$reponse = 'Votre compte n\'est pas encore activ&eacute;';
			$redirection = 'index.php'; //On va rediriger vers l'accueil
		}  
		else //Sinon tout est bon
		{
			$_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
			$redirection = $_SESSION['page_origine']; //On redirige vers la page d'origine
			$reponse = 'Connexion r&eacute;ussie vous allez &ecirc;tre redirig&eacute;'.'<br>'.'<a href="'.$redirection.'">Rejoindre directement la page'.'</a>';
		} // fin de ELSE si tout est bon
 
	} // FIN de : si le pseudo et mot de passe ne sont vides
 
else
	{
		$redirection = 'index.php'; //On va rediriger vers l'accueil
		// $reponse = '';
		$reponse = 'Vous n\'avez rien saisi !'; 	// ne fonctionne pas pour le moment !
	}  	// Fin si le pseudo et mot de passe ne sont pas vides
mysql_close($sql);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
<meta http-equiv="refresh" content="1;URL=<? echo $redirection; //La redirection ?>">
<title><?php echo $nom_site ?></title>
<link rel="stylesheet" type="text/css" href="<?php echo $nom_style ?>" />
</head>
<body>
<?php include($bandeau); ?> <!-- insère le bandeau principal en haut en fonction de la connexion -->
<div id="mainContent">
<? echo $reponse; ?><!-- La reponse au script -->
</div>
<?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
</body>
</html>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 08h32   #8
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
C'est somme toute assez logique si tu relis ton code

1) L'utilisateur se loggue les variables du post sont bien renseignée tout est ok.
2) Ton html force un refresh de pages, les variables du post sont maintenant vide, donc erreur.

Il faut que tu utilises les variables de sessions pour stocker l'état du fait que ton utilisateur est logué pour ne plus vérifier des variables posts qui ne sont plus présentes dans les pages suivantes.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 11h13   #9
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
@ Tolriq :

j'utilise pourtant une variable de session et elle fonctionne bien après sur les autres pages, donc je ne vois toujours pas ...

Code :
1
2
3
4
5
6
7
 
else //Sinon tout est bon
		{
			$_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
			$redirection = $_SESSION['page_origine']; //On redirige vers la page d'origine
			$reponse = 'Connexion r&eacute;ussie vous allez &ecirc;tre redirig&eacute;'.'<br>'.'<a href="'.$redirection.'">Rejoindre directement la page'.'</a>';
		} // fin de ELSE si tout est bon
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 15h31   #10
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Oui c'est bien tu remplis une variable de session mais tu ne l'utilises pas ...


Code :
1
2
3
4
5
 
$pseudo_connect = mysql_real_escape_string($_POST['pseudo']); //On recupère le pseudo et le pass
$motdepasse = mysql_real_escape_string($_POST['password']);
// si le pseudo et mot de passe ne sont pas vides
if (!empty($pseudo_connect) && !empty($motdepasse))
Tu ne vérifie que les variables en post pas du tout ta variable de session.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 15h52   #11
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
désolé Tolriq de me montrer un peu bête... mais je ne vois pas où mettre cette condition, car la variable de session est bien utilisée pour les pages d'après (je suis bien connecté ensuite....)
merci d'avance de votre compréhension...
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h17.


 
 
 
 
Partenaires

Hébergement Web