Probleme De if

Résolu
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007 - 22 oct. 2005 à 01:17
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006 - 22 oct. 2005 à 16:46
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

monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
22 oct. 2005 à 03:18
$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.
3
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
22 oct. 2005 à 15:20
'SELECT * FROM membres '.

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

hum.. techniquement c'était bon =) (mais difficile de différencier '' de " je te l'accorde =)
3
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 oct. 2005 à 16:09
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 !
++
3
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 oct. 2005 à 10:37
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
22 oct. 2005 à 14:41
$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é !
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
22 oct. 2005 à 16:46
En même temps tes variables t'induisent en erreur ;)
0
Rejoignez-nous