Pb perte de login

cs_AlexTheDoctor Messages postés 23 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 8 avril 2010 - 8 avril 2010 à 11:57
roymatthieu Messages postés 112 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 3 février 2011 - 13 avril 2010 à 11:12
Bonjour à tous!!

Voilà je débute en php, et j'ai un petit soucis.
J'ai 2 pages "login.php" et "index.php" (qui comprend un menu à droite).

Je rentre mon login et mot de passe j'accède bien à "index.php" mais quand je clique sur un choix dans mon menu dans "index.php" je reviens sur "login.php" car il a perdu le log et le mdp.
donc comment garder le log et le mdp? où est-ce qu'il y a un soucis dans le code?

Merci beaucoup!!

code :

J'ai 1 page : login.php avec
Code :


<form action="index.php" method="post" name="form_login" id="form_login" class="formLogin">




et une page index.php avec
Code :


session_start();
$prefixTable="";
set_time_limit(0);

// Connection à la base de données
$conn = &ADONewConnection(CONST_type_base); # create a connection
$conn->Connect(CONST_mysql_urlServeur,CONST_mysql_user,CONST_mysql_password,CONST_mysql_nameDataBase);# connect

// Login et mot de passe entrant
if($_POST['txtLogin'] && $_POST['txtPassword']){
// Regarder si l'utilisateur existe et si oui extraire les infos
$sqlInfoUtilisateur="SELECT...";
$recordInfoUtilisateur = $conn->Execute($sqlInfoUtilisateur);

if($recordInfoUtilisateur->_numOfRows==1){
$_SESSION['nom']=$recordInfoUtilisateur->fields["nom"];
$_SESSION['prenom']=$recordInfoUtilisateur->fields["prenom"];
$_SESSION['num']=$recordInfoUtilisateur->fields["num"];
$_SESSION['id_num']=$recordInfoUtilisateur->fields["id_num"];
$_SESSION['login']=$_POST['txtLogin'];
$_SESSION['password']=$_POST['txtPassword'];
}
else{
include('login.php');
die();
}
}
else
{
include('login.php');
die();
}
// Session
if( isset($_SESSION['login']) && isset($_SESSION['password'])){
$_SESSION['nbrPage']=$_SESSION['nbrPage']+1;
$prefixTable=$_SESSION['num']."_";
}else{
include('login.php');
die();
}

// etc...



Alex

1 réponse

roymatthieu Messages postés 112 Date d'inscription jeudi 31 août 2006 Statut Membre Dernière intervention 3 février 2011 1
13 avril 2010 à 11:12
Salut,

C'est tout bête en fait, il s'agit d'un mauvais "choix logique"

Je traduis ton script :

---
Si je récupère les valeurs de champ x et y (dans ce cas de la page login).

Je vérifie l'accès.

Sinon

J'affiche la page login.

ensuite je crée la session et je vérifie celle ci...

---

Donc quand on est sur la page login tout fonction ce qui est normal.

Mais quand on est sur la page index

on ne récupère pas les valeurs de champ x et y et donc on est renvoyé vers la page login.

change ceci :

if($_POST['txtLogin'] && $_POST['txtPassword']){

...

if($recordInfoUtilisateur->_numOfRows==1){

...
}
else{

include('login.php');
die();
}
}
else
{
if(!isset($_SESSION['login'])){

include('login.php');
die();
}
else{

$_SESSION['nbrPage'] = $_SESSION['nbrPage']+1;
$prefixTable=$_SESSION['num']."_";
}
}

n'utilise pas $_SESSION['password'] = $_POST['txtPassword']; car tu stockes le mot de passe en clair dans une session est c'est totalement inutile.
0
Rejoignez-nous