le code :
<FORM METHOD="POST" ACTION="">
Site : Extranet</FONT><br>
Login: <INPUT TYPE="Text" NAME="login" SIZE="14" VALUE=""><br>
Mot de passe: <INPUT TYPE="password" NAME="password" SIZE="14" VALUE=""><br>
<INPUT TYPE="submit" VALUE="Valider" NAME="Validation">
</FORM>
<?php
session_start();
if((isset($_POST['login']))&&(isset($_POST['password'])))
{
// Variable :
$login = $_POST['login'];
$password = $_POST['password'];
// Connection SQL :
$db = mysql_connect('localhost', 'root', '');
mysql_select_db('extranet',$db);
//Requete :
$sql_login = "SELECT * FROM extranet WHERE Login='$login'";
$req_login = mysql_query($sql_login);
//Validation :
if($infos = mysql_fetch_array($req_login))
{
if($password==$infos['mdp'])
{
// Login et password bon :
$_SESSION['login'] = $login; // Création de la variable de session ['login']
header('Location:index.php'); // redirection sur l'affichage !
}
else
{
// Mot de pass Faux !
echo 'Login impossible, veuillez verifier votre Login ou Password ';
}
}
else
{
// Le Login N'existe pas :
echo 'Login impossible, veuillez verifier votre Login ou Password ';
}
}
// else
//{
// Pas de Variable de Login - Redirection :
// header('Location:index.php');
//}
?>
ce code renvoi vers cette page apres une bonne authentification:
session_start();
if(isset($_SESSION['login']))
{
echo 'Vous êtes logger !<br>';
echo 'Login : '.$_SESSION['login'];
}else{
echo 'Vous n\'ête pas logger<br>';
echo 'Vous pouvez vous logger ici <a href="formlogin.php">Login[/url]';
}
// on affiche un lien pour terminer une session
print '<a href="logout.php">Détruire la session[/url]<br>';
et enfin le logout.php c est:
session_start();// on démarre la session
session_unset(); // on efface toutes les variables de session
session_destroy(); // on detruit la session en cours.
header("location: extranet.php") ;
un code tout simple pour s authentifier…et en fonction du login, l utilisateur est renvoye sur un lien (le lien est dans la base et est du type http://www.xxxxxxx.fr)
le pb:
- l identification ne marche pas (et franchement je vois pas)
si qq1 aussi pouvait me dire comment je peux reoriente l utilisateur au bout de 5 ou 10s…
merci
[cpp]$sql_recherche = “SELECT * FROM extranet WHERE Login LIKE ‘$Login’”;[/cpp]
C’est pas super .
donc :
[cpp]$sql_recherche = “SELECT * FROM extranet
WHERE Login
=’$Login’”;[/cpp]
ca a rien a voir avec ta question mais bon …
Edit : En fait ca y repond peut etre …
-
Tu es sur que ton champ est bien ‘Login’ et pas ‘login’ ?
Pareil pour le POST , c’est bien ‘Login’ que tu as mis dans ton formulaire ?
Fait des affichage de variable dans la fonction en enlevant les header pour voir ou c’est qu’il marche pas …
c bon tout marche!!
en fait le pb que j avais…d avoir oublie le while($data = mysql_fetch_array($req))
en fait sans cette phrase il ne comprenait pas le “data”
edit: je deviens bon je crois : j avais modifie comme tu m as dit ma requete avt que je lise ton post!!! enfin faut pas s enflammer
Lol, je suis deg , j’ai meme pas vu qu’il manquais kk chose mdr
a votre avis ma solution est viable pour un extranet?
parfait alors plus qu a regler ce pb de sessions pour assurer qd meme une meilleure securite et tout ira bien
Quel probleme de session ?
cf la mise a jour de mon 1er topic
edit: si qq1 veut me recuperer mon code pas de pb…ms qu il evite toutes les sessions ca ca marche pas
- session_register() ne marche pas avec les variable en Global OFF !
- session_start() doit etre au debut de ta page , tu n’a pas a la metre dans la fonction. les session sont global , comme les connection SQL .
- Pour le test de présence de la variable , tu peut utilisé if(isset($_SESSION[‘variable’]))
- Avec les variable global OFF , tu peut pas recupére une variable de session rien qu’avec sont nom ( $variable ) mais en utilisans le tableau ou elle sont stoqué , ( comme POST, GET , ou bien SERVER )
ex :
[cpp]
<?php
session_start();
if(isset($_SESSION['login'])){
echo 'Votre Login est : '.$_SESSION['login'];}
else{
echo 'Vous n\'ete pas logger';}
?>
[/cpp]
voili voilou
voila jai modifie mon code
session_start();// on démarre la session
if(isset($_SESSION['Login']) && (!session_is_registered($_SESSION['Login'])))
{
print 'Votre login est '.$_SESSION['Login'];
}
else{
echo 'Vous n\'ete pas logger';
// On affiche ce message d'erreur
echo "<center>Vous devez vous identifier pour accéder à cette page</center>";
// On affiche le formulaire d'identification
include ("extranet.php");
}
// on affiche un lien pour terminer une session
print '<a href="logout.php">Détruire la session[/url]<br>';
(j ai modifie que la 2eme partie de mon code en fait, la ou il y avait les erreurs)
et voici mes nouvelles erreurs:
Vous n’ete pas logger
Vous devez vous identifier pour accéder à cette page
Site : Extranet
Login:
Mot de passe:
et je peux me logger tant que je veux , il me demandera toujours de me logguer…et ce a l infini
pour ma page de depart , j ai voulu deplacer le session_open(), ms il m a repondu que de tte facon il y avait deja une sessions ouverte…
[cpp]if(isset($_SESSION[‘Login’]) && (!session_is_registered($_SESSION[‘Login’])))[/cpp]
- Pk testez 2 fois la meme chose ?
- session_is_registered($_SESSION[‘Login’]) c’est pas possbile carsession_is_registered() ne test que des variable sans le $.
- if(isset($_SESSION[‘Login’])) suffi
bon jai virer la partie qui etait en trop…
ms je me loggue tjrs pas comme il faut…
" Vous n’ete pas logger
Vous devez vous identifier pour accéder à cette page "
etc etc etc
snif, qu es ce qu il est bete, pourtant je me loggue
fait un print_r($_SESSION);
pour voir si il a bien ta variable …
qd je fais ce print_r machin il me repond : Array ()
Si il ne te réponds qu’array, c’est que $_SESSION est vide.