cs_chapata
Messages postés214Date d'inscriptionmercredi 2 février 2005StatutMembreDernière intervention 9 avril 2010
-
19 juil. 2007 à 10:00
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
19 juil. 2007 à 21:45
Hello ,
voilà, j'ai un fichier "secure.php" qui vérifie s'il y a session ouverte sur le login, sinon redirige vers la page de login.php
<?php
// On vérifie si l'URL est passée en LOG OFF
if
(isset($_GET[
'id']) = =
'logoff'){
session_start();
session_unset();
session_destroy();
}
// On prolonge la session en l'ouvrant
session_start();
// On teste si la variable de session existe et contient une valeur
if
(empty($_SESSION[
'session_id'])) {
// garde en mémoire l'URL d'accès''
$URL =
$_SERVER[
'PHP_SELF'];
// Si session inexistante ou nulle, on redirige vers le formulaire de login avec l'URL en varaible
header(
'Location: login.php');
exit();
}
?>Je voudrais récupérer la varaible $URL pour que je puisse la passer et arrivée sur la page que l'utlisateur voulait initialement.
***** code login.php *****
<?PHP
//débute le calcul du temps d'execution
$btime= microtime();
//si destruction de la session pour le logoff par URL
require(
"include/mysql.config.php");
//crée une variable : ErrMessage
$errorMessage = '';
// si envoi connection...
if
(isset($_POST[
'login'])) {
// si l'identifiant et le mot de passe différents de vide ...
if(!empty(
$_POST[
'login']) && !empty(
$_POST[
'pass'])) {
// si requête SQL est valide alors ...
$sql = mysql_query(
'SELECT * FROM utilisateur WHERE login = "'.
$_POST[
'login'].
'"');
if (!
$sql) {
echo mysql_error();
exit;
}
// ... vérification du login de connection
$nb = mysql_num_rows(
$sql);
if (
$nb = =
'0') {
// ... vérification du mot de passe
while (
$data = mysql_fetch_array(
$sql)) {
if (
$data[
'pass'] !=
$_POST[
'pass']) {
$errorMessage =
'Mot de passe incorrect !';
} else {
// ... on ouvre la session
session_start();
// ... on enregistre le login + id + profil dans les variables de session*/
$_SESSION[
'session_id'] =
$data[
'id'];
$_SESSION[
'session_login'] =
$_POST[
'login'];
$_SESSION[
'session_profil'] =
$data[
'profil'];
$_SESSION[
'session_nom'] =
$data[
'nom'];
$_SESSION[
'session_prenom'] =
$data[
'prenom'];
$_SESSION[
'session_smiley'] =
$data[
'smiley'];
$_SESSION[
'session_mail'] =
$data[
'email'];
// On redirige vers le fichier ou répertoire voulu
if (isset($URL
)){
if (!empty($URL)){
header('Location: '.$URL.'');
}
} else {
header('Location: main.php'
);
}
exit();
}
}
}
}else{
$errorMessage =
'Identifiant ou mot de passe obligatoire !';
}
}
Dns "ma_page_visitée.php" je require "secure.php" et include d'autre fichier.php.
Si au contraire, il s'est identifié avant, la page s'affiche avec toutes ces variable de sessions ... le menu, les entetes etc ...
Donc si je fais include() au lieu de header(), ca fait tout planter, car cela signifirai qu'il est autentifié ... alors que ce n'est pas le cas. Et les variable de sessions ne sont pas reconnu.
Il faut réellement que je trouve le moyen de stocker une variable URL que je refais passer dans ma page login.php s'il n'est pas identifié.