Formulaire de connexion

Fermé
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018
- 15 mars 2016 à 17:59
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018
- 20 mars 2016 à 15:58
bonsoir,

je encore un problem avec la connexion de l'espace membre
voici le mon problem:
dans mon formulaire de connexion, meme si que saisis les bonnes informations, je arrivent a se connecter a mon espace membre donc je voudrai que vous m'aidiez s'il vous plait et vois mon code de connexion:
<strong></strong>
<div class="contenu">
<h2>Controle System accese </h2>


<form method="post" action="">
<label for="login">login:</label>
<input type="text" name="login" /><br />
<label for="pass">Password :</label>
<input type="password" name="pass" />
<br />
<button class="btn btn-primary" type="submit" name="submit">Connexion</button>
</form>
<?php



include'fonctions/connection_BDD.php';
if(isset($_POST['submit'])){
$login='';
$pass='';

if(empty($_POST['login']))
{
$erreurs[] = "Veuillez renseigner le champs login";
}

if(empty($_POST['pass']))
{
$erreurs[] = "Veuillez saisir votre mot de passe";

}

if(!empty($erreurs))
{
foreach($erreurs as $erreur)
{
echo"<div class='erreur'>".$erreur."</div>";
}
}else{
if(verie_couple_login_password($login,$pass)==0)
{
echo '<div class="erreur">Pseudo ou password invalid</div>';
}else{
$_SESSION['login']=$login;
$_SESSION['pass']=$pass;
header("location:index.php");
}
}

}

?>

you don't have a count?<a href="interface.php?page=incription" title="pour les personnes n'ayant pas un compte">Cliquez ici</a>

<div align="center"></div>
</div>

et voici la fonction permettant de verifier la combinaison de couple login/pass
function verie_couple_login_password($login,$pass)
{
$pass=sha1($pass);
$resulte=mysql_query("SELECT nom, password FROM utilisateur WHERE nom='$login' AND password='$pass'") or die("erreur");
$rows=mysql_num_rows($resulte);
return $rows;
}

6 réponses

technoid
Messages postés
2
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
15 mars 2016
1
Modifié par technoid le 15/03/2016 à 18:34
C'est tout dans le même fichier? il est où ton session_start()?

Avec html5 tu peux facilement contrôler et empêcher qu'un input soit vide. Pour cela, ajoute le mot "required" à la fin.

<form action="./include/php/login.php" method="post" name="login_form">
<input type="text" id="username" name="username" placeholder="Nom d'utilisateur" required><br/>
<input type="password" id="password" name="password" placeholder="Mot de passe" required><br/>
<button type="submit" value="Submit">Login</button><br/>
</form>


P.S :

<h2>Access control system</h2>
1
jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
4 200
16 mars 2016 à 10:21
Bonjour,

Déjà... prend l'habitude de mettre le maximum de php AVANT le html.
Cela rend plus facile le debogage du code par la suite....

Récupères également proprement les variables AVANT de les utiliser.
Pour cela tu peux utliser des !empty ou isset avec l'écriture Ternaire...

Peux tu essayer ceci :
<code php>
<?php
//Affichage des erreurs PHP
error_reporting(E_ALL);

//Connexion à la BDD
require_once 'fonctions/connection_BDD.php';

//récupération "propre" des variables
$login=!empty($_POST['login']) ? $_POST['login'] : NULL;
$pass=!empty($_POST['pass']) ? $_POST['pass'] : NULL

$erreurs = array();
if(isset($_POST['submit'])){
  if(!$login){$erreurs[] = "Veuillez renseigner le champs login";};
  if(!$pass){$erreurs[] = "Veuillez saisir votre mot de passe";};

  if(verie_couple_login_password($login,$pass)==0){
    $erreurs[] = '<div class="erreur">Pseudo ou password invalid</div>';
  }else{
    $_SESSION['login']=$login;
    $_SESSION['pass']=$pass;
    header("location:index.php");
  }
 }

}

?>

<strong></strong>
<div class="contenu">
<h2>Controle System accese </h2>

 <form method="post" action="">
  <label for="login">login:</label>
  <input type="text" name="login" /><br />
  <label for="pass">Password :</label>
  <input type="password" name="pass" />
  <br />
  <button class="btn btn-primary" type="submit" name="submit">Connexion</button>
 </form>

 <?php
 if(!empty($erreurs)) {
   foreach($erreurs as $erreur) {
		 echo"<div class='erreur'>".$erreur."</div>";
	 }
  }
 ?>
 you don't have a count?<a href="interface.php?page=incription" title="pour les personnes n'ayant pas un compte">Cliquez ici</a>

 <div align="center"></div>
</div>


</code>


PS: Tu utilises l'ancienne extension Mysql....
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

