Redirection vers page d'accueil ...

Mik
Invité n'ayant pas de compte PHPfrance

13 mars 2008, 20:40

Salut la compagnie.

Je voudrais savoir ce qui me permettrait de faire ca:

Je voudrais que pour acceder à une page de mon site, on soit obliger de passer par la page d'accueil.
Exemple:
Sur la page d'accueil, j'ai un lien vers un article.
Si quand on est sur la page d'accueil, on clique sur le lien, ca mene bien à l'article.
Par contre, si un utilisateur tape directement le lien dans la barre d'adresse, alors, je voudrais qu'il accede à la page d'accueil.
Je ne sais pas si je suis clair ...

En tout cas, il y a bien un moyen de faire ca, j'ai vu des sites qui le faisait.

Il faut utiliser des cookies ?

Merci de votre future aide :)

++

ViPHP
ViPHP | 1996 Messages

13 mars 2008, 22:52

Moi je le fais aussi en utilisant les sessions PHP (ce n'est donc pas la bonne rubrique).

Tu dois ainsi dans ta page d'accueil démarrer une session via par exemple
$_SESSION["passage_accueil"] = 'ok';


et dans toute tes autres pages, tu rediriges si la valeur de session n'existe pas :
<?php
session_start();
if ($_SESSION["passage_accueil"] != 'ok') header(location=...);

Voilà le principe que j'utilise.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
ViPHP | 4674 Messages

14 mars 2008, 02:07

'soir :).

Une légère correction :
header('Location: ...');
// et non
header(location=...);
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphanteau du PHP | 47 Messages

12 avr. 2008, 21:01

A mon avis, il faut mieux éviter cela, pour une question de référencement. Tu risques de n'avoir que la page d'accueil dans les moteurs de recherche.

Mammouth du PHP | 558 Messages

12 avr. 2008, 23:15

et admettons qu'un utilisateur veux faire voir un article a un de ses copains et qu'il est rediriger vers la page d'accueil...

Mammouth du PHP | 2937 Messages

13 avr. 2008, 01:55

A mon avis, il faut mieux éviter cela, pour une question de référencement. Tu risques de n'avoir que la page d'accueil dans les moteurs de recherche.
En fait, un simple
header ('Location: ...');
est une redirection 302, ce qui veut dire que A est redirigée vers B, mais que A doit rester référencée, B ne devant pas l'être, puisque la redirection est temporaire.

Pour que A doit désindexée au profit de B, il faut ajouter au code PHP ci-dessus celui-ci :
header ('Status: 301 Moved permanently', false, 301);
Ce qu'il ne faut surtout pas faire :
  1. une redirection en JavaScript (les robots des moteurs de recherche l'ignoreront, ainsi que les navigateurs où JavaScript est désactivé ou non pris en charge),
  2. une redirection de type <meta name="refresh" content="0;url-de-destination" /> (elle pose un problème d'accessibilité, en ce sens qu'elle "casse" le bouton précédent et qu'elle peut désorienter l'utilisateur si la redirection s'effectue après un laps de temps au cours duquel A est affichée avant la redirection).