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 02/05/2006, 12h53   #1
Invité de passage
 
Inscription : février 2006
Messages : 31
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 31
Points : 1
Points : 1
Par défaut [Sécurité] pb connection membre

Bonjour
J'ai toujours un soucis lorsqu'un membre se connecte sur mon site.
"votre connexion ou login a expiré"
Voici le code:
<?
$id=$HTTP_SESSION_VARS["login"];
$id=intval($id);
@$sql=mysql_query("SELECT * FROM users WHERE fid=$id");
if(!mysql_num_rows($sql))
{
echo"<b><font size=4 color=red>&nbsp; &nbsp; Votre connexion ou login a expir&eacute; !</b></font><p>SVP cliquez sur \"BACK\" pour recommencer...";
exit;
}
else
{
$arr=mysql_fetch_array($sql);
extract($arr);
if($accstatus=='suspended')
{
echo"<center><b><font color=red>Ce compte a &eacute;t&eacute; suspendu. Prenez contact avec l'admin pour plus de d&eacute;tails (page contact)</font></center>"; exit();
}
$payed=$fpayed;
}

//end if


if($action=='Supprimer mon compte')
{
@$sql=mysql_query("SELECT * FROM users WHERE fid=$id AND fpassword='$password'");
if(!mysql_num_rows($sql))
{
echo"<b><font size=4 color=red>&nbsp &nbsp INCORRECT LOGIN!</b></font><p>&nbsp; &nbsp; SVP cliquez sur 'RETOUR' pour recommencer..."; sessiion_destroy();
exit;
}
else
{

@$sql=mysql_query("DELETE FROM users WHERE fid=$id AND fpassword='$password'");
if(mysql_affected_rows())
echo"<center><b>Votre compte a &eacute;t&eacute; suprim&eacute; !</b></center>";
exit;

}
}

?>
warsez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 13h31   #2
Membre habitué
 
Avatar de nesbla
 
Inscription : mai 2002
Messages : 220
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 220
Points : 113
Points : 113
Bonjour,

Es-tu sur que tu récupères une valeur dans ta variable $id (provenant de la session).

Ne faut-il pas plutot utiliser :

Code :
$id=$_SESSION["login"];
(ça dépends de ta version de php je crois mais je peux me tromper).
__________________
··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !
nesbla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 14h25   #3
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
oui, si c'est une version récente, il faut utiliser session_start() et $_SESSION
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 16h39   #4
Invité de passage
 
Inscription : février 2006
Messages : 31
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 31
Points : 1
Points : 1
Ok ca marche en changeant la ligne de code.
Par contre,une fois dans la section membre,j'ai deux messages erreur a deux endroits differents:

Warning: extract(): First argument should be an array in /home.3/w/o/r/worldtra/www/user.php on line 67
ligne 67:
extract
($arr);

Warning: extract(): First argument should be an array in /home.3/w/o/r/worldtra/www/userstats.php on line 637

ligne 637:
extract(mysql_fetch_array($sq));





warsez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 16h48   #5
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
réflexe : vérifier ce qu'il y a dans $sql, demander les erreurs mysql, ne pas les masquer.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 16h52   #6
Invité de passage
 
Inscription : février 2006
Messages : 31
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 31
Points : 1
Points : 1
désolé je ne comprend pas ta réponse....
warsez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 16h55   #7
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par warsez
désolé je ne comprend pas ta réponse....
PHP te dit que les opérations sur des objets rendus par mysql (si j'ai bien compris) posent problème.
Détaille le code correspondant, de manière à afficher toutes les erreurs potentielles, et à faire toutes les vérifications qui s'imposent (genre la ressource rendue par mysql n'est pas vide, etc)
http://www.developpez.net/forums/sho...63&postcount=2
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 16h59   #8
Invité de passage
 
Inscription : février 2006
Messages : 31
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 31
Points : 1
Points : 1
voici pour la ligne 67:
<?
$id
=$_SESSION["login"];
$id
=intval($id);
@$sql=mysql_query("SELECT * FROM users WHERE fid=$id")or die (mysql_error());
if(mysql_num_rows($sql))
{
echo"<b><font size=4 color=red>&nbsp; &nbsp; Votre connexion ou login a expiré !</b></font><p>SVP cliquez sur \"BACK\" pour recommencer...";
exit
;
}
else
{
$arr
=mysql_fetch_array($sql);
extract
($arr);
if($accstatus=='suspended')
{
echo"<center><b><font color=red>Ce compte a été suspendu. Prenez contact avec l'admin pour plus de détails (page contact)</font></center>"; exit();
}
$payed
=$fpayed;
}

//end if

if($action=='Supprimer mon compte')
{
@$sql=mysql_query("SELECT * FROM users WHERE fid=$id AND fpassword='$password'");
if(!mysql_num_rows($sql))
{
echo"<b><font size=4 color=red>&nbsp &nbsp INCORRECT LOGIN!</b></font><p>&nbsp; &nbsp; SVP cliquez sur 'RETOUR' pour recommencer..."; sessiion_destroy();
exit
;
}
else
{

@$sql=mysql_query("DELETE FROM users WHERE fid=$id AND fpassword='$password'");
if(mysql_affected_rows())
echo"<center><b>Votre compte a été suprimé !</b></center>";
exit
;

}
}

?>
warsez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 17h05   #9
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Essaye d'afficher $arr pour voir ce qu'il y a dedans ?

Utilise les balises [code] pour tes posts.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 17h40   #10
Invité de passage
 
Inscription : février 2006
Messages : 31
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 31
Points : 1
Points : 1
ok mais c'est quoi ca $arr ?
Je trouve ça ou?
warsez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 17h44   #11
Membre confirmé
 
Inscription : août 2003
Messages : 225
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2003
Messages : 225
Points : 225
Points : 225
Envoyer un message via MSN à Steph82
Citation:
Envoyé par warsez
ok mais c'est quoi ca $arr ?
Je trouve ça ou?
Code :
1
2
 
$arr=mysql_fetch_array($sql);
C'est toi qui est fait le code ?
Steph82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 17h49   #12
Invité de passage
 
Inscription : février 2006
Messages : 31
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 31
Points : 1
Points : 1
je suis novice a ce niveau desolé
warsez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 17h52   #13
Membre confirmé
 
Inscription : août 2003
Messages : 225
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2003
Messages : 225
Points : 225
Points : 225
Envoyer un message via MSN à Steph82
Pas besoin de s'excuser
Steph82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 17h55   #14
Invité de passage
 
Inscription : février 2006
Messages : 31
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 31
Points : 1
Points : 1
que puis je faire pour vous aider?
warsez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 18h04   #15
Invité de passage
 
Inscription : février 2006
Messages : 31
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 31
Points : 1
Points : 1
je dois m'absenter une heure ou deux...
warsez est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 18h15   #16
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par warsez
que puis je faire pour vous aider?
Ben, c'est toi qui as des soucis, non ?
Citation:
Envoyé par warsez
je dois m'absenter une heure ou deux...
Fais, fais... Ya pas d'exigence d'assiduité ici...
Eusebius 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 03h29.


 
 
 
 
Partenaires

Hébergement Web