je t'invite fortement à passer à PDO ou à Mysqli.
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli


1
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

17 mars 2016 à 10:00
merci jordan mais c'est toujours le meme problem
0
jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
4 200 > adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

17 mars 2016 à 10:08
- Le même problème...C'est à dire ?
- Tu es passé à la PDO comme je te l'ai conseillé ?
- Tu as testé ta requête DIRECTEMENT dans ta BDD pour voir si elle fonctionne ??
0
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

20 mars 2016 à 09:10
Bonjour,
le probleme c est pas la connexion a la base mais c pblm de code
normalement la fonction Mysql_num_rows retourn une valeur entiere
en parcourant si ellle trouve une ou le nom est egal a celui poster par le formulaire et le champs password de la base est egal a celui poster aussi par le formaulair dans ce cas elle devrai dir qu elle a trouver a une personnee et qu'elle charger la partie du code ou le condition verifier. mais lorsque je dit ainsi:
else{
if(verie_couple_login_password($login,$pass)==0)//la fonction verifiant un utilisateur bien identifier
{

session_start();
$_SESSION['login']=$login;
$_SESSION['pass']=$pass;
header("location:index.php");
}else{
echo '<div class="erreur">erreur de password ou pesudo</div>';
}
normalement lorsque le resultats de la focntions verifi_couple_login_password($login, $pass)==1), je devrai acceder mon espace membre mais ce n'est pas le cas. c'est le cas contraire que j'y arrive acceder l 'espace membre. c'est a dire lorsque je saisie des fauses information il me permet d'acceder l'espace memebre et lorsque je saisie des informations apropriés adequat il me di que pass ou login incorrecte:
voici la fonction qui permet de verifier les couple logine password:
function verie_couple_login_password($login,$pass)
{
$pass=sha1($pass);
$resulte=mysql_query("SELECT nom, password FROM utilisateur WHERE nom='$login' AND password='$pass'") or die("erreur");
$rows=mysql_num_rows($resulte);
return $rows;
}
0
jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
4 200
20 mars 2016 à 12:00
Je repete.... AS TU TESTE DIRECTEMENT TA REQUÊTE DANS TA BDD ?
0
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

20 mars 2016 à 15:58
je vien de tester ca a marche la requete
0
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

16 mars 2016 à 08:18
ma session_start se trouve dans la page index a laquelle j fait l'appel des fichier de connexion et l'inscription
0
choukie12
Messages postés
55
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
27 juin 2018
6
16 mars 2016 à 08:25
Bonjour,

Tu as une erreur ou rien du tout?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

16 mars 2016 à 08:30
bonjour choukie12,
non il y a pas d'erreur mais meme si que je saisie les bons identifiants il me dis que password or login incorrect
voila le seul le problem
0
choukie12
Messages postés
55
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
27 juin 2018
6
Modifié par choukie12 le 16/03/2016 à 08:50
Si je ne me trompe pas à aucun moment tu mets que :

$login=$_POST['login']
$pass=$_POST['pass']


Donc vu que ton appel DB pour la vérification des logins/mdp se fait avec '' et '' il te renvera toujours faux :)

Faut que tu rajoutes un else avec 'assignation' de la valeur de la variable:

if(empty($_POST['login']))
{
$erreurs[] = "Veuillez renseigner le champs login";
}else{
$login=$_POST['login']
}


Je pense que c'est ca ton soucis.

Jérémy.
0
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018
> choukie12
Messages postés
55
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
27 juin 2018

20 mars 2016 à 09:15
Bonjour,
include'fonctions/connection_BDD.php';
if(isset($_POST['submit'])){
$login='';
$pass='';

if(empty($_POST['login']))
{
$erreurs[] = "Veuillez renseigner le champs login";
}else{
$login=$_POST['login'];
}

if(empty($_POST['pass']))
{
$erreurs[] = "Veuillez saisir votre mot de passe";

}else{
$pass=$_POST['pass'];
}

if(!empty($erreurs))
{
foreach($erreurs as $erreur)
{
echo"<div class='erreur'>".$erreur."</div>";
}

j'ai initialisé une chaine de caratere vide dans un premier et j'ai verifier si les champs login et le pass sont vide sinon je declaré le variable login et j'ai affecté les valeurs posté par le formaulaire de la meme chose pour le password
0
adamsjilal
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

16 mars 2016 à 09:34
toujours le meme problem
0
choukie12
Messages postés
55
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
27 juin 2018
6
16 mars 2016 à 09:45
Peux tu partager ton code, histoire de voir de manière plus clair?

Donc si il te dit password et login incorrect c'est que ta method :
function verie_couple_login_password($login,$pass) 
à l'air bancale.
Essaie de remplacer le contenu entier par return 1.
Pour voir si le pb vient pas de ton appel en db.
0