page login

Mammouth du PHP | 536 Messages

16 mai 2006, 15:03

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?

Eléphant du PHP | 445 Messages

16 mai 2006, 15:39

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'); 
LLDC
Ulti

Mammouth du PHP | 536 Messages

16 mai 2006, 15:48

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

Mammouth du PHP | 1029 Messages

16 mai 2006, 16:02

Est-tu sur du chemin reserve/index.php?
L'expérience est la somme de toutes nos erreurs.

Mammouth du PHP | 536 Messages

16 mai 2006, 16:05

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

Mammouth du PHP | 536 Messages

16 mai 2006, 16:14

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..

Mammouth du PHP | 1029 Messages

16 mai 2006, 16:14

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";	
	}
?>

L'expérience est la somme de toutes nos erreurs.

Mammouth du PHP | 536 Messages

16 mai 2006, 16:25

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.

Mammouth du PHP | 1029 Messages

16 mai 2006, 16:43

et comme ceci
$sql = "SELECT login_entreprise FROM entreprise WHERE login_entreprise='$_POST[login]' AND password_entreprise='$_POST[password]' "; 

L'expérience est la somme de toutes nos erreurs.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 mai 2006, 16:50

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.

Mammouth du PHP | 536 Messages

16 mai 2006, 16:55

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 mai 2006, 16:57

Tu as quand même une accolade fermante qui manque lol Vérifies bien.

Mammouth du PHP | 536 Messages

16 mai 2006, 17:05

bé en fait, le password il fallait le zapper (petite erreur de ma part)

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 mai 2006, 17:09

Oui mais ton
if ($num2 > 0) // mot de passe correct 
    {
ne se ferme pas :)

Mammouth du PHP | 536 Messages

16 mai 2006, 17:11

j'ai résolu, maintenant il a autant de { ouvertes que de } fermées.
Tout marche bien maintenant