Aller au contenu

Rafraîchissement sous conditions


liho

Sujets conseillés

Bonjour,

Je souhaiterai rafraichir ma page uniquement sous certaines conditions. J'ai donc utilisé des if{ ] mais je constate qu'il me rafraîchit ma page même si je ne rentre pas dans les conditions...

Dans le code ci dessous, je voudrais que si je suis un homme dans le groupe 11, il reste simplement là où il est (en gros il ne se passe rien). Si je suis une femme (groupe 12) ou si je suis un homme dans le groupe 10, je change de page...
Si une femme n'est pas dans le groupe 12, elle y est placée, si un homme n'est pas dans le groupe 10 ou 11, il sera placé dans le groupe 11...

if ($gender === "COM_COMMUNITY_FEMALE"){	if ($group != 8 OR $group != 12 )	{		$modif = $bdd->exec('UPDATE bdt1m_user_usergroup_map SET group_id = 12 WHERE user_id= ' . $userid . '');		header('Location: ../index.php');		exit();	}	else	{		header('Location: ../index.php');		exit();	}}else if ($gender === "COM_COMMUNITY_MALE"){	if ($group != 8 OR $group != 10 OR $groupe != 11)	{		$modif = $bdd->exec('UPDATE bdt1m_user_usergroup_map SET group_id = 11 WHERE user_id= ' . $userid . '');		header("Refresh:0");		exit();	}	else if ($group == 10)	{		header('Location: ../index.php');		exit();	}}

Avec le code tel quel, le changement de groupe est correctement effectué : je me retrouve bien dans le groupe 11 ou 12 quand je dois y être mais quand je suis dans le groupe 10, il me place quand même dans le groupe 11 alors qu'il ne devrait pas...

Je me retrouve dans sur ma page toujours dans le groupe 11 (le groupe 12 n'a pas accès à cette page et est donc redirigé ailleurs) et la page est rafraîchie en boucle !

Je sèche un peu sur le code pour savoir ce qui ne fonctionne pas...


Merci de votre aide

Modifié par liho
Lien vers le commentaire
Partager sur d’autres sites

Salut !



if ($group != 8 OR $group != 10 OR $groupe != 11)



Si je suis groupe 10, je ne suis pas dans groupe 8 ni 11 donc group != 8 vaut 1, group != 11 vaut 1 et group != 10 vaut 0


1 OU 0 ou 1 = 1 donc je rentre...



Essaie avec des AND ca devrait mieux fonctionner.



Bon courage !


Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos réponses...

Effectivement j'aurais pu utiliser "==" au lieu de "!=" il fallait juste en choisir un...

J'essaye de modifier ça et je vois ce que ça donne

Lien vers le commentaire
Partager sur d’autres sites

J'ai donc remplacé les "OR" par des "AND" et effectivement les changements de groupes fonctionnement parfaitement maintenant....

Par contre si je suis groupe 11, le rafraîchissement de la page est toujours en boucle...

Le refresh ne devrait se faire qu'une seule fois dans le cas où je viens d'être placé dans le groupe 11.... Si je suis déjà dans le groupe 11 en arrivant sur la page, rien ne doit se passer.

Lien vers le commentaire
Partager sur d’autres sites

D'ailleurs khalid-ref,

Je viens d'y repenser et si je n'avais pas utilisé les "==" c'est pour parer l'éventualité où une femme se retrouverait accidentellement dans un des groupes homme et vice-versa, un homme dans le groupe femmes... et aussi parce qu'il y aaussi le groupe 2 (celui dans lequel se trouve tout nouvel utilisateur avant d'être changé de groupe) et je trouvais donc plus simple de dire, "tous ceux qui ne sont pas dans ces groupes, on les-y met"
biggrin.gif

(Désolé pour le triple message.. je n'ai pas réfléchit)

Modifié par liho
Lien vers le commentaire
Partager sur d’autres sites

"tous ceux qui ne sont pas dans ces groupes, on les-y met"

maintenant c'est compris, ton code est propre;

pour le triple message il y a la possibilité de modifier un message et ajouter ce que tu veux

Lien vers le commentaire
Partager sur d’autres sites

Il faut aussi remplacer OR par AND dans la première partie du code !

if ($gender === "COM_COMMUNITY_FEMALE")
{
if ($group != 8 OR $group != 12 )

Lien vers le commentaire
Partager sur d’autres sites

Oui merci mais on me l'a dit plus haut et je l'ai fait, tous les OR sont remplacés par des AND, ça fonctionne... SAUF le refresh


Modifié par liho
Lien vers le commentaire
Partager sur d’autres sites

C'est du code côté serveur donc rien à voir avec le navigateur.



Ceci sera toujours vrai pour le "refresh" (qui est en réalité une redirection):



if ($group != 8 AND $group != 12 ){
$modif = $bdd->exec('UPDATE bdt1m_user_usergroup_map SET group_id = 12 WHERE user_id= ' . $userid . '');
header('Location: ../index.php');
exit();
}
else
{
header('Location: ../index.php');
exit();
}

Donne nous plus de précision. Dans quel cas le refresh se produit?


Lien vers le commentaire
Partager sur d’autres sites


if ($group != 8 AND $group != 10 AND $groupe != 11)

{

$modif = $bdd->exec('UPDATE bdt1m_user_usergroup_map SET group_id = 11 WHERE user_id= ' . $userid . '');

header("Refresh:0");

exit();

}

Ici le rafraîchissement se fait en boucle, il faudrait qu'il ne se fasse qu'une seule fois

Lien vers le commentaire
Partager sur d’autres sites

Il exécute les requêtes correctement puisque les users sont correctement changés de groupe et ici :



$userid = $user->id ;
echo $userid;

echo me renvoi correctement mon userid


Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...