Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/09/2005, 17h10   #1
HNT
Membre confirmé
 
Avatar de HNT
 
Étudiant
Inscription : juin 2005
Messages : 448
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 448
Points : 256
Points : 256
Envoyer un message via MSN à HNT
Par défaut [Configuration] Problème avec un script de login utilisant une session

J'ai 2 scripts php utilisant une session, le premier est la page permettant de se connecter et le second est inclu dans chaque page protégée. Il fonctionne très bien mais le problème est que si je ferme mon borwser et que je me reconnecte, il peut (le browser) aller directement aux pages protégée, ma session est censée etre détruite lors de la fermeture du browser, je pense que ce n'est pas le cas (le responsable du serveur à peut-etre changé php.ini), ca m'embete car si je marque session_destroy(); dans les pages à protégé ca ne marchera pas comme je veut car la variable sera détruite et je devrai me reconnecté pour acceder aux autres pages protégés. Je ne veut devoir m'autentifier qu'une seule fois!!!

Est-ce que quelq'un connait un moyen pour forcer la destruction de la session mais uniquement lors de la fermeture du browser?

Mon code:

Pour le login:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?
 
echo ("<br><br><center><font size='+2'><u>Control Panel</u></font><br><br><br>");
echo ("<link rel='stylesheet' href='administration/style.css' type='text/css'>");
echo ("<table border='1' bordercolor='#FFFFFF'><tr><td colspan='2' align='center'><font size='+1'>Connexion</font></td></tr>");
echo ("<tr><td><form action='index.php3' method='post'>Identifiant</td><td><input type='text' name='log' size='20' maxlength='20'></td></tr>");
echo ("<tr><td>Mot de passe</td><td><input type='password' name='pass' size='20' maxlength'20'></td></tr>");
echo ("<tr><td colspan='2' align='center'><input type='submit' name='submit' value='Connexion'></td></tr></center>");
 
 
$jlog='henry-nicolas';
$jpass='21121987';
 
$state= false;
 
$log=$_POST['log'];
$pass=$_POST['pass'];
$submit=$_POST['submit'];
 
 
if ($submit == true)
{
	if ( $log != $jlog || $pass!= $jpass)
  {
		echo ('Votre mot de passe ou votre identifiant est incorrect');
		echo ("<script language='javascript'>window.location='index.php3';</script>");
		exit;
  }
	else if ($log == $jlog && $pass == $jpass)
  {
		echo ("<script language='javascript'>window.location='administration/index.php';</script>");
    $state = true;
    session_start();
    session_register("state");
		exit; 
  }
	else
  {
		echo("Erreur, veuillez recommenc&eacute; svp...");
		echo ("<script language='javascript'>window.location='index.php3';</script>");
		exit;
  }
}
?>
Dans les pages à protégé:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
	if(!session_is_registered("state")) 
	{
		if (state != true)
		{
			echo("<script language='javascript'>window.location='../index.php3'</script>;");
		}
	}
	else
	{
		echo("<script language='javascript'>window.location='../index.php3'</script>;");
	}
 
	?>
Merci d'avance...
HNT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2005, 17h24   #2
Jep
Invité régulier
 
Inscription : septembre 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 5
Points : 5
Points : 5
Avant de t'enerver commance par vérifier la configuration des sessions sur ton serveur en regardant ton phpinfo et en corrigeant ce qui est necessaire en lisant la doc PHP

> http://php.net/session

Jep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2005, 19h56   #3
HNT
Membre confirmé
 
Avatar de HNT
 
Étudiant
Inscription : juin 2005
Messages : 448
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 448
Points : 256
Points : 256
Envoyer un message via MSN à HNT
Ben normallement ca devrait marché...mon php.ini a la config de base et j'ai un peut modifier mon code, l'effet obtenu est une redirection continuelle vers le fichier index.php3, autrement-dit peut-importe ce que j'écris comme login et comme pass je suis tjs rediriger vers index.php3, je crois que le pb viens de mon code et non de la config du serveur.
Le code: Index.php3
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?
session_start();
 
echo ("<br><br><center><font size='+2'><u>Control Panel</u></font><br><br><br>");
echo ("<link rel='stylesheet' href='administration/style.css' type='text/css'>");
echo ("<table border='1' bordercolor='#FFFFFF'><tr><td colspan='2' align='center'><font size='+1'>Connexion</font></td></tr>");
echo ("<tr><td><form action='index.php3' method='post'>Identifiant</td><td><input type='text' name='log' size='20' maxlength='20'></td></tr>");
echo ("<tr><td>Mot de passe</td><td><input type='password' name='pass' size='20' maxlength'20'></td></tr>");
echo ("<tr><td colspan='2' align='center'><input type='submit' name='submit' value='Connexion'></td></tr></center>");
 
 
$jlog='henry-nicolas';
$jpass='21121987';
 
$state= false;
 
$log=$_POST['log'];
$pass=$_POST['pass'];
$submit=$_POST['submit'];
 
 
if ($submit == true)
{
	if ( $log != $jlog || $pass!= $jpass)
  {
		echo ('Votre mot de passe ou votre identifiant est incorrect');
		echo ("<script language='javascript'>window.location='index.php3';</script>");
		exit;
  }
	else if ($log == $jlog && $pass == $jpass)
  {
		echo ("<script language='javascript'>window.location='administration/index.php';</script>");
		$state= true;
    session_register("state");
		exit; 
  }
	else
  {
		echo("Erreur, veuillez recommenc&eacute; svp...");
		echo ("<script language='javascript'>window.location='index.php3';</script>");
		exit;
  }
}
?>
Et la page protégé (index.php)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
	session_start();
	if(!session_is_registered('state')) 
	{
    if (state != true)
		{		
			echo("<script language='javascript'>window.location='../index.php3'</script>;");
		}
	}
	else
	{
		echo("<script language='javascript'>window.location='../index.php3'</script>;");
	}
 
	?>
Le fait d'aller sur php.net ne m'a pas aider vraiment...ce qui serait super c'est que quelqu'un me dise ou mon code foire et ce qui ne vas pas...
HNT est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h06.


 
 
 
 
Partenaires

Hébergement Web