[MySQLi] Passage d'un code de l'ext. mysql à mysqli
Bonjour à tous,
suivant la version 2 du PHP5 avancé de Daspet/Geyer (ch.11, p.245), j'essaye de créer une fonction de vérification du couple login/mdp d'un utilisateur lors d'une connexion à une session
* J'ai une table MySQL5 session avec SES_LOGIN et SES_MDP où sont stockées les infos nécessaires.
* le login et le mdp arrivent via un formulaire post : $_POST['login'] et $_POST['mdp']
voici le code en mysql copié de "PHP 5 avancé" :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
function verification($login, $mdp) { //($login = $_POST['login'])
//infos connexion...
//création requête
$login = mysql_real_escape_string($login);
$mdp = mysql_real_escape_string($mdp);
$sqlses = "SELECT SES_LOGIN, SES_MDP FROM session"
." WHERE SES_LOGIN='$login' AND SES_MDP='$mdp'";
//exécution
$result = mysql_query($sqlses);
if (mysql_num_rows($result)>0) {
return TRUE;
} else {
return FALSE;
}
} |
Voici mon code en mysqli qui ne marche pas ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
1. function verification($login, $mdp) {
2. include ('Connections/annuaire-mysqli.php');
3. mysqli_select_db($link, 'annuaire');
4. $login = mysqli_real_escape_string($link, $login);
5. $mdp = mysqli_real_escape_string($link, $mdp);
6. $sqlses = "SELECT SES_LOGIN, SES_MDP FROM session"
." WHERE SES_LOGIN='$login' AND SES_MDP='$mdp'";
7. $rqp = mysqli_prepare($link, $sqlses);
8. mysqli_stmt_execute($rqp); //Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given
9. $result = mysqli_stmt_num_rows($rqp); //Warning: mysqli_stmt_num_rows() expects parameter 1 to be mysqli_stmt, boolean given
10. if (mysqli_stmt_num_rows($result)>0) { //Warning: mysqli_stmt_num_rows() expects parameter 1 to be mysqli_stmt, null given
11. return TRUE;
12. } else {
13. return FALSE;
14. }
15. } |
faut-il encore protéger les variables en 4 et 5 avec Mysqli ? (hé au fait comment on numérote automatiquement les lignes dans la balise code ?)
Merci d'avance à ceux qui voudront bien éclairer ma lanterne après un RTFM infructeux...