Fonction sanitize ?

Résolu/Fermé
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 18 août 2014 à 08:21
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 19 août 2014 à 22:50
Bonjour,

J'ai récupéré une fonction mais j'aimerai savoir à quoi elle consiste, je n'arrive pas bien à comprendre son rôle.
Ca tourne autour de la sécurité je crois, mais si vous pouvez m'en dire un peu plus.

En vous remerciant beaucoup.

function user_exists($username){
    $username = sanitize($username);
    return (mysql_result(mysql_query("SELECT COUNT('user_id') FROM users WHERE username = '$username'"), 0) == 1) ? true : false;
}
A voir également:

8 réponses

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
18 août 2014 à 09:15
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
18 août 2014 à 10:09
Bonjour
En fait la fonction que je souhaite récupérer c'est bien celle-ci.
Merci de votre aide.
function user_exists($username){
    $username = sanitize($username);
    return (mysql_result(mysql_query("SELECT COUNT('user_id') FROM users WHERE username = '$username'"), 0) == 1) ? true : false;
}
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
18 août 2014 à 10:27
Salut,

Ta fonction user_exists retourne TRUE si l'utilisateur $username existe dans la table users, FALSE sinon.

La fonction sanitize en php n'existe pas (cette fonction doit être définie dans ton code). Dans cet exemple, la fonction sanitize devrait être remplacé par mysql_real_escape_string pour éviter les injections sql :
function user_exists($username){
    $username = mysql_real_escape_string($username);
    return (mysql_result(mysql_query("SELECT COUNT('user_id') FROM users WHERE username = '$username'"), 0) == 1) ? true : false;
}


Bonne journée
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
18 août 2014 à 10:39
Bonjour
J'ai fait comme ça mais malheureusement ça me retourne aucun nom de compte trouvé.
Pourtant le compte existe dans ma BDD, je ne comprend pas.
S'ils vous plait comment résoudre se fichu problème?
Voilà mes 5 fonctions.
Merci
function logged_in(){
    return (isset($_SESSION['user_id'])) ? true : false;
}

function user_exists($username){
    $username = mysql_real_escape_string($username);
    return (mysql_result(mysql_query("SELECT COUNT('user_id') FROM users WHERE username = '$username'"), 0) == 1) ? true : false;
}

function user_active($username){
    $username = mysql_real_escape_string($username);
    return (mysql_result(mysql_query("SELECT COUNT('user_id') FROM users WHERE 'username' = '$username' AND 'active' = 1"), 0) == 1) ? true : false;
}

function user_id_from_username($username){
    $username = mysql_real_escape_string($username);
    return mysql_result(mysql_query("SELECT 'user_id' FROM 'users' WHERE 'username' = '$username'"), 0, 'user_id');
}

function login($username, $password){
    $user_id = user_id_from_username($username);
    
    $username = mysql_real_escape_string($username);
    $password = md5($password);
    
    return (mysql_result(mysql_query("SELECT COUNT('user_id') FROM users WHERE username = $username AND password = $password"), 0) == 1) ? $user_id : false;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
18 août 2014 à 11:12
As tu essayer d'exécuter ta requête directement dans un client sql (PhpMyAdmin par exemple) ?

Si oui, as tu des erreurs php et/ou sql ?

function user_exists($username){
    $username = mysql_real_escape_string($username);
    $result = mysql_query("SELECT COUNT('user_id') FROM users WHERE username = '$username'");
    if (!$result) {
        die('Requête invalide : ' . mysql_error());
    }
    return (mysql_result($result, 0) == 1) ? true : false;
}
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
18 août 2014 à 21:29
Bonjour
J'ai essayé la requète dans PhpMyadmin ça me renvoie...
COUNT('user_id')
0
alors que j'ai 1 compte je ne comprends pas.
Merci de votre aide
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
19 août 2014 à 11:42
Difficile de t'aider plus.

Tu n'as pas une faute de frappe sur le username ?

Partage nous un export de ta bdd sinon.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
19 août 2014 à 22:50
Bonjour
Je te remercie sincérement.
Déjà je vais reprendre mes fonctions depuis le début parce que je crois que j'ai fait une boulette en fait, je ne suis pas sur mais bon je vais reprendre tout ça.
Merci encore et si toute fois j'ai des soucis je reposterai.
Merci
0