par
yann18 » 12 nov. 2014, 23:17
bonjour,
Le problème vient de la 2ème requête car à aucun moment tu l'exécute, avec mysql_query().Pour mysql_close(), tu peux la placer à la fin de tes requêtes ou tout simplement ne pas l'utiliser auquel cas la connexion à mysql se ferme automatiquement à la fin du script.
A vrai dire tu n'as pas besoin de 2 requêtes pour faire une authentification.Tu peux te contenter de ceci:
<?php
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ( !empty($_POST['pseudo'] ) && !empty($_POST['mot_passe']) ) {
$base = mysql_connect ('', '', '');
mysql_select_db ('', $base);
$sql = 'SELECT id, acces, admin, design, langue FROM membres WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'" AND mot_passe="'.mysql_escape_string(md5($_POST['mot_passe'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
if(!empty( $data) ){ //le resultat est un tableau non vide alors le user existe
session_start();
$_SESSION['admin'] = $data['admin'];
$_SESSION['design'] = $data['design'];
$_SESSION['langue'] = $data['langue'];
$_SESSION['pseudo'] = $_POST['pseudo'];
header('Location: admin.php');
exit();
}else{
echo "Pseudo ou mot de passe incorrect";
}
}
}
?>
tu ne peux pas utiliser à la fois isset() et empty() car empty() inclut isset() c-a-d empty() vérifie que la variable existe et qu'elle est non nulle(null, false, vide,0)
bonjour,
Le problème vient de la 2ème requête car à aucun moment tu l'exécute, avec mysql_query().Pour mysql_close(), tu peux la placer à la fin de tes requêtes ou tout simplement ne pas l'utiliser auquel cas la connexion à mysql se ferme automatiquement à la fin du script.
A vrai dire tu n'as pas besoin de 2 requêtes pour faire une authentification.Tu peux te contenter de ceci:
[php]
<?php
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ( !empty($_POST['pseudo'] ) && !empty($_POST['mot_passe']) ) {
$base = mysql_connect ('', '', '');
mysql_select_db ('', $base);
$sql = 'SELECT id, acces, admin, design, langue FROM membres WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'" AND mot_passe="'.mysql_escape_string(md5($_POST['mot_passe'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
if(!empty( $data) ){ //le resultat est un tableau non vide alors le user existe
session_start();
$_SESSION['admin'] = $data['admin'];
$_SESSION['design'] = $data['design'];
$_SESSION['langue'] = $data['langue'];
$_SESSION['pseudo'] = $_POST['pseudo'];
header('Location: admin.php');
exit();
}else{
echo "Pseudo ou mot de passe incorrect";
}
}
}
?>
[/php]
tu ne peux pas utiliser à la fois isset() et empty() car empty() inclut isset() c-a-d empty() vérifie que la variable existe et qu'elle est non nulle(null, false, vide,0)