[RESOLU] Pb mysql_num_rows lors d'une authentification

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Pb mysql_num_rows lors d'une authentification

Re: [RESOLU] Pb mysql_num_rows lors d'une authentification

par AB » 03 sept. 2012, 09:44

mysqli c'est presque pareil que mysql, excepté qu'il y a plus de fonctionnalités (possibilité de requêtes préparées par exemple) et qu'il faut passer l'identifiant de connexion plus souvent dans les fonctions, comme par exemple mysqli_real_escape_string. Regardes dans les liens que je t'ai donnés, c'est bien expliqué. Mais à part l'identifiant de connexion qui est obligatoire plus souvent, le reste est identique. Comme tu peux le lire mysql est déconseillé pour les nouveaux projets.

Re: [RESOLU] Pb mysql_num_rows lors d'une authentification

par biddal » 03 sept. 2012, 07:05

Je t'avoue que tu m'as un peu perdu AB lol! J'ai fait du php il y a plus de 5 ans et là je reprend un peu. Pourrais tu m'expliquer le mysqli stp?! Je suis censé marquer mysqli à chaque fois à la place de mysql maintenant? Et pour en revenir à mysq_real_escape_string pourrais tu m'expliquer également en quoi ça consiste exactement stp? E me donner un exemple concret dans mon code afin de bien cerner son utilisation?
Merci beaucoup pour ces renseignements
Bonne journée.

Re: [RESOLU] Pb mysql_num_rows lors d'une authentification

par AB » 02 sept. 2012, 22:37

Ton code n'est pas protégé des injections sql. Tu dois utiliser mysq_real_escape_string pour protéger tes variables dans les requêtes.
Et pendant que tu y es, tu ne devrais plus utiliser l'extension mysql qui est en cours de dépréciation mais plutôt mysqli en mode procédural si veux avoir une syntaxe presque identique à celle de mysql (donc cela demande très peu de travail pour passer de mysql à mysqli) ou sinon PDO.

Re: [RESOLU] Pb mysql_num_rows lors d'une authentification

par biddal » 02 sept. 2012, 20:59

Voilà pb résolu merci beaucoup à toi Moogli! Le souci que j'avais en fait est tout con c est que lorsque j'enregistre un mdp il se fait en md5 et ce champ du mdp je l'avais mis en varchar 30 carac alors qu'il en faisait 33 lorsqu'il le transformait avec le md5 donc lorsque j’essayais de me connecter bien ça marcher pas évidement vu qu les 2 mdp étaient différents du coup lol

Re: Pb mysql_num_rows lors d'une authentification

par biddal » 01 sept. 2012, 17:46

$result me renvoie Resource id #6 donc je ne rentre pas dans la boucle if ci dessous car $result ne me renvoie pas false ou true !!
if($result === false)
	{
        echo 'Erreur sql '.mysql_error();		
	}
    else
	{
		//echo $result;
        if(mysql_num_rows($result)>0)
		{
			return true;
		}
		else
		{
			return false;
		}
Mon code ne s'exécute pas entièrement mais je n'ai pas de message d'erreur!!
Merci d'avance

Re: Pb mysql_num_rows lors d'une authentification

par moogli » 01 sept. 2012, 11:11

non


$result est bie une ressource mysql, le résultat de mysql_num_rows($result) donne le nombre de tuples retourné ;)


@+

Re: Pb mysql_num_rows lors d'une authentification

par biddal » 01 sept. 2012, 08:29

Bonjour,
Merci pour ta réponse. Ca a avancé un peu cependant ma variable $result me renvoie un truc bizarre :
Resource id #6
Celle ci ne devrait pas me renvoyer le nombre de ligne trouver avec ce login et ce mot de passe normalement ?
Merci d'avance. Bonne journée.

Re: Pb mysql_num_rows lors d'une authentification

par moogli » 31 août 2012, 23:48

salut,

$result est un bool, soit requete foireuse, plutôt le résultat du ou logique entre mysql_query et mysql_error :mrgreen:


Corrige ton code ainsi ça devrait aller mieux :)
<?php
function verification($password, $login)
{
  include ("admin/connectbase.php");
  //echo "$login $password";
  $nom_sql=$login;
  $passe_sql=md5($password);
  echo "$nom_sql $passe_sql";
  $query = "select * from users where login='$nom_sql' AND mdp='$passe_sql'";
  $result = mysql_query($query);
if ($result === false)
    echo 'Erreur sql '.mysql_error();
else 
        if(mysql_num_rows($result)>0)
        {
        return true;           
        }
    else
        {
        return false;
     }
?>
@+

Pb mysql_num_rows lors d'une authentification

par biddal » 31 août 2012, 18:42

Bonjour,
Voilà j'ai un souci sur ma page lors d'un test pour une authentification.
Voici mon code:
<?php
	if(isset($_POST['login']) && isset($_POST['password']))
	{
		$login=$_POST['login'];
		$password=$_POST['password'];
		if(verification($password, $login) === true)
		{
			echo 'ok';
			$_SESSION['login']= $nom_sql;
			header ('location:./accueil.php');
		}
		else
		{
			$message="Mauvais mot de passe";
		}
	}
////////////////////////////////////////////////////////////////////////
function verification($password, $login)
{
  include ("admin/connectbase.php");
  //echo "$login $password";
  $nom_sql=$login;
  $passe_sql=md5($password);
  echo "$nom_sql $passe_sql";
  $query = "select * from users where login='$nom_sql' AND mdp='$passe_sql'"; 
  $result = mysql_query($query) or mysql_error();
	if(mysql_num_rows($result)>0)
	{
        return true;		
	}
    else
	{
        return false;
	}
}
?>
L'erreur que j'ai est:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\...\Desktop\intra_CTDR\admin\veriflog.php on line 27

Pourriez vous m'aider s'il vous plait ?
Merci d'avance!