Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 01/02/2008, 12h03   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 9
Points : 2
Points : 2
Par défaut [Sécurité] Session qui ne renvoie rien

Bonjour a tous,
Je poste ici pour essayer un problème qu'il m'a été impossible a résoudre depuis quelques jours. Je procède à la migration d'un intranet de NT4 vers linux, tout se passe bien sauf une maudite variable de session ( identifiant et mot de passe).

En gros, l'utilisateur arrive ici :
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
45
46
47
48
49
50
51
52
53
54
 
<?php
session_start();
   .
   blablabla
   .
 
<FORM name="identification" method=post action="/include/connexion.php">
 
        <TABLE class="tableListeChamps" "width=100%">
 
               <TR>
 
                         <TD width="50%">Vos initiales :</TD>
 
                             <TD width="50%"><input type="text" size="10" name="login"></TD>
 
               </TR>
 
               <TR>
 
                            <TD width="50%">Votre mot de passe :</TD>
 
                            <TD width="50%"><input type="password" size="10" name="password_user"></TD>
 
 
               </TR>
 
        </table>
 
 
   <input type="hidden" name=path value="<? echo $REQUEST_URI ?>">
 
           <table width=100% class="tableForm">
 
                    <TR>
                             <TD colspan="2"><HR size=1 color="#000000"></TD>
                    </TR>
 
                    <TR>
 
                          <TD width="50%" align="center"><input type="submit" value="Connecter" class="tableListeBouton"></TD>
 
                           <TD width="50%" align="center"><input type="reset" value="Annuler" class="tableListeBouton"></TD>
 
                      </TR>
 
               </table>
 
 </FORM>
 
  .
   blablabla
  .
Mes deux variables sensées être envoyées sont donc 'login' et 'password_user'
A l'envoi des informations, on est redirigé vers une page 'connexion.php' :

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
 
<?
include (dirname(__FILE__)."/include.php") ;
 
 
 
$erreur = "" ;
 
 
 
if ($login=="" || $password_user=="")
 
{
 
	$erreur = "La saisie des initiales et du mot de passe est obligatoire" ;
 
}
 
else
 
{
 
	$req = "	select 	ID_USER 
 
				from 	KR_USERS 
 
				where 	INITIALES_USER = '".strtoupper($login)."' 
 
				and 	PASSWORD_USER = '$password_user'" ;
 
 
 
	if ($res = submit($req))
 
	{
 
		if (pg_numrows($res) != 0)
 
		{
 
  .
   blablabla
   .
Bref, quoi que je rentre dans mes deux champs login et mot de passe, la page connexion me renvoie sans arrêt "La saisie des initiales et du mot de passe est obligatoire".

Je ne comprends donc pas pourquoi rien n'arrive sur cette page :s

ps : php5, base postgresql 8, connexion ok.
dans php.ini : session.save_path= "/var/www/sessions" et il me crée bien un fichier de type sess_dc5065468.... (mais vide :/)

toute aide serait la bienvenue parsque la je séche :'(

re ps : le site fonctionne très bien sous NT et est en prod.

Merci d'avance.
cando666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 12h21   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
D'apres ce que je vois dans ton code, tu ne vas pas chercher la velur du login et du mot de passe dans le tableau $_POST.
En fait c'est parce que ton serveur web sous NT4 doit avoir l'option register_globals a ON ce qui permet de transformer automatiquement dans ton script $_POST['login'] en $login sans que tu n'aies rien a faire.
Par contre cette solution est source de beaucoup de bugs et de trous de sécurité et est déconseillée et donc souvent désactivée par défaut.

Tu as donc deux possibilités : activer dans le php.ini l'option register_globals si tu ne veux pas modifier tes sources. Et sinon, si tu n'as pas acces au php.ini il faut au début de chacun de tes scripts avec des formulaires récupérer les données dans $_POST avant de les traiter.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 14h11   #3
Invité de passage
 
Inscription : juillet 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 9
Points : 2
Points : 2
Effectivement koopajah !! ca marche maintenant !!! Il fallait le savoir, j'orai du poster sur ce forum plus tôt , n'étant pas spécialisé dans le php.

Enorme merci
cando666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h34.


 
 
 
 
Partenaires

Hébergement Web