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 23/05/2011, 22h29   #1
 
Femme
Étudiant
Inscription : mai 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : mai 2011
Messages : 9
Points : -3
Points : -3
Par défaut Authentification formulaire php

Bonjour je dois faire un formulaire pour la connexion
j'ai déja stocké dans ma base de donnée 2 utilisateurs (juste pour tester)
le problème c'est que lors de la connexion j'ai une page blanche et rien n'est affichée

Voici mes codes:
authentification.php (contient le formulaire)
-------------------------------------------------------------------------
Code :
1
2
3
4
5
6
<b><i> Veuillez saisir votre Nom,Prenom et votre mot de passe SVP! </b></i>
		<form align="right" action="traitement.php" method="post"> <br><br><label>Nom :    </label><input name="identifier" value="">
							 <br><br><label>Prenom :    </label><input name="identifier" value="">
							 <br><br><label>Mot de passe    :    </label><input type="password" name="identifier" value=""/>
							 <br><br><input type="submit" name="envoie" value="Se connecter"/>
		  </form>
-------------------------------------------------------------------------

pour l'autre qui fait le traitement voici le code:
traitement.php

-------------------------------------------------------------------------
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
<?php
 
    $BD_serveur     = "localhost";
    $BD_utilisateur = "root";
    $BD_motDePasse  = "";
    $BD_base        = "base";
	$message='';
 $db=mysql_connect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
   mysql_select_db($BD_base,$db)
        or die("Impossible de se connecter à la base de données.");
 
 
// Si le tableau $_POST existe alors le formulaire a été envoyé
     // Le nom est-il rempli ?
    if(empty($_POST['Nom']))
    {
      $message = 'Veuillez indiquer votre nom svp !';
    }
	elseif(empty($_POST['Prenom']))
    {
      $message = 'Veuillez indiquer votre prenom svp !';
    }
      // Le mot de passe est-il rempli ?
      elseif(empty($_POST['mdp']))
    {
      $message = 'Veuillez indiquer votre mot de passe svp !';
    }
 
$sql='select * 
	  from users';
      $req=mysql_query($sql) or die('Erreur SQl !<br>'.$sql.'<br>'.mysql_error());
 
while($data=mysql_fetch_assoc($req))
{
if($_POST['Nom'] == $data["Nom"] &&$_POST['Prenom'] == $data["Prenom"] &&$_POST['mdp'] == $data["mdp"])
 {$message = 'Bienvenue '. $data["Nom"] .' !';}
/*else{
echo "Veuillez connecter SVP";
include("authentification.php");}
}*/
mysql_close();
   } 
?>

Cordialement
xxx_xxx_xxx
xxx_xxx_xxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 23h07   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
tu n'as pas besoin de lire tous tes utilisateurs :
Code :
1
2
3
4
5
6
7
8
9
10
$sql="SELECT COUNT(*) 
	  FROM users WHERE mdp = '" . mysql_real_escape_string($_POST['mdp']) . "' AND ' . Nom = '" . mysql_real_escape_string($_POST['Nom']) . "' AND ' . Prenom = '" . mysql_real_escape_string($_POST['Prenom']) . "'";
      $req=mysql_query($sql);
$result = mysql_fetch_row($req);
if ($result[0] == 1) {
  // c'est bon
}
else {
   // pas bon
}
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 00h13   #3
 
Femme
Étudiant
Inscription : mai 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : mai 2011
Messages : 9
Points : -3
Points : -3
D'abord je vous remercie pour votre réponse
mais
J'ai pas compris pourquoi tu as ajouté count(*) on n'a pas besoin de compter le nombre d'utilisateur
j'ai fais mysql_fetch_array pour parcourir la base et recherche les données saisie j'ai modifie quelques parties du code il me dirige vers la page que j'ai mentionné sans faire les test si les champ sont tous rempli

Voici le 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
<?php
session_start();
    $BD_serveur     = "localhost";
    $BD_utilisateur = "root";
    $BD_motDePasse  = "";
    $BD_base        = "base";
	//$message='';
	$Nom=$_POST['Nom'];
	$Prenom=$_POST['Prenom'];
	$mdp=$_POST['mdp'];
 
 $db=mysql_connect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
   mysql_select_db($BD_base,$db)
        or die("Impossible de se connecter à la base de données.");
 
	// Le nom est-il rempli ?
    if(empty($Nom))
    {
      $message = 'Veuillez indiquer votre nom svp !';
    }
	if(empty($Prenom))
    {
      $message = 'Veuillez indiquer votre prenom svp !';
    }
      // Le mot de passe est-il rempli ?
    if(empty($mdp))
    {
      $message = 'Veuillez indiquer votre mot de passe svp !';
    }
 
	$sql='select * 
	  from users';
	  //where Nom='".$Nom."' AND Prenom='".$Prenom."' AND mdp = ("lorque je mets le where ici il me gener une erreur")'".$mdp."' 
      $req=mysql_query($sql) or die('Erreur SQl !<br>'.$sql.'<br>'.mysql_error());
 
 
