Authentification à partie d'une BD mysql -PHP
khaouula
Messages postés
8
Statut
Membre
-
khaouula Messages postés 8 Statut Membre -
khaouula Messages postés 8 Statut Membre -
Bonsoir tout le monde ,
je suis débutante en php et j'aimerai mettre en place un script permettant une authentification à partir d'une table Etudiants dans ma base de donnée Mysql .
Structure de ma table Etudiants :
matricule=int ,
pass=varchar(20).
mon script authentification :
<?php
$cnx = mysql_connect( "localhost", "root", "" ) ;
$db = mysql_select_db("hightech");
if(isset($_POST['login']) && isset($_POST['pass'])){
$login=$_POST['login'];
$pass=$_POST['pass'];
$rq="SELECT * FROM etudiant WHERE nom='".$login."' AND pass='".$pass."'";
$result = mysql_query($rq,$cnx) ;
$num= mysql_num_rows($result);
$ligne= mysql_fetch_array($result);
if($num > 0)
{ if(!empty($_POST['pass']))
{
if($_POST['pass']==$ligne[1])
{
session_start();
$_SESSION['login'] = $login;
$_SESSION['pass'] = $pass;
header('Location: formation.html');
exit();
}
else header('Location: contact.html');
}else header('Location: Authentification.hmtl');
}
else
{
header('Location: index.html');
}
mysql_free_result($result);
}
?>
ALors le problème qui se pose c'est que quand je saisie un matricule et un pass qu'ils existent dans la tables Etudiant ou pas , la dernière instruction else est la seule à être exécutée en tout cas , ce qui veut dire que le résultat de le requête est vide .
Certains m'ont demandé si j'avais spécifié l'Interclassement des attributs à : utf8_unicode_ci , je l'ai essayé mais ca marche pas (même si je ne sais pas en quoi consiste son impact).
J'aimerai bien avoir une réponse bien déterminée et le plutôt possible , merci d'avance et je vous en serai reconnaissante .
NB: J'utilise wampserver et c'est une tout petite partie de mon PFA :S
je suis débutante en php et j'aimerai mettre en place un script permettant une authentification à partir d'une table Etudiants dans ma base de donnée Mysql .
Structure de ma table Etudiants :
matricule=int ,
pass=varchar(20).
mon script authentification :
<?php
$cnx = mysql_connect( "localhost", "root", "" ) ;
$db = mysql_select_db("hightech");
if(isset($_POST['login']) && isset($_POST['pass'])){
$login=$_POST['login'];
$pass=$_POST['pass'];
$rq="SELECT * FROM etudiant WHERE nom='".$login."' AND pass='".$pass."'";
$result = mysql_query($rq,$cnx) ;
$num= mysql_num_rows($result);
$ligne= mysql_fetch_array($result);
if($num > 0)
{ if(!empty($_POST['pass']))
{
if($_POST['pass']==$ligne[1])
{
session_start();
$_SESSION['login'] = $login;
$_SESSION['pass'] = $pass;
header('Location: formation.html');
exit();
}
else header('Location: contact.html');
}else header('Location: Authentification.hmtl');
}
else
{
header('Location: index.html');
}
mysql_free_result($result);
}
?>
ALors le problème qui se pose c'est que quand je saisie un matricule et un pass qu'ils existent dans la tables Etudiant ou pas , la dernière instruction else est la seule à être exécutée en tout cas , ce qui veut dire que le résultat de le requête est vide .
Certains m'ont demandé si j'avais spécifié l'Interclassement des attributs à : utf8_unicode_ci , je l'ai essayé mais ca marche pas (même si je ne sais pas en quoi consiste son impact).
J'aimerai bien avoir une réponse bien déterminée et le plutôt possible , merci d'avance et je vous en serai reconnaissante .
NB: J'utilise wampserver et c'est une tout petite partie de mon PFA :S
A voir également:
- Authentification à partie d'une BD mysql -PHP
- Double authentification google - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Easy php - Télécharger - Divers Web & Internet
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment supprimer une partie tomodachi life - Forum DS
4 réponses
je sais pas, si tu présente ton code dans ce style en l'executant tu devrais trouver ce qui va pas:
session_start();
$cnx = mysql_connect("localhost", "root", "");
$db = mysql_select_db("hightech");
if (isset($_POST['login']) && isset($_POST['pass'])) {
echo 'login post: ' . $login = $_POST['login'] . '<br/>';
echo 'pass post: ' . $pass = $_POST['pass'] . '<br/>';
echo 'select: ' . $rq = "SELECT * FROM etudiant WHERE nom='" . $login . "' AND pass='" . $pass . "'";
echo '<br/>';
$result = mysql_query($rq, $cnx);
echo 'num: ' . $num = mysql_num_rows($result) . '<br/>';
$ligne = mysql_fetch_array($result);
echo 'ligne[0]: ' . $ligne[0] . '<br/>';
echo 'ligne[1]: ' . $ligne[1] . '<br/>';
if ($num > 0) {
if (!empty($_POST['pass'])) {
if ($_POST['pass'] == $ligne[1]) {
echo '$_SESSION[\'login\']: ' . $_SESSION['login'] = $login. '<br/>';
echo '$_SESSION[\'pass\']: ' . $_SESSION['pass'] = $pass. '<br/>';
// header('Location: formation.html');
exit();
} else {
//header('Location: contact.html');
}
} else {
// header('Location: Authentification.hmtl');
}
} else {
// header('Location: index.html');
}
mysql_free_result($result);
}
re , je te remercie pour ton aide je me suis servis un peu de ce bout de code , j'ai fait des petites modification et là ca marche à merveille , voilà le nouveau code si jamais quelqu'un en aura besoin :
<?php
session_start();
$cnx = mysql_connect( "localhost", "root", "" ) ;
$db = mysql_select_db("hightech");
if($_POST['login'] && $_POST['pass']){
$login=$_POST['login'];
$pass=$_POST['pass'];
$rq="select * from etudiant where matricule='".$login."' AND pass='".$pass."'";
$result = mysql_query($rq,$cnx) ;
$num= mysql_num_rows($result);
$ligne= mysql_fetch_array($result);
if($num > 0)
{
if($pass==$ligne[1])
{ $_SESSION['login'] = $login;
$_SESSION['pass'] = $pass;
header('Location: formations.html');
exit();
}
}
else {
header("Location:./authentification.html");
}
}
?>
Merci infiniment c'est gentil de ta part .
<?php
session_start();
$cnx = mysql_connect( "localhost", "root", "" ) ;
$db = mysql_select_db("hightech");
if($_POST['login'] && $_POST['pass']){
$login=$_POST['login'];
$pass=$_POST['pass'];
$rq="select * from etudiant where matricule='".$login."' AND pass='".$pass."'";
$result = mysql_query($rq,$cnx) ;
$num= mysql_num_rows($result);
$ligne= mysql_fetch_array($result);
if($num > 0)
{
if($pass==$ligne[1])
{ $_SESSION['login'] = $login;
$_SESSION['pass'] = $pass;
header('Location: formations.html');
exit();
}
}
else {
header("Location:./authentification.html");
}
}
?>
Merci infiniment c'est gentil de ta part .