Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requete mysqli_num_rows nulle

HELP

14 janvier 2018 à 19:52:04

Bonjour,

comme vous pouvez le voir dans le titre, je suis TRES ENERVE !! Je ne comprends pas, je vous montre mon code:

if(isset($_GET['alt'])){
	
	$allalt = mysqli_real_escape_string($con, $_GET['alt']);
	$alt = explode(":", $allalt);
	$usernames = $alt[0];
	$passwords = $alt[1];
	$date = date('d/m/Y');
	$alts = $usernames.":"."$passwords";
	
		$result = mysqli_query($con, "SELECT * FROM `history` WHERE `qui` = '$username' AND `username` = '$usernames' AND `password` = '$passwords' AND `date` = '$date'") or die(mysqli_error($con));
	
				if(mysqli_num_rows($result) < 1){
					
					$resultsss = mysqli_query($con, "SELECT * FROM generator21 WHERE alt = '$alts'") or die(mysqli_error($con));
			
					if(mysqli_num_rows($resultsss) < 1){
						
						$usernames = "Exploit detected";
						$passwords = "Exploit detected";
						
						}else{
						
						mysqli_query($con, "INSERT INTO history (`qui`, `username`, `password`, `date`) VALUES ('$username', '$usernames', '$passwords', '$date')") or die(mysqli_error($con));
						
					}
					
				}
				
		}else{
	
	$usernames = "Exploit detected";
	$passwords = "Exploit detected";
	
}

Donc la, je met un $_GET qui est dans ma bdd: par exemple jije:gegi et IL EST BIEN DANS MA BDD ET DANS LA BONNE TABLE mais il me met "Exploit detected". svp comment regler ce pb qui me rend fou !

-
Edité par MathySell 15 janvier 2018 à 20:09:19

  • Partager sur Facebook
  • Partager sur Twitter
14 janvier 2018 à 21:12:34

Bonjour,

J'ai pas vraiment compris "Donc la, je met un get qui est dans ma bdd: par exemple jije:gegi et IL EST BIEN DANS MA BDD ET DANS LA BONNE TABLE mais il me met "Exploit detected"." mais ta date n'est pas au bon format. Utilise NOW() en SQL ou met la date courante par défaut dans ta colonne.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
14 janvier 2018 à 23:40:02

Aussi, dégage ces requêtes concaténées, on ne fait plus ça depuis les années 80, et fait des requêtes préparées, ça risquera déjà de t'éviter pas mal de bugs.

Sinon, on ne fait jamais de recherche basée sur le mot de passe de quelqu'un. On ne le conserve même pas !

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 14:46:55

Bonjour,

Je me fiche que tu sois très énervé, merci de mettre un titre en rapport avec ton problème, et sans majuscule.

Artemix a écrit:

Sinon, on ne fait jamais de recherche basée sur le mot de passe de quelqu'un. On ne le conserve même pas !


On ne le conserve pas en clair*
  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 19:16:37

Artemix a écrit:

Aussi, dégage ces requêtes concaténées, on ne fait plus ça depuis les années 80, et fait des requêtes préparées, ça risquera déjà de t'éviter pas mal de bugs.

Sinon, on ne fait jamais de recherche basée sur le mot de passe de quelqu'un. On ne le conserve même pas !

philodick a écrit:

Bonjour,

J'ai pas vraiment compris "Donc la, je met un get qui est dans ma bdd: par exemple jije:gegi et IL EST BIEN DANS MA BDD ET DANS LA BONNE TABLE mais il me met "Exploit detected"." mais ta date n'est pas au bon format. Utilise NOW() en SQL ou met la date courante par défaut dans ta colonne.


Oui mais la date n’a rien a voir la dedans c’est pas history qui ne marche pas c’est juste une valeur, c’est le "generator21"

et non ça n’a rien a avoir avec les mdp, mon site n’a meme pas de systeme de mot de passe, c’est juste une variable ne t’inquiete pas mon site est 100% clean, mon site = systeme d’alt minecraft gratuit dont les proprietaire sont d’accord de partager leur alt. Le GET est justement l’alt en question.

J’ai changé le titre mais je ne vois pas d’autre titre en rapport avec mon probleme.

-
Edité par MathySell 15 janvier 2018 à 19:22:33

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 19:38:58

Salut,

question bête, mais je suppose que tu as bien affiché les variables (toutes, même GET) et que tu as aussi testé ta requête dans PMA avec la donnée GET que tu reçois ???

Sinon pas la peine de râler si tu n'as rien fais de ci-dessus, tu travaille à l'aveugle et le braille, je ne le connais pas perso.

++

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 janvier 2018 à 19:47:41

Sinon, c'est cool d'avoir changé ton titre, mais il reste toujours aussi pourri et vide de sens.

