Nouveau WRInaute
Bonjour à tous,
Mon problème ne semble pas exister dans le forum. On parle beaucoup de sessions mais pas de ce que j'ai besoin exactement.
Ma config:
easyphp 1.8
Voici le code de mes 2 pages qui posent problème:
index.php:
[/b]
verif.php:
[/code]
Je ne suis pas u pro en php mais je pense comprendre le principe.
J'ai les erreurs banales de sessions mais que je n'arrive pas à résoudre en supprimant le session_start de l'une ou l'autre des 2 pages ou en tentant des if pour voir si le user est déjà loggé !!
Voici l'erreur que j'obtiens avec les 2 pages que je vous ai donné:
Notice: A session had already been started - ignoring session_start() in c:\program files\easyphp1-8\www\immobay4\index.php on line 2
Je comprend bien que c'est parceque j'ai déjà une session d'ouverte mais si je supprimme le session_start de la page index, je n'arrive pas à accéder à ma page protégée dont le code est le suivant :
Si quelqu'un peut m'aider, c'est super sympa.
D'avance merci.
Jhon

Mon problème ne semble pas exister dans le forum. On parle beaucoup de sessions mais pas de ce que j'ai besoin exactement.
Ma config:
easyphp 1.8
Voici le code de mes 2 pages qui posent problème:
index.php:
Code:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<link href="cssindex.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="header">
<?php
include "menu.php";
?>
</div>
<div id="corps">
<?php
// On définit le tableau contenant les pages autorisées
// ----------------------------------------------------
$pageOK = array('page1' => 'page1.php',
'page2' => 'page2.php',
'pageprotegee' => 'pageprotegee.php',
'deconnexion' => 'deconnexion.php',
'accueil' => 'accueil.php');
// On teste que le paramètre d'url existe et qu'il est bien autorisé
// -----------------------------------------------------------------
if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) //si l'url existe dans le tableau
{
include($pageOK[$_GET['page']]); // Nous appelons cette url
}
else //sinon
{
include('accueil.php'); // Page par défaut quant elle n'existe pas dans le tableau
}
?>
</div>
</body>
</html>
verif.php:
Code:
<?php
session_start();
//ici on vérifie que le mot de passe et le login entrés existent dans la base de données mysql
$log=false;
$login=$_POST['login'];
$mot_de_passe=$_POST['mot_de_passe'];
$db=mysql_connect('localhost','root','') or die("erreur de connexion");
mysql_select_db ('immobay',$db) or die ("erreur de connexion");
$login=addslashes($login);
$reqlog = mysql_query("SELECT * FROM users WHERE login='$login'")or die(mysql_error());//on cherche dans la base de données le login = au login entré
$log=mysql_num_rows($reqlog);//on compte le nombre de ligne qui contiennent le login en question (dans notre cas c'est 1 ligne)
$mot_de_passe=addslashes($mot_de_passe);
$reqpass = mysql_query("SELECT * FROM users WHERE mot_de_passe='$mot_de_passe'")or die(mysql_error());//on cherche dans la base le mot de passe = au mot de passe entré
$pass=mysql_num_rows($reqpass);//on compte le nombre de ligne qui contiennent le login en question (dans notre cas c'est 1 ligne)
if (($log==1)&&($pass==1))//cas ou le login et la mot de passe sont bons ==> on déclare les variables de sessions
{
$_SESSION['login'] = $_POST['login'];
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
$req2=mysql_query("SELECT id,nom,prenom from users WHERE login='$login' ");//ici on met certaines informations en variables de session afin de pouvoir s'en servir.
$essai=mysql_fetch_array($req2);
$_SESSION['prenom']=$essai['prenom'];
$_SESSION['nom']=$essai['nom'];
$_SESSION['id']=$essai['id'];
$log=true;//variable mise à TRUE car le user s'est bien identifié
include 'index.php';
}
elseif (($log==1)&&($pass==0))
{
echo"mot de passe incorrect";
session_destroy();
include "connexion.php";
}
elseif (($log==0)&&($pass==1))
{
echo"login incorrect";
session_destroy();
include "connexion.php";
}
elseif (($log==0)&&($pass==0))
{
echo"login et mot de passe incorrects";
include "connexion.php";
}
mysql_close($db);
?>
Je ne suis pas u pro en php mais je pense comprendre le principe.
J'ai les erreurs banales de sessions mais que je n'arrive pas à résoudre en supprimant le session_start de l'une ou l'autre des 2 pages ou en tentant des if pour voir si le user est déjà loggé !!
Voici l'erreur que j'obtiens avec les 2 pages que je vous ai donné:
Notice: A session had already been started - ignoring session_start() in c:\program files\easyphp1-8\www\immobay4\index.php on line 2
Je comprend bien que c'est parceque j'ai déjà une session d'ouverte mais si je supprimme le session_start de la page index, je n'arrive pas à accéder à ma page protégée dont le code est le suivant :
Code:
<?php
if (($logOK=true)&& (isset($_SESSION['login']))&&(isset($_GET['page'])))
{
echo $_SESSION['login'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
</head>
<body>
<?php echo ?>"Bienvenue sur la page protégée";
<?php
}
else
{
include "connexion.php";
}
?>
</body>
</html>
Si quelqu'un peut m'aider, c'est super sympa.
D'avance merci.
Jhon

