Formulaire de connexion [Fermé]

Signaler
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018
-
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018
-
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;
}
A voir également:

6 réponses

Messages postés
2
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
15 mars 2016
1
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
31550
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 mars 2021
3 294
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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

merci jordan mais c'est toujours le meme problem
Messages postés
31550
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 mars 2021
3 294 >
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

- 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 ??
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

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;
}
Messages postés
31550
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 mars 2021
3 294
Je repete.... AS TU TESTE DIRECTEMENT TA REQUÊTE DANS TA BDD ?
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

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

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

Tu as une erreur ou rien du tout?
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

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
Messages postés
55
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
27 juin 2018
6
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.
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018
>
Messages postés
55
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
27 juin 2018

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
Messages postés
46
Date d'inscription
lundi 14 mars 2016
Statut
Membre
Dernière intervention
29 avril 2018

toujours le meme problem
Messages postés
55
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
27 juin 2018
6
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.