Site qui peut tourner en boucle ...

Résolu/Fermé
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 - 4 mars 2008 à 03:22
 adameteve - 30 août 2008 à 15:32
Bonjour,
Je viens de me rendre compte sur un de mes sites, en faisant je ne sais plus quel essai, que je pouvais en kkes sortes, le faire tourner en boucle.
Je m'explique :

Le site est http://www.web-zik.net
(ou .fr) ;-)
Lorsqu'on entre sur le site, ça donne : http://www.web-zik.net/index.php?page=accueil

Attention : bien lire au bout ... lol
Et je me suis retrouvé un soir avec http://www.web-zik.net/index.php?page=index
Donc, cette page index s'appelait elle même sans arrêter (Donc, se rechargeant dans le "bas-droite" avec une include PHP)
Sur ma machine, si je n'appuie pas sur échap assez vite, ça devient une page blanche avec juste l'heure (un script inclu dans le haut de la page)
Un ami m'a dit que sa machine avait carrément planté

Y a t il un moyen (script ou autre pour que cette boucle s'arrête d'elle même ?
Sachant la chose, je fais attention à mes liens, mais bon ...
Merci d'avance
A voir également:

13 réponses

Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
5 mars 2008 à 08:56
Tu n'avais pas de message d'erreur, car ce n'était pas une erreur d'exécution mais de logique. La tienne était facile, mais ce sont généralement les erreurs les plus dures à corriger car il n'y a justement pas de messages d'erreur pour les repérer.

Le if n'est pas obligatoirement accompagné d'un else. Par exemple, le code suivant aura le même effet que le précédent :
<?php
	if($_GET['page'] == 'index')
		$_GET['page'] = 'accueil';
	include($_GET['page'].'.php');
?>
1
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
4 mars 2008 à 05:46
Normalement, le serveur stoppe le script de lui même au bout d'un moment (30 secondes en général).

Là tu es face à un problème de conception. C'est à toi de coder la gestion des cas spéciaux.
0
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
4 mars 2008 à 06:16
Merci ;-)
je viens de faire un petit chrono
A env. 15 secondes, les "escaliers" arrêtent de bouger, mais dans la barre de taches, ça continue de bosser.
"En attente", "transfert", "données transférées", et ça reprend.
Je viens d'attendre 5 bonnes minutes, et le ventilo du CPU a même commencer à accélérer (pourtant, ya ce qu'il faut "sous le capot" ... :-)

Oui, au niveau conception, ben je pensais pô du tout à un truc du genre ....
Pourtant, une page index.php qui appelle par une variable $page, c'est plutôt classique, non ?

Pour gestion des cas spéciaux, ben c'est un peu ma question ...
Ce serait pas un truc du genre "if $page=index" fait moi "exit", nan ?
Mais là, je suis pô du tout sûr de moi ...
J'ai écrit ça au pif (ça se voit tant que ça ? LOL), mais l'idée pourrait ressembler, je pense ...
0
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
4 mars 2008 à 09:16
Si quelqu'un venait à entrer 'index' dans sa barre d'adresse, c'est sûrement la page d'accueil qu'il souhaiterait visionner. Donc autant le rediriger sur cette page. Ce qui donnerait quelque chose comme :
if($_GET['page'] == 'index')
	include('accueil.php');
0

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

Posez votre question
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
4 mars 2008 à 09:45
Merci ;-)
En fait, ça fait pareil
Voici le bout de code qui appelle ma page (avec le rajout)

<?php
include($_GET['page'].'.php');
{
if($_GET['page'] == 'index')
include('accueil');
}
?>

