2011-01-28 7 views
0

HIQue sont les "Ressources #"?

j'obtiens des ressources # 6 et # 7 ressources lorsque j'imprime les variables suivantes:

$salty_password = sha1($row['salt'], $_POST['password']); 

if(isset($_POST['subSignIn']) && !empty($_POST['email']) && !empty($_POST['password'])) { 


    $query = "SELECT `salt` FROM `cysticUsers` WHERE `Email` = '" . $_POST['email'] . "'"; 
    $request = mysql_query($query,$connection) or die(mysql_error()); 
    $result = mysql_fetch_array($request); 



    $query2 = "SELECT * FROM `cysticUsers` WHERE `Email` = '". $_POST['email']."' AND `Password` = '$salty_password'"; 
    $request2 = mysql_query($query2,$connection) or die(mysql_error()); 
    $result = mysql_fetch_array($request2); 

    print_r($request); 
    print_r($request2); 

if(@mysql_num_rows($request,$request2)) { 


     $_SESSION['CLIFE']['AUTH'] = true; 
     $_SESSION['CLIFE']['ID'] = $result['id']; 

     // UPDATE LAST ACTIVITY FOR USER 
     $query = "UPDATE `cysticUsers` SET `LastActivity` = '" . date("Y-m-d") . " " . date("g:i:s") . "' WHERE `id` = '" . mysql_real_escape_string($_SESSION['CLIFE']['ID']) . "' LIMIT 1"; 
     mysql_query($query,$connection); 


     if(!empty($_POST['return'])) { 
      header("Location: " . $_POST['return']); 

     }else{ 
      header("Location: CysticLife-Dashboard.php?id=" . $_SESSION['CLIFE']['ID']); 
      } 
     } 

    }else{ 

     $_SESSION['CLIFE']['AUTH'] = false; 
     $_SESSION['CLIFE']['ID'] = false; 

    } 


?> 

Essayer de résoudre ce morceau de code et ne sais pas ce que cela signifie. J'essaie de me reconnecter avec le mot de passe en clair que j'ai signé après avoir été haché et salé. J'ai l'impression d'être très proche mais quelque chose ne va pas. L'aide sur pourquoi cela ne fonctionne pas serait également grandement appréciée.

Merci à l'avance

Répondre

5

mysql_query() renvoie le résultat des ensembles comme des objets de type resource (ils ne sont pas des objets en termes de code PHP POO, mais je ne peux pas penser à un meilleur mot). Ceux-ci contiennent des données binaires qui ne peuvent être lues que par certaines fonctions, par exemple les fonctions mysql_fetch_*().

Pour déboguer vos requêtes MySQL, vous devez vérifier les erreurs en utilisant mysql_error() et mysql_errno() et/ou enregistrer vos instructions SQL dans des variables et les imprimer. D'après ce que je vois, vous effectuez deux requêtes mais en écrasant la même variable $result, sans rien faire à propos de la première. En outre, mysql_num_rows() ne peut compter qu'un ensemble de résultats à la fois, de sorte que vous ne pouvez pas passer deux ensembles de résultats dans le même appel.

+2

+1 Une * ressource * dans le moteur Zend est un pointeur C. Extrait d'un article [devzone.zend.com] (http://devzone.zend.com/article/1024): * "Alors qu'un PHP zval peut représenter un large éventail de types de données internes, un type de données impossible à représenter Dans un script, le pointeur est complètement [...] il n'y a pas non plus de moyen de les utiliser de manière significative en utilisant des opérateurs traditionnels La solution à ce problème consiste simplement à se référer au pointeur par un label essentiellement arbitraire appelé ressource. – netcoder

2

Ce sont les types de données internes de PHP appelés resource.

Ils ne peuvent pas être sérialisés (c'est-à-dire qu'il n'y a pas de "toString()") et sont donc affichés sous la forme Resource#X.

0

Les requêtes SQL via PHP sont effectuées à l'aide d'une variable appelée ressource. Cette variable, dans votre code, est complètement inutile, sauf pour passer à chaque fonction que vous voulez exécuter (par exemple, changer une base de données, exécuter une requête, saisir la dernière erreur, etc.). Cela étant dit, l'exécution d'une requête ne renvoie aucune information de la base de données, mais seulement une référence à cet ensemble d'enregistrements (où PHP stocke les informations). Vous utiliserez ensuite cette variable dans un appel tel que mysql_fetch_array pour récupérer les informations de ligne réelles.

Questions connexes