Le sessions en php
Fermé
MISS97200
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
5 mars 2008 à 13:29
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 - 5 mars 2008 à 18:02
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 - 5 mars 2008 à 18:02
A voir également:
- Le sessions en php
- Easy php - Télécharger - Divers Web & Internet
- Bouton php - Forum PHP
- Php?id=1 - Forum PHP
- Assistantd veut utiliser le trousseau session ✓ - Forum MacOS
- \R php ✓ - Forum PHP
10 réponses
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
430
5 mars 2008 à 13:36
5 mars 2008 à 13:36
bonjour,
ce lien te plairait ??
https://openclassrooms.com/fr/courses#ss_part_2
ce lien te plairait ??
https://openclassrooms.com/fr/courses#ss_part_2
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
5 mars 2008 à 13:38
5 mars 2008 à 13:38
Bonjour,
Voilà de quoi te rafraichir la mémoire :)
https://www.php.net/session_start
Voilà de quoi te rafraichir la mémoire :)
https://www.php.net/session_start
MISS97200
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
11
5 mars 2008 à 13:43
5 mars 2008 à 13:43
merci j'ai fait un truc mais je n'arrive pas à savoir comment faire ma requête après pour comparer ce qu'il y a dans mes sessions et ce qu'il y a dans ma base de donné. mais j'y arriverai grâce à tes précieux conseilles. ;)
MISS97200
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
11
5 mars 2008 à 15:04
5 mars 2008 à 15:04
j'ai fait un truc mais je n'arrive pas à m'en sortir, pouvez vous m'aideer s'il vous plaît, voici le code :
<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) )
{
if (isset($_POST['user']))
{
$uti = $_POST['login']; //variable du nom d'utilisateur
$motpass = md5($_POST['pass']); //variable du mot de passe crypté
mysql_select_db($database_dbmarchpub, $dbmarchpub);
$verif_query=sprintf("SELECT * FROM user WHERE user='$uti' AND mdp='$motpass'"); // requête sur la table user
$verif = mysql_query($verif_query, $dbmarchpub) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
if (isset($utilisateur))
{
$_SESSION['connexion'] = 'ok'
header("Location:accueil.php"); // redirection si OK
}
else
{
header("Location:index.php?erreur=login"); // redirection si utilisateur non reconnu
}
}
?>
merci de votre aide.
<?php require_once('connexion.php'); ?>
<?php session_start();
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
if (isset($_POST['valider']) )
{
if (isset($_POST['user']))
{
$uti = $_POST['login']; //variable du nom d'utilisateur
$motpass = md5($_POST['pass']); //variable du mot de passe crypté
mysql_select_db($database_dbmarchpub, $dbmarchpub);
$verif_query=sprintf("SELECT * FROM user WHERE user='$uti' AND mdp='$motpass'"); // requête sur la table user
$verif = mysql_query($verif_query, $dbmarchpub) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
if (isset($utilisateur))
{
$_SESSION['connexion'] = 'ok'
header("Location:accueil.php"); // redirection si OK
}
else
{
header("Location:index.php?erreur=login"); // redirection si utilisateur non reconnu
}
}
?>
merci de votre aide.
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
5 mars 2008 à 15:46
5 mars 2008 à 15:46
Deux trois choses :
En PHP, en dehors de l'orienté objet, tu n'es pas obligée d'initialiser tes variables:
Donc, ceci ne sert, pour ainsi dire, à rien mais a une implication sur le reste.
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
L'utilisation de sprintf pour ta requête est un peu de trop. sprintf permet de formater une chaine https://www.php.net/sprintf . Ici, tu ne fais que stocker la chaine dans une variable, donc sprintf ne fait rien.
Ca ralenti le script, pour au final ne rien changer à ta requête. Mais c'est de l'ordre de quelque microseconde, rien de bien grave.
La fonction isset() ne vérifie que l'existence de la variable, pas si elle est vide ou pas. Mais puisque tu as déjà créé ta variable $utilisateur au début, ta variable existe toujours, et donc le isset() sera vérifié quelque soit le retour de ta requête.
Utilise plutôt empty() et une condition $utilisateur == 1 .
Et dernière chose, tu ne vérifie pas le contenu de $_POST['login']. Puisque ca vient d'un formulaire, il peut y avoir n'importe quoi dedans, y compris des caractères qui vont corrompre ta requête SQL (on appelle ca une injection SQL)
utilise la fonction mysql_real_escape_string comme ceci :
$uti = mysql_real_escape_string($_POST['login']);
A quel champ du formulaire fait référence le $_POST['user'] ? ce ne serait pas plutôt $_POST['login'] qu'il faut vérifier ?
Pour le reste, tu as bien compris le principe.
PS: j'ai peu de temps pour répondre, je suis donc allé à l'essentiel sans y mettre la forme ;)
En PHP, en dehors de l'orienté objet, tu n'es pas obligée d'initialiser tes variables:
Donc, ceci ne sert, pour ainsi dire, à rien mais a une implication sur le reste.
$_SESSION['utilisateur']='';
$_SESSION['mdp']='';
$verif='';
$utilisateur='';
$uti='';
$motpass='';
L'utilisation de sprintf pour ta requête est un peu de trop. sprintf permet de formater une chaine https://www.php.net/sprintf . Ici, tu ne fais que stocker la chaine dans une variable, donc sprintf ne fait rien.
Ca ralenti le script, pour au final ne rien changer à ta requête. Mais c'est de l'ordre de quelque microseconde, rien de bien grave.
La fonction isset() ne vérifie que l'existence de la variable, pas si elle est vide ou pas. Mais puisque tu as déjà créé ta variable $utilisateur au début, ta variable existe toujours, et donc le isset() sera vérifié quelque soit le retour de ta requête.
Utilise plutôt empty() et une condition $utilisateur == 1 .
Et dernière chose, tu ne vérifie pas le contenu de $_POST['login']. Puisque ca vient d'un formulaire, il peut y avoir n'importe quoi dedans, y compris des caractères qui vont corrompre ta requête SQL (on appelle ca une injection SQL)
utilise la fonction mysql_real_escape_string comme ceci :
$uti = mysql_real_escape_string($_POST['login']);
A quel champ du formulaire fait référence le $_POST['user'] ? ce ne serait pas plutôt $_POST['login'] qu'il faut vérifier ?
Pour le reste, tu as bien compris le principe.
PS: j'ai peu de temps pour répondre, je suis donc allé à l'essentiel sans y mettre la forme ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
430
5 mars 2008 à 15:44
5 mars 2008 à 15:44
a quel endroit bloques-tu, ou le programme bloque-t-il ??
MISS97200
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
11
5 mars 2008 à 16:01
5 mars 2008 à 16:01
en fait $_POST['user'] c'est la case où l'utilisateur rentre son nom d'identification et $_POST['mdp'] c'est la case où il rentre son mot de passe.
sinon le message d'erreur qui met retourné, c'est :
Parse error: parse error, unexpected T_IS_EQUAL, expecting ')' in C:\Program Files\EasyPHP 2.0b1\www\marchpub\index.php on line 23
sinon le message d'erreur qui met retourné, c'est :
Parse error: parse error, unexpected T_IS_EQUAL, expecting ')' in C:\Program Files\EasyPHP 2.0b1\www\marchpub\index.php on line 23
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
430
5 mars 2008 à 17:27
5 mars 2008 à 17:27
bon alors, dans la partie de code que tu nous as donné, la ligne 23 est vide.
cependant, regarde la ligne 23 de index.php , il y a apparement une parenthèse que tu as oublié de refermer.
cependant, regarde la ligne 23 de index.php , il y a apparement une parenthèse que tu as oublié de refermer.
MISS97200
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
11
5 mars 2008 à 17:42
5 mars 2008 à 17:42
oui, c'est fait, j'ai corrigé mes erreurs, maintenant ma page s'affiche mais quand j'entre le nom d'utilisateur et le mot de passe, cela me redonne ma page vierge.
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
5 mars 2008 à 17:48
5 mars 2008 à 17:48
Je rentre chez moi d'ici 30min et on en reparle.
MISS97200
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
11
5 mars 2008 à 17:52
5 mars 2008 à 17:52
ok, mais je vais déposer ma voiture au garage et après je suis là.
Tu trouves que je comprends vite?
Tu trouves que je comprends vite?
chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
143
5 mars 2008 à 18:02
5 mars 2008 à 18:02
Tu as des capacités pour réussir dans la programmation pour une fille... :)
(JE RIGOLE NE ME LAPIDEZ PAS :o)
Quand tu dis que celà te redonne ta page vierge, ça ne te redirige ni sur "accueil.php" ni "index.php?erreur=login" ?
Le formulaire est bien envoyé et il a bien une "METHOD" en POST et une "ACTION" sur la page où y'a ton script de vérif ?
(JE RIGOLE NE ME LAPIDEZ PAS :o)
Quand tu dis que celà te redonne ta page vierge, ça ne te redirige ni sur "accueil.php" ni "index.php?erreur=login" ?
Le formulaire est bien envoyé et il a bien une "METHOD" en POST et une "ACTION" sur la page où y'a ton script de vérif ?