Rechercher : dans
Par :

[php] Redirection de page sous conditions...

Dernière réponse le 15 nov 2007 à 01:55:52 scorpus.keylog, le 12 nov 2007 à 12:53:52 
 Signaler ce message aux modérateurs

Bonjour,
Je suis entrain de realiser un petit script, pour essayer de dispacher les utilisateurs et eviter un probléme CPU high load dans mon serveur... mais je tape dans un probléme depuis 2 heures que j'arrive pas a résoudre....

1ére version du script (tout en php en utilisant les headers):

<?php
//connexion a la base
mysql_connect("localhost", "jouteyan", "pass");
mysql_select_db("db");


//recuperation du nombre d utilisateurs
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$nbr_utilisateur = mysql_fetch_array($retour);

if ($nbr_utilisateur < 30)
header('Location: http://www.jouteya.net/tv-bt/index.php');
else
header('Location: http://tv-bt.jouteya.net/index.php');
?>

Le soucis avec ce code c'est qu'il me redirige tjs ver tv-bt mm si j'ai plus ou moins de 30 utilisateurs, j'ai nétoyer le cache relancer mon script a plusieurs reprise... rien a faire


ayant su que des lignes de codes avant le header peuvent poser probléme je suis passé à la
2 version du code cette fois en lancant la redirection en javascript:


Code:
<?php
//connexion a la base
mysql_connect("localhost", "jouteyan", "pass");
mysql_select_db("db");


//recuperation du nombre d utilisateurs
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$nbr_utilisateur = mysql_fetch_array($retour);

if ($nbr_utilisateur < 30)
'<script language="JavaScript">self.location="http://www.jouteya.net/tv-btindex.php"</script>';
else
'<script language="JavaScript">self.location="http://tv-bt.jouteya.net/index.php"</script>';
?>
dans ce cas il n y a pas de redirection la page reste figée.

si quelqu'un arrive a voir ou a une idée de la solution qui peut me tirer de ce probléme :') merci

Configuration: Windows XP
Firefox 2.0.0.6

Meilleures réponses pour « [php] Redirection de page sous conditions... » dans :
[Webmaster] Faire une redirection VoirLes différentes solutions sont présentées de la meilleure (.htaccess) à la moins bonne (JavaScript). Un .htaccess Le .htaccess est à placer dans le répertoire qui doit être redirigé. On applique une redirection de cette façon : RedirectPermanent...
[PHP] Pagination VoirPrésentation Cette fonction permet de créer une pagination. Elle ne fait pas qu'afficher bêtement la liste des liens mais il est possible de mettre une limitation du nombre de liens avant et après la page actuelle. La fonction function...
Il est possible de récupérer le code source PHP d'un site VoirMythe Un utilisateur peut récupérer le code source PHP d'un site web comme il peut récupérer le code HTML. Réalité FAUX Explications Les fichiers PHP (ASP, JSP, etc.) sont des fichiers interprétés côté serveur, ce qui signifie que le serveur...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...
Implantation du code Php VoirL'interprétation du code par le serveur Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et...

1

s.spark, le 12 nov 2007 à 13:02:56
  • +1

Salut,

Sauf erreur de ma par j'aurrais plutôt mis :


<?php
//connexion a la base
mysql_connect("localhost", "jouteyan", "pass");
mysql_select_db("db");


//recuperation du nombre d utilisateurs
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$donnees = mysql_fetch_array($retour);
$nbr_utilisateur = $donnees['nbre_entrees'];

// On vérifi que $nbr_utilisateur contient bien ce qu'on veut
echo 'N'ombre d'utilisateur : '.$nbr_utilisateur ;


Le code avec modification du header doit être mis avant l'affichage de donnés sinon tu auras un message d'erreur.

Répondre à s.spark

2

scorpus.keylog, le 13 nov 2007 à 13:11:33
  • +1

