Bonjour tout le monde!!
Voila le problème auquel je suis confronté!
Je suis en traind e me remettre au Pho et je me fais un petit truc!
J'ai un index qui si aucune action n'est selectionné (donc en gros si c'est l'arrivée d'une personne sur le site) renvoie sur une page d'authentification log/mdp!
Quand j'arrive sur cette page d'authentification j'entre mes log & mdp et normalement je fais la verification par un fichier auth.php, apres je vérifie si la session est bonne dans un fichier verif_log et normalement apres si tout va bien je me redirige vars la page index.php?action=accueil!
Jusque la ok, mais le probleme c'est que je n'arrive jamais a aller sur cette foutue page d'index avec accueil comme action!!
il me dit qu'il ne peux pas me redirigé vers la page index avec accueil comme action.
Je vous mets les différents codes des différentes pages si qqun pouvait m'aider car la j'ai attaqué les poigntes a force de me bouffer les doigts...
page login:
<?php
$erreur[0]="pas de login !";
$erreur[1]="pas de mdp !";
$erreur[2]="le mot de passe et le login ne correspondent pas !";
require_once("include/config.inc.php");//fichier de configuration
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title><?php echo $titre_page['login']; ?></title>
<link href="site/style/login.css" rel="stylesheet" type="text/css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
</head>
<body>
<div id="formnav">
<form action="include/auth.php" method="POST">
<label class="legendeformtop">Nom d'utilisateur : <input name="pseudo" type="text" class="formtop" id="pseudo" /></label>
<label class="legendeformtop">Mot de passe : <input name="mdp" type="text" class="formtop" id="mdp" /></label>
<input name="Submit" type="submit" class="aspectbouton" value="OK">
</form>
</div>
</body>
</html>
Page auth.php:
<?php
include("conn_mysql.inc.php");
//Fonction de vérification de la cohérence entre login & mdp
function VerifLogin($login,$md5)
{
//On se connecte à la base
$link = connect_bdd();
//On selectionnne la base
mysql_select_db ("tests", $link);
//On verifie que les login et mdp sont valides
$requete = "SELECT * FROM administrateur WHERE login_admin = '".$login."' AND md5_admin='".$md5."';";
$result = mysql_query ($requete,$link);
//On ferme la connexion
mysql_close($link);
if(mysql_num_rows($result)<=0) return false;
else
{
$tab_authentification = mysql_fetch_array($result);
@session_start();
$_SESSION['id']=$tab_authentification['id_admin'];
$_SESSION['log']=$tab_authentification['login_admin'];
$_SESSION['mdp']=$tab_authentification['md5_admin'];
return true;
}
}
if(isset($_POST['pseudo']) && isset($_POST['mdp']))
{
/*echo "<pre>";
print_r($_POST);
echo "</pre>";*/
/*On vérifie si un "Login" (un pseudo) a été saisi dans le formulaire d'authentification.
Si ce n'est pas le cas un message est affiché et l'utilisateur est redirigé vers
la page d'authentification*/
if(!isset($_POST['pseudo']) || $_POST['pseudo']=="")
header("Location: ../login.php?erreur=0");
//Si un login est entré alors il est stocké dans la variable $pseudo
else
$pseudo = $_POST['pseudo'];
/*On vérifie si un MD5 a été entré ou s'il n'est pas vide.
Si ce n'est pas le cas un message est affiché et l'utilisateur est redirigé vers la page d'authentification*/
if(isset($_POST['mdp']) || $_POST['mdp']!="d41d8cd98f00b204e9800998ecf8427e")
//Le cryptage du mdp ne se fait pas en Javascript mais en Php
$mdp = md5($_POST['mdp']);
else
{
header("Location: ../login.php?erreur=1");
}
/*Enfin on vérifie l'identité de l'utilisateur grâce à la fonction VerifLogin()*/
if(VerifLogin($pseudo,$mdp))
{
/*Si l'accés est autorisé alors sera stockée dans la session:
1 - l'heure d'ouverture de session, ce qui permettra de mettre en
place un système de timeout càd que si l'utilisateur est inactif pendant un
certain temps sa session sera fermée*/
$_SESSION['last_access'] = time();
//2 - l'adresse IP de l'ordinateur se connectant
$_SESSION['ipaddr'] = $_SERVER['REMOTE_ADDR'];
//3 - le nom de l'utilisateur et son mot de passe
/*$_SESSION['pseudo'] = $pseudo;
$_SESSION['mdp'] = $mdp;*/
/*$nom=$_SESSION['nom'];
$prenom=$_SESSION['prenom'];
$civilite=$_SESSION['civilite']; */
header("Location: ../index.php?action=accueil" );
<--- ca doit etre par la que ca merde!!! }
else{
header("Location: ../login.php?erreur=2");
}
/*echo "<pre>";
print_r($_SESSION);
echo "</pre>";*/
//echo $_SERVER['PHP_SELF'];
}
else
{
session_start();
session_destroy();
unset($_SESSION);
header("Location: ../index.php?action=accueil");
}
?>
Page verfi_log:
<?php
session_start();
//Affectation d'une durée de session
$session_timeout = 1000;
//On verifie que les identifiants de session ont été créé
if(!isset($_SESSION['pseudo']) || !isset($_SESSION['mdp']) || !isset($_SESSION['last_access'])
|| !isset($_SESSION['ipaddr']) || !isset($_SESSION['admin']))
{
$_SESSION=array();
session_destroy();
header ("Location: login.php");
}
//Vérification de l'ancienneté de la session
if ( time()-$_SESSION['last_access'] > $session_timeout )
{
$_SESSION = array();
session_destroy();
header ("Location: login.php");
}
//Vérification de la concordance des adresses IP
if ($_SERVER['REMOTE_ADDR'] != $_SESSION['ipaddr'])
{
$_SESSION = array();
session_destroy();
header ("Location: login.php");
}
//Vérification de la validité login et du mdp
if(!VerifLogin($_SESSION['pseudo'],$_SESSION['mpd']))
{
header ("Location: login.php");
}
//Mise à jour de la variable last_access
$_SESSION['last_access']=time();
?>
et la page d'index a tout hasard:
<?php
/*---------- On interdit la mise en cache ----------*/
// Date du passé
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// toujours modifié
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
/*------------------------------------------------*/
//require_once("include/sql.inc.php");//Requetes SQL
require_once("include/verif_log.php");//variables de session
require_once("include/config.inc.php");//fichier de configuration
?>
<?php
//Si aucune action définie -> on affiche la page de login
if(isset($_GET['action'])) $action = $_GET['action']; else header("Location: login.php"); // $action="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>
<title>Chez Niko : <?php echo $titre_page[$action]; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!--<link rel="stylesheet" href="CSS/client_css.css" type="text/css" />-->
<link rel="stylesheet" href="CSS/admin_css.css" type="text/css" />
<script type="text/javascript" src="js/test-formulaire.js"></script>
</head>
<body>
<a href="include/deconnexion.php">Déconnexion</a>
<h1><?php echo $titre[$action]; ?></h1>
<!-- Insertion de la bannière -->
<div id="banniere"><?php //require($url['menu']); ?></div>
<div id="contenu">
<?php
//if(isset($_POST['action'])) $action=$_POST['action']; else $action="";
//Si aucune action définie -> on affiche l'accueil
//if(isset($_GET['action'])) $action = $_GET['action']; else $action="accueil";
//Si action non définie ou fichier inexistant -> on affiche une erreur, sinon on affiche la page demandée.
if(!isset($url[$action])) echo "<span class=\"message_rouge\">".$message[6]." : ".$message[7]."</span>";
else {
if(!include($url[$action])) echo "<span class=\"message_rouge\">".$message[6]." '".$url[$action]."' : ".$message[8]."</span>";
}
?>
</div>
<div class="pied_page">
<a id="mail" href="mailto:<?php// echo $tab_mail[0]; ?>" >Me Contacter</a> <a href="login.php" >2006 - Copyright </a><br />
</div>
</body>
</html>
Merci beaucoup de votre aide car la j'en ai besoin!!
Niko14