Résolu PHP Lire données

Statut
N'est pas ouverte pour d'autres réponses.

Wims

Premium
Inscription
27 Août 2014
Messages
1 805
Réactions
418
Points
15 911
Bonsoir, j'ai un petit problème :

Je voudrai lire une donnée particulière en PHP (MySQL) (Suite à ce problème).

Quand j'accède à cette page :

Je voudrai que mon script PHP me retourne 0, 1 ou 2.

0 = Erreur de connexion (ID, MDP invalide).
1 = Connexion réussie.
2 = Compte banni.

Donc en premier il faudrait voir si les informations fournies sont bonnes (si la combinaison USER/PASS existe, ce qui est déjà fonctionnel (voir topic cité ci dessus)).

Et par la suite de sélectionner la colonne "banned" (qui est un boolean (0 = non banni, 1 = banni)) et de faire une condition de ce genre (j'invente) :

Code:
// Si la colonne "banned" est égale à 0 (donc non banni), alors connexion réussie.

if ($banned == '0'){
    echo "1";
}

// Si la colonne "banned" est égale à 1 (donc banni), alors la connexion échoue car membre bannie.

else if($banned == '1'){
    echo "2";
}

// Si la combinaison USER/PASS est mauvaise alors la connexion échoue aussi car mauvaise combinaison.

else{
    echo "0";
}


Sachant que la connexion fonctionne déjà, je ne sais pas si le else de fin est nécessaire, je pense qu'il faudrait créer une nouvelle variable qui vérifie si la colonne banned est égal à 0 ou 1, mais je n'ai aucune idée de comment faire..

Merci d'avance pour votre aide !


Code PHP actuel :

Code:
$req = $bdd->prepare('SELECT * FROM users WHERE username = :username AND password = :password AND hwid = :hwid AND banned = :banned');
$req->execute(array(
    'username'     => $username,
    'hwid'         => $hwid,
    'password'     => $password,
    'banned'    => $banned
    ));


if ($banned == '0'){
    echo "1";
}
else if($banned == '1'){
    echo "2";
}
else{
    echo "0";
}

Les informations de connexions sont bonnes ainsi que le HWID, et la page me retourne "0"..

(Relié à un programme en C#).
 
Dernière édition:

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 704
Réactions
8 499
Points
32 425
Salut,

PHP:
$req = $bdd->prepare('SELECT * FROM users WHERE username = :username AND password = :password AND hwid = :hwid');

PHP:
    if(!$resultat){
        echo 'Compte non trouvée';
    } else if ($resultat['banned'] == 1){
        echo 'Compte banni';
    } else {
        echo 'Okay';
    }
 

ॐ Devkush ॐ

Premium
Inscription
30 Octobre 2015
Messages
588
Réactions
219
Points
2 176
PHP:
$result = $bdd->prepare("SELECT * FROM users WHERE username = :username AND password = :password AND hwid = :hwid");
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
$banned = $row['banned'];
}

if ($banned == '0'){
   echo 'tu n\'est pas banni';
}
else if($banned == '1'){
   echo 'tu est banni';
}
 

Wims

Premium
Inscription
27 Août 2014
Messages
1 805
Réactions
418
Points
15 911
Salut,

PHP:
$req = $bdd->prepare('SELECT * FROM users WHERE username = :username AND password = :password AND hwid = :hwid');

PHP:
    if(!$resultat){
        echo 'Compte non trouvée';
    } else if ($resultat['banned'] == 1){
        echo 'Compte banni';
    } else {
        echo 'Okay';
    }
J'ai "compte non trouvée" alors que les informations sont bel et bien valide :x

PHP:
$result = $bdd->prepare("SELECT * FROM users WHERE username = :username AND password = :password AND hwid = :hwid");
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
$banned = $row['banned'];
}

if ($banned == '0'){
   echo 'tu n\'est pas banni';
}
else if($banned == '1'){
   echo 'tu est banni';
}
Page blanche D:
 

Wims

Premium
Inscription
27 Août 2014
Messages
1 805
Réactions
418
Points
15 911
Montre toute la partie SQL et vérifications :)
Code:
$req = $bdd->prepare('SELECT * FROM users WHERE username = :username AND password = :password AND hwid = :hwid');
$req->execute(array(
    'username'     => $username,
    'hwid'         => $hwid,
    'password'     => $password
    ));
    
    $resultat = $req->fetch();
    


if(!$resultat){
        echo 'Compte non trouvée';
    } else if ($resultat['banned'] == '1'){
        echo 'Compte banni';
    } else {
        echo 'Okay';
    }
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 704
Réactions
8 499
Points
32 425
Code:
$req = $bdd->prepare('SELECT * FROM users WHERE username = :username AND password = :password AND hwid = :hwid');
$req->execute(array(
    'username'     => $username,
    'hwid'         => $hwid,
    'password'     => $password
    ));
   
    $resultat = $req->fetch();
   


if(!$resultat){
        echo 'Compte non trouvée';
    } else if ($resultat['banned'] == '1'){
        echo 'Compte banni';
    } else {
        echo 'Okay';
    }

PHP:
$req = $bdd->prepare('SELECT * FROM users WHERE username = :username AND password = :password');
$req->execute(array(
    'username'     => "ton pseudo",
    'password'     => "ton mot de passe"
    ));
    
    die(var_dump($req->fetch()));


Essaie ça et remplace les valeurs par celles de ta bdd
 

Wims

Premium
Inscription
27 Août 2014
Messages
1 805
Réactions
418
Points
15 911
PHP:
$req = $bdd->prepare('SELECT * FROM users WHERE username = :username AND password = :password');
$req->execute(array(
    'username'     => "ton pseudo",
    'password'     => "ton mot de passe"
    ));
   
    die(var_dump($req->fetch()));


Essaie ça et remplace les valeurs par celles de ta bdd
notepad%2B%2B_2017-08-11_19-33-33.png


Voici ce que donne la page :

chrome_2017-08-11_19-33-41.png
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 704
Réactions
8 499
Points
32 425
Banned n'a rien, c'était juste un test par contre pour le reste :

notepad%2B%2B_2017-08-11_19-43-45.png


($pass devient $password après qu'il soit crypté :
notepad%2B%2B_2017-08-11_19-44-41.png
)

La fonction f_crypt existe bien ?
fait un

var_dump($username);
var_dump($password);
var_dump($hwid);
 
Cette réponse a aidé l'auteur de cette discussion !

Wims

Premium
Inscription
27 Août 2014
Messages
1 805
Réactions
418
Points
15 911
La fonction f_crypt existe bien ?
fait un

var_dump($username);
var_dump($password);
var_dump($hwid);
Juste avant de te donner les résultats, je viens de test ce code :

Code:
$req = $bdd->prepare('SELECT * FROM users WHERE username = :username AND password = :password AND hwid = :hwid');
$req->execute(array(
    'username'     => $username,
    'password'     => $password,
    'hwid'         => $hwid
    ));
 
    $resultat = $req->fetch();
 


if(!$resultat){
        echo 'Compte non trouvée';
    } else if ($resultat['banned'] == '1'){
        echo 'Compte banni';
    } else {
        echo 'Okay';
    }

Et cette fois ci il me dit bien que le compte est banni

Donc quand je fais $password il transforme bien le "Admin" en "o5TOoqY="

Du coup je sais pas pourquoi ça n'a pas fonctionné la première fois .-.

Mais merci bien ! :D
 
Dernière édition:
Statut
N'est pas ouverte pour d'autres réponses.
Haut