A voir également:
- [PHP]Problème de "Variables de sessions"
- Easy php - Télécharger - Divers Web & Internet
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? ✓ - Forum Windows 7
- Teamviewer code de session expiré ✓ - Forum Windows XP
- Estelle vient de verrouiller sa session d’ordinateur. que peut-on dire ? ✓ - Forum Windows
13 réponses
Utilisateur anonyme
29 janv. 2008 à 11:03
29 janv. 2008 à 11:03
Bonjour,
Cela semble normal puisque dans index on initialise la variable de session avec un POST qui est vide qand on reclique sur index.php
il me semble alors qu'il faut mettre :
if (!isset($_SESSION['mail'])) $_SESSION['mail'] = $_POST['mail'];
Cela semble normal puisque dans index on initialise la variable de session avec un POST qui est vide qand on reclique sur index.php
il me semble alors qu'il faut mettre :
if (!isset($_SESSION['mail'])) $_SESSION['mail'] = $_POST['mail'];
merci pour ta réponse giheller :)
Cependant avec cela, il n'y a plus de sécurité, je m'expliqe :
if (!isset($_SESSION['mail'])) $_SESSION['mail'] = $_POST['mail'];
if ($_SESSION['mail']à
{
affichage de la page
}
else
{
pas d'affichage
}
si j'ajoute ton code, il n'y a plus de filtrage d'accès sur la page index.php ...
Cependant avec cela, il n'y a plus de sécurité, je m'expliqe :
if (!isset($_SESSION['mail'])) $_SESSION['mail'] = $_POST['mail'];
if ($_SESSION['mail']à
{
affichage de la page
}
else
{
pas d'affichage
}
si j'ajoute ton code, il n'y a plus de filtrage d'accès sur la page index.php ...
Sh@tter
Messages postés
157
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009
46
29 janv. 2008 à 11:43
29 janv. 2008 à 11:43
Tu ne devrais pas déjà mettre :
<?php
if ($_SESSION['mail']==NULL)
{
?>
<!-- affichage lorsque personne n'est connecté -->
<?php
}
if ($_SESSION['mail']!=NULL)
{
?>
<!-- affichage pour une personne qui est connecté -->
<?php
}
?>
Et aussi tu n'as pas mis de point virgule à : $_SESSION['mail'] = $_POST['mail']
Donc : $_SESSION['mail'] = $_POST['mail'] ;
<?php
if ($_SESSION['mail']==NULL)
{
?>
<!-- affichage lorsque personne n'est connecté -->
<?php
}
if ($_SESSION['mail']!=NULL)
{
?>
<!-- affichage pour une personne qui est connecté -->
<?php
}
?>
Et aussi tu n'as pas mis de point virgule à : $_SESSION['mail'] = $_POST['mail']
Donc : $_SESSION['mail'] = $_POST['mail'] ;
Toujours le même problème avec cette solution,
une fois logué, on peut parcourir les pages à sa guise mais si l'on vient à recliquer sur la page "index.php" ... ca ne fonctionne plus, le $_SESSION['mail'] passe à nul donc plus aucun affichage...
une fois logué, on peut parcourir les pages à sa guise mais si l'on vient à recliquer sur la page "index.php" ... ca ne fonctionne plus, le $_SESSION['mail'] passe à nul donc plus aucun affichage...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mon code :
<?php session start();
$_SESSION['mail'] = $_POST['mail'];
if($_SESSION['mail'] == NULL)
{
echo ' ';
}
if($_SESSION['mail']!=NULL)
{
affichage de la page
}
<?php session start();
$_SESSION['mail'] = $_POST['mail'];
if($_SESSION['mail'] == NULL)
{
echo ' ';
}
if($_SESSION['mail']!=NULL)
{
affichage de la page
}
Sh@tter
Messages postés
157
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009
46
29 janv. 2008 à 11:55
29 janv. 2008 à 11:55
Donc c'est qu'il y a une partie de code qui pose probleme dans la page index.php. C'est dans cette page là que tu as ton script de connexion?
Fais voir le début du code au cas où ce sera plus simple pour voir le problème.
Fais voir le début du code au cas où ce sera plus simple pour voir le problème.
mes autre pages contiennent seulement
<? session_start();
if ($_SESSION['mail'])
{
affichage
}
else
{
pas d'affichage
}
<? session_start();
if ($_SESSION['mail'])
{
affichage
}
else
{
pas d'affichage
}
Sh@tter
Messages postés
157
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009
46
29 janv. 2008 à 12:00
29 janv. 2008 à 12:00
Pour cette partie il n'y a pas de problème...
Mais alors c'est dans cette page que tu fais le formulaire de connexion? Parce que par exemple si tu n'as pas fais de :
if (isset ($_POST['mail']) && isset($_POST['pass']))
, ça peut poser problème.
De plus un conseil avant de faire
$_SESSION['mail'] = $_POST['mail'];
fais déjà un $mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
et après le $_SESSION['mail'] = $mail;
Pour des raisons de sécurité^^
Mais alors c'est dans cette page que tu fais le formulaire de connexion? Parce que par exemple si tu n'as pas fais de :
if (isset ($_POST['mail']) && isset($_POST['pass']))
, ça peut poser problème.
De plus un conseil avant de faire
$_SESSION['mail'] = $_POST['mail'];
fais déjà un $mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
et après le $_SESSION['mail'] = $mail;
Pour des raisons de sécurité^^
merci pour ces conseil :)
mais je peux t'assurer que les variables mail et pass parviennent très bien via la balise <form> à travers des input type="hidden"
j'ai fait un "echo" des 2 variables je les recois bien pourtant c'est pour cela que je ne comprends pas trop le soucy que je rencontre ^^
je suis ouvert à toutes propositions, je viendrai mettre à jour l'évolution de mon code si je trouve une solution...
mais je peux t'assurer que les variables mail et pass parviennent très bien via la balise <form> à travers des input type="hidden"
j'ai fait un "echo" des 2 variables je les recois bien pourtant c'est pour cela que je ne comprends pas trop le soucy que je rencontre ^^
je suis ouvert à toutes propositions, je viendrai mettre à jour l'évolution de mon code si je trouve une solution...
Sh@tter
Messages postés
157
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009
46
29 janv. 2008 à 12:07
29 janv. 2008 à 12:07
Comme tu veux, tu aurais dû tout de même filer les sources de connexion ça aurait aider, parce que trouver une solution sans voir le code... mais bon.
A +
A +
la solution fournie au début par giheller devrait fonctionner, et elle conserve bien la sécurité initiale:
<?php
session_start();
if (!isset($_SESSION['mail'])) //si la variable de session n'existe pas encore
{
$_SESSION['mail'] = $_POST['mail']; /*alors on la récupère dans les données de formulaire envoyées. mais on ne récupère rien si pas de données envoyées. donc $_SESSION['mail'] n'existe toujours pas si le visiteur n'est pas identifié */
}
if ($_SESSION['mail']) //si des données de formulaire ont effectivement été récupérées
{
affichage de la page
}
else
{
pas d'affichage
}
?>
sans oublier le conseil de sécurité de Sh@tter ^^
bien sûr tout ça ne vaut que si tu as fait une vérif sur le mail et le pass en bdd avant d'envoyer tes données par post ('videmment tu as du le faire, mais comme tu ne donnes pas le code du formulaire... ^^' )
<?php
session_start();
if (!isset($_SESSION['mail'])) //si la variable de session n'existe pas encore
{
$_SESSION['mail'] = $_POST['mail']; /*alors on la récupère dans les données de formulaire envoyées. mais on ne récupère rien si pas de données envoyées. donc $_SESSION['mail'] n'existe toujours pas si le visiteur n'est pas identifié */
}
if ($_SESSION['mail']) //si des données de formulaire ont effectivement été récupérées
{
affichage de la page
}
else
{
pas d'affichage
}
?>
sans oublier le conseil de sécurité de Sh@tter ^^
bien sûr tout ça ne vaut que si tu as fait une vérif sur le mail et le pass en bdd avant d'envoyer tes données par post ('videmment tu as du le faire, mais comme tu ne donnes pas le code du formulaire... ^^' )