Et pour y répondre, POURQUOI CETTE REQUETE ME MET LA MAUVAISE REPONSE : Parce que tu lui a demandé d'envoyer cette mauvaise réponse.

C'est du code exécuté selon ce que tu lui donne, du code que tu as fait. Tu es la personne ayant inclus ce bug, alors ça ne sert à rien de crier contre ton code, ce forum, le chat du voisin ou autre, mais c'est plutôt en te posant et en re-réfléchissant à ton code, ton algorithme etc. que tu pourras résoudre ton problème.

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:01:26

Je pense que dans ta requête, tu recherches en fait la valeur $username et pas la variable, et idem pour les autres termes.

WHERE `qui` = '$username' est différent (du point de vue de PHP) de WHERE `qui` = ' . $username . '

Je rejoins Artemix quant à ce qui concerne l'utilisation de requêtes préparées...

Plus de détail dans ce cours OpenClassrooms : https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/ecrire-des-donnees-2

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:04:21

HarvestR a écrit:

Je pense que dans ta requête, tu recherches en fait la valeur $username et pas la variable, et idem pour les autres termes.

WHERE `qui` = '$username' est différent (du point de vue de PHP) de WHERE `qui` = ' . $username . '

Je rejoins Artemix quant à ce qui concerne l'utilisation de requêtes préparées...

Plus de détail dans ce cours OpenClassrooms : https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/ecrire-des-donnees-2


Merci de vos reponses: alors oui mdr les GET je les ai bien mis, et pour ce qui est de "SELECT * FROM history... " n’a rien a voir la dedans, celle ci inscrit juste l’historique donc normal que les variables ne soit pas les memes.

xd j’ai encore changé le titre j’espert que celui-ci vous plaira

-
Edité par MathySell 15 janvier 2018 à 20:05:56

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 janvier 2018 à 20:07:00

Pas mieux.

Votre titre doit dire ce que vous cherchez à faire, et le sous-titre ce qui vous pose problème. Si vous utilisez une bibliothèque, indiquez-la dans le titre.

https://openclassrooms.com/forum/sujet/regles-de-ce-forum-a-lire-avant-de-poster-1

Sinon, requêtes préparées, tout ça ?

-
Edité par Anonyme 15 janvier 2018 à 20:07:20

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:08:26

Artemix a écrit:

Pas mieux.

Votre titre doit dire ce que vous cherchez à faire, et le sous-titre ce qui vous pose problème. Si vous utilisez une bibliothèque, indiquez-la dans le titre. 

https://openclassrooms.com/forum/sujet/regles-de-ce-forum-a-lire-avant-de-poster-1

Sinon, requêtes préparées, tout ça ?

-
Edité par Artemix il y a moins de 30s

Oui, deja essayer enfait le probleme c’est que le mysqli_num_row m’envoie 0 au lieu de 1 c’est juste ça que je ne comprends ps

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 janvier 2018 à 20:10:15

Dans ce cas, pourrais-tu re-poster ton code avec les requêtes préparées ?

(et stop le SMS, pitié)

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:12:56

Mais bon, requête préparée ou non, le resultat est toujours le même.

(Je vous reponds depuis mon telephone donc je rate des touches parfois, sorry)

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:16:32

ça affiche quoi là:

<?php
    if(!empty($_GET['alt'])){
     
		$allalt = mysqli_real_escape_string($con, $_GET['alt']);
		$alt = explode(":", $allalt);
		//inutile
		//$usernames = $alt[0];
		//$passwords = $alt[1];
		$date = date('d/m/Y');
		$alts = $alt[0].":".$alt[1];
     
		$requete = "SELECT * FROM `history` WHERE `qui` = '$username' AND `username` = '".$alt[0]."' AND `password` = '".$alt[1]."' AND `date` = '$date'";
		echo '<br>Requete envoyee:<br>'.$requete;
        $result = mysqli_query($con,$requete) or die(mysqli_error($con));
     
		if(mysqli_num_rows($result) < 1){
			$requete2 = "SELECT * FROM generator21 WHERE alt = '".$alts."'";
			echo '<br>Requete2 envoyee:<br>'.$requete2;
			$resultsss = mysqli_query($con, $requete2) or die(mysqli_error($con));
	 
			if(mysqli_num_rows($resultsss) < 1){
				 
				$usernames = "Exploit detected";
				$passwords = "Exploit detected";
			}else{
				mysqli_query($con, "INSERT INTO history (`qui`, `username`, `password`, `date`) VALUES ('$username', '$usernames', '$passwords', '$date')") or die(mysqli_error($con));
			}			 
		} else {
			echo '<br>Result1 > 1';
		}
                 
	} else {
		echo '<br> GET["alt"] est vide';
		$usernames = "Exploit detected";
		$passwords = "Exploit detected";
     
}



  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:18:08