RE salut tout le monde
l'erreur ne viens pas de la, ca je l'ai commis quand j'ai recopier le code dans le site de comment ca marche... la variable(je l'ai teste) elle contient bien le nombre total des visiteurs connecte dans les 5 dernieres minutes, mais apparament le soucie viens du faite que headers ne supporte pas des ligne de code avant... c pour ce la j ai essayer de passer par du javascript et apparament dans le deuxieme c un souci de ' et de " si quelqu'un peut verifier la syntaxe... je pensse ca viens de la

Répondre à scorpus.keylog

3

s.spark, le 13 nov 2007 à 14:40:07

"mais apparament le soucie viens du faite que headers ne supporte pas des ligne de code avant..."

Je me répète et ça devient lassant de façon général ...

Le code avec modification du header doit être mis avant l'affichage de donnés sinon tu auras un message d'erreur.

Ta page ne s'afficherait même pas si tu avais une erreur de header.

-__-

Répondre à s.spark

4

s.spark, le 13 nov 2007 à 14:44:52

Ha oui au fait bien sur il ne faut pas faire boucler code ...

http://www.jouteya.net/tv-bt/index.php

http://tv-bt.jouteya.net/index.php


Si index.php est le même sur les deux lien (avec le code que tu as donné plus haut) tu finiras toujours par te retrouver dans le cas "else" sauf si la condition < 30 reste vrai trop longtemps (30sec en général) tu finiras sur un timeout.

Ton 2ème lien devrai être du genre :


http://www.jouteya.net/tv-bt/full.php

full.php -> Le site est temporairement saturé, veuillez revenir plus tard, merci.



Mais ça c'est qu'une question de logique.

Répondre à s.spark

5

s.spark, le 13 nov 2007 à 14:55:48

Autre chose, d'un point de vu référencement c'est très mauvais d'avoir 2 liens différent qui pointe vers la même chose. C'est du "duplicat content" et google va blacklister les deux liens. Et tu va perdre tout ton référencement.

Là je fais référence aux domaine et sous domaine que tu viens de diffuser ici.

Répondre à s.spark

6

scorpus.keylog, le 14 nov 2007 à 22:09:11

Bonjour,
pour l'instant ils ont referencer les deux liens, j'ai utiliser un sous domaine pour resoudre le soucis mais apparament ca n'a pas resolu grand chose vue que l'hebergeur bloque tout mes domaines et sous domaines... si non pour le script j'ai pu bidouiller dessus avec un ami a moi et on a resolu le probleme c'ete effectivement un probleme de syntaxe... le script je le met a la racine de jouteya.net ca evite que ca boucle mais tu as raison spark je suis tomber sur ce probleme quand je l'ai mis dans l'index de tv-bt...
je vous fait une copie du code mtn il marche bien:
alors pour caluler le nombre de visiteurs j'ai utilise un siple code que jai trouver dans le siteduszero je ne sais pas si on peut mettre des liens ici, mais c pour le bien de la science :)
http://www.siteduzero.com/tuto-3-174-1-tp-nombre-de-visiteur­s-connectes.html

aprer pour le script qui dispache les visiteur je l'ai mis dans une page dispacher.php que j'appelle en include dans l'index:

<?php
mysql_connect("localhost", "login", "pass");
mysql_select_db("db");
$retour = mysql_query("select * from connectes");
$donnees = mysql_num_rows($retour);


if ($donnees < 250) echo "<script language='JavaScript'>self.location='http://www.jouteya.net/tv-bt/index.php'</script>";
else echo "<script language='JavaScript'>self.location='http://tv-bt.jouteya.net/index.php'</script>";
?>

la le code il marche bien a 250 visiteurs il redirige vers le deuxieme lien (mais ca ne m'as tjs pas resolue le probleme il va falloir que je change d'hebergeur).
si quelqu'un a une idee pour ameliorer le code exemple: le mettre dans l'index sans que ca boucle ca sera bien aussi.

Merci a vous

Répondre à scorpus.keylog

7

 s.spark, le 15 nov 2007 à 01:55:52

"si quelqu'un a une idee pour ameliorer le code exemple: le mettre dans l'index sans que ca boucle ca sera bien aussi. "

http://www.commentcamarche.net/forum/affich 4023975 php redirection de page sous conditions#4

Répondre à s.spark