mysql_close();
 
$res= mysql_num_rows($req);
if ($res==0)
{
echo "Connexion echoue, veuillez réessayer SVP </br>"; // a revoir
}
else
{
 // --- enregistrement en session de l'utilisateur
 $_SESSION["Nom"] = $Nom;
 // --- redirection en fonction de l'utilisateur
header("Location: acceuil2.php");}
      ?>
autre chose est-ce que même si je ne remplis pas tous les champs il me dirige vers accueil2.php


Merci
xxx_xxx_xxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 07h55   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonjour,

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
<?php
session_start();
    $BD_serveur     = "localhost";
    $BD_utilisateur = "root";
    $BD_motDePasse  = "";
    $BD_base        = "base";
	//$message='';
	$Nom=$_POST['Nom'];
	$Prenom=$_POST['Prenom'];
	$mdp=$_POST['mdp'];
 
 $db=mysql_connect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
   mysql_select_db($BD_base,$db)
        or die("Impossible de se connecter à la base de données.");
 
	// Le nom est-il rempli ?
	$message = "";
    if(empty($Nom))
    {
      $message = 'Veuillez indiquer votre nom svp !';
    }
	if(empty($Prenom))
    {
      $message .= ' <br/> Veuillez indiquer votre prenom svp !';
    }
      // Le mot de passe est-il rempli ?
    if(empty($mdp))
    {
      $message .= ' <br/> Veuillez indiquer votre mot de passe svp !';
    }
    if ($message == ""){	
		$sql="SELECT COUNT(*) 
	  FROM users WHERE mdp = '" . mysql_real_escape_string($_POST['mdp']) . "' AND Nom = '" . mysql_real_escape_string($_POST['Nom']) . "' AND  Prenom = '" . mysql_real_escape_string($_POST['Prenom']) . "'";
		$req=mysql_query($sql) or die('Erreur SQl !<br>'.$sql.'<br>'.mysql_error());
		$result = mysql_fetch_row($req);
		if ($result[0] == 0)
		{
			echo "Connexion echoue, veuillez réessayer SVP </br>"; // a revoir
		}
		else
		{
		 // --- enregistrement en session de l'utilisateur
			$_SESSION["Nom"] = $Nom;
		 // --- redirection en fonction de l'utilisateur
			header("Location: acceuil2.php");
		}
	}else{
		echo $message;
	}
?>
Et si t'as des erreurs, tu dois nous les citer pour t'aider à les corriger mais ne pas virer seulement les codes qui les génèrent.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 08h58   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
J'ai pas compris pourquoi tu as ajouté count(*) on n'a pas besoin de compter le nombre d'utilisateur
On compte s'il y en un 1 ou 0.

Si tu veux recupérer l'id de l'utilisateur par exemple tu peux faire un SELECT id et ensuite regarder le nombre de ligne retournées avec mysql_num_rows
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 10h17   #6
 
Femme
Étudiant
Inscription : mai 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : mai 2011
Messages : 9
Points : -3
Points : -3
Bon voila j'ai testé le code ke tu m'a proposé voici le resultat donnée:

Citation:
Notice: Undefined index: Nom in C:\Program Files\EasyPHP-5.3.6.0\www\traitement.php on line 70

Notice: Undefined index: Prenom in C:\Program Files\EasyPHP-5.3.6.0\www\traitement.php on line 71

Notice: Undefined index: mdp in C:\Program Files\EasyPHP-5.3.6.0\www\traitement.php on line 72
Veuillez indiquer votre nom svp !
Veuillez indiquer votre prenom svp !
Veuillez indiquer votre mot de passe svp !


Sachant que les lignes 70,71 et 72 sont:
Code :
1
2
3
   $Nom=$_POST['Nom'];
	$Prenom=$_POST['Prenom'];
	$mdp=$_POST['mdp'];

Merci
xxx_xxx_xxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 11h04   #7
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Tu dois d'abord tester si les éléments du formulaire sont envoyés
Code :
1
2
3
4
5
if (isset($_POST['Nom']) && isset($_POST['Prenom']) && isset($_POST['mdp'];))
{
// ici tu mets tes codes
 
}
A+.
andry.aime 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 14h02.


 
 
 
 
Partenaires

Hébergement Web