christouphe a écrit:

ça affiche quoi là:

<?php
    if(!empty($_GET['alt'])){
     
		$allalt = mysqli_real_escape_string($con, $_GET['alt']);
		$alt = explode(":", $allalt);
		//inutile
		//$usernames = $alt[0];
		//$passwords = $alt[1];
		$date = date('d/m/Y');
		$alts = $alt[0].":".$alt[1];
     
		$requete = "SELECT * FROM `history` WHERE `qui` = '$username' AND `username` = '".$alt[0]."' AND `password` = '".$alt[1]."' AND `date` = '$date'";
		echo '<br>Requete envoyee:<br>'.$requete;
        $result = mysqli_query($con,$requete) or die(mysqli_error($con));
     
		if(mysqli_num_rows($result) < 1){
			$requete2 = "SELECT * FROM generator21 WHERE alt = '".$alts."'";
			echo '<br>Requete2 envoyee:<br>'.$requete2;
			$resultsss = mysqli_query($con, $requete2) or die(mysqli_error($con));
	 
			if(mysqli_num_rows($resultsss) < 1){
				 
				$usernames = "Exploit detected";
				$passwords = "Exploit detected";
			}else{
				mysqli_query($con, "INSERT INTO history (`qui`, `username`, `password`, `date`) VALUES ('$username', '$usernames', '$passwords', '$date')") or die(mysqli_error($con));
			}			 
		} else {
			echo '<br>Result1 > 1';
		}
                 
	} else {
		echo '<br> GET["alt"] est vide';
		$usernames = "Exploit detected";
		$passwords = "Exploit detected";
     
}




Ça affiche « Exploit detected » celui dans "if(mysqli_num_rows($resultsss) < 1)" alors que le num rows devrait etre egale à 1
  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:21:12

lol impossible tu derais aussi avoir les requête ;)

donc

  • SOIT tu testes le script fourni,
  • SOIT tu reste à gueuler comme un putois seul.

++

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:23:03

christouphe a écrit:

lol impossible tu derais aussi avoir les requête ;)

donc

  • SOIT tu testes le script fourni,
  • SOIT tu reste à gueuler comme un putois seul.

++


Ah excuse moi je croyais que tu me demandais ce qu'il affichait dans mon script de base, je test ça de suite.

Edit: la page ne répond plus, 

Cette page ne fonctionne pas

Impossible de traiter cette demande via ***.net à l'heure actuelle.

HTTP ERROR 500

-
Edité par MathySell 15 janvier 2018 à 20:24:17

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:25:46

en local ce sera mieux et plus rapide, on dev pas sur un site distant.

++

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:27:58

christouphe a écrit:

en local ce sera mieux et plus rapide, on dev pas sur un site distant.

++


J'ai mis ton code sur https://phpcodechecker.com/ , ils me mettent :

 '{' in your code on line 2

  •     if(isset($_GET['alt'])){

-
Edité par MathySell 15 janvier 2018 à 20:28:27

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:30:35

LOL tu me fais marrer, :D

Ce n'est aps mon code ;) lis bien le mien et tu comprendras.

Alors fais les choses sérieusement

++

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 janvier 2018 à 20:30:58

ça n'a rien à voir, ça compare le code à un set de conventions de structuration.

Ce sera mieux de regarder dans les logs du serveur PHP sur lequel tu as testé

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 20:33:14

Oui, mais c'est ton code entier, j'ai juste mis isset pour voir si le probleme était réglé,avec ton !empty le probleme perciste.
je suis très serieux juste maladroit quelque fois.

Je vais installer wamp ce sera plus facile

Voilà la veritable erreur : [15-Jan-2018 19:51:34 UTC] PHP Parse error:  syntax error, unexpected '$alt' (T_VARIABLE) in /home/public_html/test.php on line 6

donc je précise que j'ai fais ceci : test.php?alt=esfse:esfsef

christouphe a écrit:

LOL tu me fais marrer, :D

Ce n'est aps mon code ;) lis bien le mien et tu comprendras.

Alors fais les choses sérieusement

++



-
Edité par MathySell 15 janvier 2018 à 21:03:41

  • Partager sur Facebook
  • Partager sur Twitter
16 janvier 2018 à 10:47:32

Artemix a écrit:

Sinon, c'est cool d'avoir changé ton titre, mais il reste toujours aussi pourri et vide de sens.


Tu n'es vraiment pas obligé de le dire comme ça.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 janvier 2018 à 10:52:09

En effet, désolé d'avoir été inutilement agressif, surtout que le titre a finalement été changé pour quelque chose de tout à fait valide.

  • Partager sur Facebook
  • Partager sur Twitter