Comparaison de deux variables erronée ?

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 : Comparaison de deux variables erronée ?

par Thoune » 24 avr. 2009, 16:33

Ça marche !

Merci beaucoup pour la réponse rapide ! :)
J'étais persuadé qu'on comparait des variables comme j'ai essayé de le faire !
En tout cas je suis content, je vais pouvoir continuer mon jeu :p

par dunbar » 24 avr. 2009, 16:22

Salut,

Alors déjà il y a une erreur au niveau de ton test ici
$version = $verif
tu lui dit que $version est égal à $verif tu ne lui demande pas ci $version est égal à $verif
pour lui demander de vérifier ci les valeurs sont égal il faut faire ceci
$version == $verif
//ou
$version === $verif
Proposition de correction
<?php 

$service = ""; 
$username = ""; 
$password = ""; 
$database = ""; 

$version = $_REQUEST['ver']; 

mysql_connect($service, $username, $password); 
@mysql_select_db($database) or die( "Unable to select database"); 


$query = "SELECT numversion FROM jeux WHERE nomjeu='jeu1'"; 
$result = mysql_query($query); 
//$verif = mysql_result($result, 0, numversion); 
$verif_data = mysql_fetch_array($req);

$verif = $verif_data['numversion'] ;

$verification = ( $version == $verif) ? 'Oui' : 'Non'; 

echo $verification;

?> 

Comparaison de deux variables erronée ?

par Thoune » 24 avr. 2009, 16:12

Bonjour à tous :)

Je viens ici pour exposer mon problème avec la comparaison de variables.
Je fais un jeu, qui permet entre autres la gestion de scores en ligne, et j'aimerais que s'effectue au lancement de ce jeu une vérification de la version pour dire à l'utilisateur en cas de besoin qu'il n'a pas la dernière version du jeu.
Pour cela, le jeu se connecte à une page php en envoyant la valeur de la version du jeu de l'utilisateur et compare cette variable à la valeur de la version du jeu la plus récente.

"...serveur.php?ver=1"
Ou ver=1 est le numéro de la version.

Voici mon code :
<?

$service = "";
$username = "";
$password = "";
$database = "";

$version = $_REQUEST['ver'];

mysql_connect($service, $username, $password);
@mysql_select_db($database) or die( "Unable to select database");


$query = "SELECT numversion FROM jeux WHERE nomjeu='jeu1'";
$result = mysql_query($query);
$verif = mysql_result($result, 0, numversion);

echo $version;
echo $verif;

if ($version = $verif) {
	echo ("oui");
}
else {
	echo ("non");
}

?>
En gros, si le numéro de la version stockée dans la base de données est le même que le numéro envoyé par le jeu, la version est la bonne et le page envoie "oui", sinon elle envoie "non".
Ça marche si la version du joueur ainsi que le numéro stocké dans la base de données sont égaux à 1. Cela m'affiche : "11oui" le premier 1 est la version du jeu du joueur, le deuxième est la valeur stockée.

Par contre, si j'envoie la valeur 2 ("...serveur.php?ver=2")
Voilà ce qui m'est affiché : "21oui"
Les deux numéros de version sont inégaux, ils sont affichés JUSTE avant d'exécuter la condition, pourtant, la condition me dit que ces numéros sont égaux.

Ou ai-je fait une erreur ?
Merci beaucoup d'avance pour vos réponses ;)

PS : J'espère ne pas m'être trompé de forum, j'ai du SQL dans mon code mais il ne me semble pas que ce soit dans cette partie qu'il y'a une erreur. Désolé si j'ai pas posté au bon endroit ^^'