Page 1 sur 2
page login
Posté : 16 mai 2006, 15:03
par béka
Bonjour tout le monde, voila j'ai fait un accès reservé à une partie de mon site. Seules des entreprises déja enregistrées et possédant un login et mdp on accès à un espace de consultation de mon site.
Voila, mon code php
<?php
/* login.php
description : page de login pour la selection à accès réservé du lycée hippolyte fontaine
Il propose de s'identifier par un couple nom de login/mot de passe
identificateurs et mots de passe sont conservés dans une BDD */
$connection = mysql_connect("localhost","root");
$db = mysql_select_db("hippolyte",$connection);
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='$_POST[login]'";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if ($num == 1) //Le nom de login a été trouvé
{
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='$_POST[login] AND password_entreprise='password('$_POST[password]')";
$result2 = mysql_query($sql);
$num2 = mysql_num_rows($result2);
if ($num2 > 0) // mot de passe correct
{
$_SESSION['auth']="yes";
$logname = $_POST['login'];
$aujourdhui = date("Y-m-d h:i:s");
$sql = "INSERT INTO login_entreprise (nom_login, date_login) VALUES ('$logname', '$aujourdhui')";
mysql_query($sql);
include ("reserve/index.php");
}
else //mot de passe incorrect
{
echo "le mot de passe saisi est incorrect. Essayez à nouveau";
}
if ($num == 0) //login absent
{
echo "Le login est incorrect. Essayez à nouveau";
}
}
?>
Mais ce que je ne comprends pas, c'est que lorsque le login et le mot de passe sont corrects, cela ne m'envoie pas vers la page souhaitées reserve/index.php
Pourquoi?
Quelqu'un peut-il m'aider?
Posté : 16 mai 2006, 15:39
par Ultim4T0m
Bonjour,
C'est une redirection que tu souhaites faire ? Dans ce cas, si tu remplaçais
include ("reserve/index.php");
par
header ('Location: reserve/index.php');
Posté : 16 mai 2006, 15:48
par béka
non,ca marche toujours pas.
J'ai une page blanche avec comme adresse toujours la page login.php alors que je devrais etre sur la page reserve/index.php
Posté : 16 mai 2006, 16:02
par Maitrepylos
Est-tu sur du chemin reserve/index.php?
Posté : 16 mai 2006, 16:05
par béka
oui ma page a laquelle je veux autoriser l'accès après connexion des membres est bien dans le répertoire reserve et s'appelle bien index.php
Mais meme lorsque je rentre un login ou un password erroné, je n'ai pas de message d'erreur alors que je devrais en voir un d'après mes fonctions echo
Posté : 16 mai 2006, 16:14
par béka
j'ai bidouiller mon code, maintenant la commande
mysql_num_rows($result2);
Voila mon message d'erreur : mysql_num_rows(): supplied argument is not a valid MySQL result ressource in..
Posté : 16 mai 2006, 16:14
par Maitrepylos
Personellement j'aurais ecrit la page ainsi
<?php
/* login.php
description : page de login pour la selection à accès réservé du lycée hippolyte fontaine
Il propose de s'identifier par un couple nom de login/mot de passe
identificateurs et mots de passe sont conservés dans une BDD */
$connection = mysql_connect("localhost","root");
$db = mysql_select_db("hippolyte",$connection);
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='".$_POST['login']."'";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if ($num == 1) //Le nom de login a été trouvé
{
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='".$_POST['login']."' AND Password_entreprise='".$_POST['password']."')";
$result2 = mysql_query($sql);
$num2 = mysql_num_rows($result2);
if ($num2 > 0) // mot de passe correct
{
$_SESSION['auth']="yes";
$logname = $_POST['login'];
$aujourdhui = date("Y-m-d h:i:s");
$sql = "INSERT INTO login_entreprise (nom_login, date_login) VALUES ('".$logname."', '".$aujourdhui."')";
mysql_query($sql);
include ("reserve/index.php");
}
else //mot de passe incorrect
{
echo "le mot de passe saisi est incorrect. Essayez à nouveau";
}
}
else //login absent
{
echo "Le login est incorrect. Essayez à nouveau";
}
?>
Posté : 16 mai 2006, 16:25
par béka
voila désormais ma page :
<?php
/* login.php
description : page de login pour la selection à accès réservé du lycée hippolyte fontaine
Il propose de s'identifier par un couple nom de login/mot de passe
identificateurs et mots de passe sont conservés dans une BDD */
$connection = mysql_connect("localhost","root");
$db = mysql_select_db("hippolyte",$connection);
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='$_POST[login]'";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if ($num == 1) //Le nom de login a été trouvé
{
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='$_POST[login]' AND password_entreprise=password('$_POST[password]')";
$result2 = mysql_query($sql);
$num2 = mysql_num_rows($result2);
if ($num2 > 0) // mot de passe correct
{
$_SESSION['auth']="yes";
$logname = $_POST['login'];
$aujourdhui = date("Y-m-d h:i:s");
$sql = "INSERT INTO login_entreprise (nom_login, date_login) VALUES ('$logname', '$aujourdhui')";
mysql_query($sql);
include ("reserve/index.php");
}
else //mot de passe incorrect
{
echo "le mot de passe saisi est incorrect. Essayez à nouveau";
}
if ($num == 0) //login absent
{
echo "Le login est incorrect. Essayez à nouveau";
}
}
?>
Seulement voila, en saisissant un login et mdp correct, j'ai le message d'erreur me disant que le mdp est incorrect.
Posté : 16 mai 2006, 16:43
par Maitrepylos
et comme ceci
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='$_POST[login]' AND password_entreprise='$_POST[password]' ";
Posté : 16 mai 2006, 16:50
par charabia
PHP:
<?php
/* login.php
description : page de login pour la selection à accès réservé du lycée hippolyte fontaine
Il propose de s'identifier par un couple nom de login/mot de passe
identificateurs et mots de passe sont conservés dans une BDD */
$connection = mysql_connect("localhost","root");
$db = mysql_select_db("hippolyte",$connection);
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='".$_POST['login']."'";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if($num > 0) //Le nom de login a été trouvé
{
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='".$_POST['login']."' AND password_entreprise=password('".$_POST['password']."')";
$result2 = mysql_query($sql);
$num2 = mysql_num_rows($result2);
if ($num2 > 0) // mot de passe correct
{
$_SESSION['auth']="yes";
$logname = $_POST['login'];
$aujourdhui = date("Y-m-d h:i:s");
$sql = "INSERT INTO login_entreprise(nom_login, date_login) VALUES('$logname', '$aujourdhui')";
mysql_query($sql);
include ("reserve/index.php");
}
}
elseif($num==0) //login absent
{
echo "Le login est incorrect. Essayez à nouveau";
}
else //mot de passe incorrect
{
echo "le mot de passe saisi est incorrect. Essayez à nouveau";
}
?>
Accolade oublié et j'ai rectifié certaines choses. A essayer
Par contre je n'ai pas compris d'où venait le
password() ? Je l'ai laissé par doute.
Posté : 16 mai 2006, 16:55
par béka
c'est bon le problème est résolu, cela venait de ma requete SQL.
merci tout le monde, et merci Maitrepylos qui a trouvé la petite erreur dans la requete SQL. Bonne fin de jouréne a vous tous
Posté : 16 mai 2006, 16:57
par charabia
Tu as quand même une accolade fermante qui manque lol Vérifies bien.
Posté : 16 mai 2006, 17:05
par béka
bé en fait, le password il fallait le zapper (petite erreur de ma part)
Posté : 16 mai 2006, 17:09
par charabia
Oui mais ton
if ($num2 > 0) // mot de passe correct
{
ne se ferme pas

Posté : 16 mai 2006, 17:11
par béka
j'ai résolu, maintenant il a autant de { ouvertes que de } fermées.
Tout marche bien maintenant