Probleme d'authentification en PHP

Résolu/Fermé
ZaNy - 21 janv. 2008 à 10:33
majdoulin Messages postés 106 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 mai 2008 - 21 janv. 2008 à 11:49
Bonjour,
Je vous explique mon problème.
Je possède un formulaire POST qui contient 2 champs (login pour saisir l'identifiant, et password pour saisir le mots de passe.
Lorsque je clique sur le bouton Envoyer, mon formulaire recupère ces données et va sur la page authentification2.php

Voici le code de la page authentification2.php

<?php $login=htmlspecialchars($_POST["login"]);
$password=htmlspecialchars($_POST["password"]);
if (isset($login) && isset ($password) && $login !=NULL && $password !=NULL)
{
$requete="SELECT user,pass FROM membres WHERE user='".$login."' AND pass='".$password."';";
include("connexion.php");
$result=mysql_query($requete);
$ligne=mysql_fetch_array($result);
session_start();
$_SESSION['login']=$login;
header('perso.php');

header('accueil.php');

}
else
{
header('accueil.php');
}
?>


J'aimerai que la page perso.php s'affiche si le login et mots de passe sont bon sinon la page accueil.php.

Le login et mots de passe sont contenu dans une tables membres avec un champ 'user' et un champs 'pass'.

Merc i de votre aide

Cordialement

6 réponses

Merci de votre aide
Voici mon code remodifier, et qui marche mieux mais pas encors très bien.

<?php $login=htmlspecialchars($_POST["login"]);
$password=htmlspecialchars($_POST["password"]);
if (isset($login) && isset ($password) && $login !=NULL && $password !=NULL)
{
$requete="SELECT num,type FROM membres WHERE user='".$login."' AND pass='".$password."';";
include('connexion.php');
$result=mysql_query($requete);
$ligne=mysql_fetch_array($result);
$num=$ligne["num"];
$type=$ligne["type"];
switch ($type)
{
// Cas Admin
case 'Admin' :
session_start();
$_SESSION['type']=$type;
$_SESSION['login']=$login;
$_SESSION['num']=$num;
header('location:perso.php');

case '' :
header('location:accueil.php');

}
}
else
{
header('location:accueil.php');
}
?>


Lorsque je rentre un faux login et mots de passe ou que je ne rentre rien, on retourne bien sur la page d'accueil.
Par contre, le soucis est que si je rentre le bon login et mots de passe, on va bien sur la page authentification2.php mais la, page blanche et rien ne bouge, alors que l'on devrai repartir sur perso.php
0
Le probleme maintenant est que dans tous les cas, meme avec login et password correct, je suis renvoyé sur accueil.php.
Je comprend plus rien. Je pense que ca doit provenir de mes headers(...) qui sont mal placé???
0
C'étais belle et bien un probleme de break. Maintenant ca marche très bien.
Merci beaucoup.
0
majdoulin Messages postés 106 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 mai 2008
21 janv. 2008 à 11:49
derien ,bonne chance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
majdoulin Messages postés 106 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 mai 2008
21 janv. 2008 à 10:46
bonjour
c'est quoi le message d'erreur ?
-1
majdoulin Messages postés 106 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 mai 2008
21 janv. 2008 à 11:34
Je crois plutot que le probleme vient de ta requete les header sont bien pose ,juste une remarque je crois qu'il faudrait mettre break;

header('location:perso.php');break;
case '' :
header('location:accueil.php');
break;
}
}
else
{
header('location:accueil.php');break;
}
?>

Et comme tu es toujour redirige vers acceuil alors ce serait ta requete qui marche pas , pour moi ca a marche voici mon code si ca peut t 'aider :
<?php
if(!empty($_POST["valider"]))
{ if(!empty($_POST['login']) && !empty($_POST['pass']) and ($_POST['login'] != NULL) and ($_POST['pass'] != NULL)) {

$login=$_POST['login'];
$pass=$_POST['pass'];

$rek=mysql_query("select login,pass,categorie,nom,prenom from admin where login='$login' and pass='$pass' ");
mysql_close();
if ($ligne = mysql_fetch_array($rek))
{$cat=$ligne[2];
session_start();
session_save_path("/sessions");
$_SESSION['login'] = $ligne[0];
$_SESSION['pass'] = $ligne[1];
$_SESSION['cat'] = $cat;
$_SESSION['nom'] = $ligne[3];
$_SESSION['prenom'] = $ligne[4];
header("Location: utilisateurs.php");
} }}
?>
Et dans l autre page j ai recupere categorie et avec switch case j ai affiche ce ke je voulai .
-1