A voir également:
- Le sessions en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
10 réponses
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. ;)
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.
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
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
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.
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.
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?
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 ?