G essayé avec et sans .php (vu qu'il est déjà là)
Pour les crochets (si il en faut), je ne sais vraiment pas
En fait, tout ça, ça devient vite compliqué pour moi ....
0
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
4 mars 2008 à 10:46
Ha ouais... donc t'y connais en rien en fait. ^_^

Normalement le code suivant devrait fonctionner :
<?php
	if($_GET['page'] == 'index')
		include('accueil.php');
	else
		include($_GET['page'].'.php');
?> 
0
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
4 mars 2008 à 23:10
AAAAAARG !!!!
Ciel, je suis démasqué .....
;-)
Ben faut bien commencer quoi ;-)
Bon, c'est vrai qu'avec des mouffles, on a vu mieux
Et surtout qu'en envoyant ça, je n'avais même pas la moindre erreur, genre "parse error" ou autre, qui aurait pu me mettre sur "le droit chemin"

Mais, je trouvais bizarre quand même .... if doit avoir else
Enfin en tous cas, ça marche impecc !
mille merci (ssss)
@+
0
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
6 mars 2008 à 01:04
Ok
Mais je sais pas, mais ça "parle" plus quand même, avec le else
Surtout dans des codes plus longs
La 2éme version doit porter plus à confusion, nan ?

Pour en revenir au 1er code, exception d'abord, et le "normal" après, ok ;-)
0
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
6 mars 2008 à 06:50
okokok ...
Vi, pour le "!", je savais

Pour le nombre de "=", je crois que je commence à piger, et pour les ; aussi ... enfin, je crois ...
;-)
Je disais "ça parle mieux", ça c'est perso. Disons que je le visualise mieux comme ça.
Le troisième est plus "exotique", si on peut dire, mais je commence à voir à peu près.
En tous cas, il fonctionne aussi !

Je viens de trouver ce site :
https://openclassrooms.com/fr/
(Vu le nom, je crois que ça m'ira pas trop mal pour l'instant
LOL !)
Je n'ai mis que le lien de la page d'accueil, j'aime assez l'article.
Mais en fouillant un peu dedans, il y a l'air d'y avoir pas mal de choses inréressantes. Qu'en penses tu ?

Encore merci
0
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
6 mars 2008 à 09:32
Le Site du Zéro est excellent. C'est d'ailleurs là que j'ai appris les bases du HTML/CSS, du PHP, du JavaScript et du C. Les explications sont très claires et il y a de nombreux exemples. Comme je suis pas du genre à apprendre les choses par cœur, je m'y réfère encore très souvent aujourd'hui (notamment la liste des propriétés HTML et CSS en annexe du tuto qui est vraiment pratique).
0
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
6 mars 2008 à 19:59
Oui, les tutos et tout sont vraiment bien fait !
Et en allant voir où tu dis, je viens de voir qu'il(s) a(ont) fait un bouquin. Si il est aussi bien "ficelé" que le site, ça doit être un investissement utile.
Surtout qu'il est très abordable, et a l'air d'être bien distribué.
(Vais pi t'ête bien investir moa, f'ra pô d'mal ...)

Et comme il(s) le dis(ent), un soutient, c'est bien ;-)
A mon humble avis, c'est plus que mérité !
0
je t'invite a decouvrir ce site tres bien fait sur ce nouveau genre de sites :
http://sitesenboucle.kazeo.com
0
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
6 mars 2008 à 05:56
Mais je sais pas, mais ça "parle" plus quand même, avec le else
Surtout dans des codes plus longs
La 2éme version doit porter plus à confusion, nan ?

Ben... non. ^^
En programmation, c'est souvent que tu as un bloc d'instructions à exécuter si une condition est remplie, mais rien à faire si non. Avec un code bien indenté, ça ne pose pas de problème pour s'y retrouver.
Même si, en l'occurrence, je trouve le 1er code plus clair ici.

Pour en revenir au 1er code, exception d'abord, et le "normal" après, ok ;-)
Pas forcément, même si la logique du if...else tend à fonctionner comme cela. Il suffit juste que ta condition soit logique.
Exemple, un autre code équivalent (le != signifie "différent de") :
<?php
	if($_GET['page'] != 'index')
		include($_GET['page'].'.php');
	else
		include('accueil.php');
?>
Dans ton cas, c'est la solution la plus vilaine des 3, mais ça fonctionne et c'est la généralité qui passe avant l'exception.
-1