Probleme De if

[Résolu]
Signaler
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007
-
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006
-
Bonjour tous le monde,
voila je vous explique mon petit probleme...
Je voudrai que a partir d'une validation vérifié d'un systeme de paiement comme allopass par exemple, une requete s'enclanche... ( NO PROBLEM C NIQUEL TOUS MARCHE )
Mais j'ai notamment fait dans la requete une condition if qui dit :

Si + de 5 Board a été créé sur le meme compte alors on affiche message d'erreur : (QUOTAS DEPASSE ! ) et ben figurez vous que il creer encore des board etc... et ca c pas normal...
(Je vous le rapelle il ne maffiche pas derreur. tous ce passe IMPEC )
c'est juste qu'il ignore apparament ma condition if ...

Quel est le probleme docteur ? EST CE GRAVE ?
----------
Voici le code
Vous verrez la condition if au alentour de la ligne 47 (Voir Font en Rouge)
---------

<?
session_start();
if (!$_SESSION['membreid']) {
header('Location: index.php');
die();
}

include("config.php");

mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");



$date = date("d/m/Y");
$titre = "";
$skin = 1;
$pt = 1;
$id_membre = $_SESSION['membreid'];
// PHP5 avec register_long_arrays désactivé?
if (!isset($HTTP_SESSION_VARS) && isset($_SESSION))
{
$HTTP_SESSION_VARS = $_SESSION;
$HTTP_SERVER_VARS = $_SERVER;
}
//construction de la requête
$requete = "http://composants.rentabiliweb.com/Micropaiement.php?act=ss&";
$requete .= $HTTP_SERVER_VARS['QUERY_STRING'];


$tabrep = @file($requete);


if($tabrep[0] == "OUI")
{
$HTTP_SESSION_VARS["RentaSess"] = true;



$requete2 = 'SELECT * FROM membres '.
' WHERE id=\''.$_SESSION['membreid'].'\'';


$result2 = mysql_query($requete2);
$enreg2 = mysql_num_rows($result2);


if ($enreg2["quotas_board"]<= 5) {





$requete1 = "INSERT INTO livredor_config (titre, skin, id_membre, date)
VALUES ('$titre', '$skin', '$id_membre', '$date')";


mysql_query("Update membres set quotas_board=quotas_board+"$pt" where pseudo='".$_SESSION["membreid"]."'") or die(mysql_error());



$result1 = mysql_query($requete1);
echo "Votre code est passé avec succes
";
echo "Votre Board a été créé, vous pouvez la configurer des Maintenant dans L\'espace de votre Compte
";
echo '[mon_compte.php Retour]';



} else {



echo"Quotas Dépassé !";
exit();


}



}
else
{
$HTTP_SESSION_VARS["RentaSess"] = false;
header("Location: erreur2.php");
exit(0);
}
?>

----------
Merci à vous pour vos réponses si chaleureuses et dont j'aprecie énormement pour un certains nombres d'entre vous. le soutiens que vous apportez a tous...

@micalement Milka
Tendrement Chocolat ...

6 réponses

Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

$enreg2 = mysql_num_rows($result2);

la fonction mysql_num_rows() retourne le nombre de résultat de la requète correpondant à $result2 et non un tableau associatif

remplace cette ligne par :

$enreg2 = mysql_fetch_array($result2);

Mais c'est bizard que tu n'es pas de message d'erreur due à $enreg2["quotas_board"] qui n'est pas défini, tu devrais vérifier que le paramètre error_reporting soit bien égale à E_ALL dans ton php.ini . Car quand tu développe il est bon de connaître toutes les erreurs de ton script.
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

'SELECT * FROM membres '.

' WHERE id= \' '.$_SESSION['membreid'].' \' '

hum.. techniquement c'était bon =) (mais difficile de différencier '' de " je te l'accorde =)
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

Ok avant de lire votre message j'avai reglé le probleme... et j'ai trouvé l'erreur apres plusieurs heures de recherche ligne par ligne, il sagissait d'une variable qui n'avait pas lieu detre dans une requete...
Apres reparation de celle ci... le hic est resolu...
pour les " de " etc... ca marche niquel j'ai rien changé...

$requete2 = 'SELECT * FROM membres '.
' WHERE id=\''.$_SESSION['membreid'].'\'';

Changer en

$requete2 = 'SELECT * FROM membres '.
' WHERE pseudo=\''.$_SESSION['membreid'].'\'';

EFFECTIVEMENT !

Mieux vaut que je laisse un message que pas du tous et en meme temps chercher moi meme... au moins la réponse y ai ;)
Bon week end a tous !
++
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

Ok Je tiens a dire que avant le mysql_num_rows cété Fetch_array. le resultat est le meme. le If né pas pris en compte ...
cordialement
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
$requete2 = 'SELECT * FROM membres '.

' WHERE id=\''.$_SESSION['membreid'].'\'';



....

$req "SELECT * FROM membres WHERE id '".$_SESSION['membreid']."' ";

Va peut être falloir apprendre à faire la distinction entre " " et ' ' non ?



Si ton fetch_array ne fonctionne pas, si ton num_rows (mal employé
d'ailleurs) ne fonctionne pas lui non plus, c'est qu'il y a une erreur
sur ta requète.

D'ailleurs, je t'invite à tester ta requete sur ton serveur mysql, j'imagine très bien la tête du message de retour =)



D'ailleurs, quand on fait un mysql_query(), on se doit au minimum de
faire un "or die(mysql_error());" rien que pour être sur que la query
est bien passé !
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

En même temps tes variables t'induisent en erreur ;)