Obliger à rentrer par le site pour accéder à un forum
9 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- Limerick
- Nouveau WRInaute

- Messages: 6
- Inscription: 20 Jan 2005
Obliger à rentrer par le site pour accéder à un forum
Bonjour à tous,
Tout d'abord, j'ai bien lu tout ça, mais il doit bien me manquer quelques bases...
J'ai un site en PHP que j'ai fait avec DAlbum et auquel on accède par une page de login. L'adresse du site est du type www.example.com.
J'ai un forum PunBB, également en PHP, auquel on peut accéder par un lien placé sur le site. L'adresse du forum est du type www.example.com/forum/index.php
Ce site et ce forum sont à usage strictement privé puisque pour un groupe famille-amis qui sont un peu éparpillés partout dans le monde.
Ce que je cherche à faire, c'est de ne pouvoir accéder au forum que si l'on passe préalablement par le site. Je ne veux pas que l'on puisse accéder au forum plus ou moins directement et que l'on s'y inscrive.
Je souhaiterais que ce ne soit qu'après être passé par le site, que l'on puisse s'inscrire sur le forum.
Autrement dit, je souhaiterais qu'on ne puisse même pas s'enregistrer sur le forum, si l'on a pas préalablement été invité sur le site.
En revanche, après être passé par le site et s'être loggé au forum, il faudrait que l'utilisateur ne soit pas gêné de quelques manières que ce soit (le forum utilise les cookies permettant de reconnaître l'utilisateur). Or il ya un petit (?) problème.
J'ai une solution quasi-parfaite avec .htaccess et le Referer (voir le code ci-dessous), mais il y a juste un petit point qui bloque.
En effet, quand j'ai une redirection interne et automatique après le login ou l'envoi d'un message, bref dès qu'il y a (si mon interprétation est la bonne) une URL qui contient php?, alors c'est comme si le Referer n'était pas reconnu.
Donc pour l'instant j'essaye d'apprendre comment faire en sorte que TOUTES les URL contenant le terme monsite.com soient reconnues comme telles. Même s'il y a crac-boum-hue écrit devant ou crac-boum-hue écrit derriere...
Pour l'instant il y a ça écrit dans mon .htaccess
Et ça marche bien : tout ce qui ne vient pas de www.monsite.com est effectivement rejeté (Erreur 403) quand on essaye par exemple, avec www.example.com/forum/register.php ou www.example.com/forum/login.php ou bien encore www.example.com/forum/index.php.
Alors, en fait le plus simple pour moi serait juste de compléter ce code pour atteindre le but décrit ci-dessus.
Bien sûr, si c'était possible, j'aimerais bien parvenir à mes fins sans avoir à refaire tout le site et le forum
Si c'est possible, je suis preneur
Merci beaucoup, déjà, d'avoir lu tout ça
et pour votre aide, si vous pouvez...
Lim
PS : Au fait, j'espère que j'ai posté dans le bon forum... :?
Edit HawkEye: example.com svp
Tout d'abord, j'ai bien lu tout ça, mais il doit bien me manquer quelques bases...
J'ai un site en PHP que j'ai fait avec DAlbum et auquel on accède par une page de login. L'adresse du site est du type www.example.com.
J'ai un forum PunBB, également en PHP, auquel on peut accéder par un lien placé sur le site. L'adresse du forum est du type www.example.com/forum/index.php
Ce site et ce forum sont à usage strictement privé puisque pour un groupe famille-amis qui sont un peu éparpillés partout dans le monde.
Ce que je cherche à faire, c'est de ne pouvoir accéder au forum que si l'on passe préalablement par le site. Je ne veux pas que l'on puisse accéder au forum plus ou moins directement et que l'on s'y inscrive.
Je souhaiterais que ce ne soit qu'après être passé par le site, que l'on puisse s'inscrire sur le forum.
Autrement dit, je souhaiterais qu'on ne puisse même pas s'enregistrer sur le forum, si l'on a pas préalablement été invité sur le site.
En revanche, après être passé par le site et s'être loggé au forum, il faudrait que l'utilisateur ne soit pas gêné de quelques manières que ce soit (le forum utilise les cookies permettant de reconnaître l'utilisateur). Or il ya un petit (?) problème.
J'ai une solution quasi-parfaite avec .htaccess et le Referer (voir le code ci-dessous), mais il y a juste un petit point qui bloque.
En effet, quand j'ai une redirection interne et automatique après le login ou l'envoi d'un message, bref dès qu'il y a (si mon interprétation est la bonne) une URL qui contient php?, alors c'est comme si le Referer n'était pas reconnu.
Donc pour l'instant j'essaye d'apprendre comment faire en sorte que TOUTES les URL contenant le terme monsite.com soient reconnues comme telles. Même s'il y a crac-boum-hue écrit devant ou crac-boum-hue écrit derriere...
Pour l'instant il y a ça écrit dans mon .htaccess
- Code: Tout sélectionner
SetEnvIfNoCase Referer "^http://www.monsite.com/" local_ref=1
Order deny,allow
deny from all
allow from env=local_ref
Et ça marche bien : tout ce qui ne vient pas de www.monsite.com est effectivement rejeté (Erreur 403) quand on essaye par exemple, avec www.example.com/forum/register.php ou www.example.com/forum/login.php ou bien encore www.example.com/forum/index.php.
Alors, en fait le plus simple pour moi serait juste de compléter ce code pour atteindre le but décrit ci-dessus.
Bien sûr, si c'était possible, j'aimerais bien parvenir à mes fins sans avoir à refaire tout le site et le forum
Si c'est possible, je suis preneur
Merci beaucoup, déjà, d'avoir lu tout ça
Lim
PS : Au fait, j'espère que j'ai posté dans le bon forum... :?
Edit HawkEye: example.com svp
-

Phix - WRInaute occasionnel

- Messages: 420
- Inscription: 15 Juin 2004
Bonjour,
personnellement je n'utiliserai pas une technique basée sur le referer, car cette donnée n'est pas assez fiable sachant qu'on peut facilement soit la désactiver soit la changer avec certains navigateurs.
Je pense qu'une simple variable de session serait suffisante, tu l'initialiserais sur la page d'accueil de ton site et ensuite, a chaque page de ton forum tu testes si cette variable a été initialisée, si ce n'est pas le cas tu renvoies l'utilisateur sur ta page d'accueil. Au moins y a pas besoin de cookies, et ce système se programme en très peu de temps...
Voilà, j'espère avoir pu t'aider.
personnellement je n'utiliserai pas une technique basée sur le referer, car cette donnée n'est pas assez fiable sachant qu'on peut facilement soit la désactiver soit la changer avec certains navigateurs.
Je pense qu'une simple variable de session serait suffisante, tu l'initialiserais sur la page d'accueil de ton site et ensuite, a chaque page de ton forum tu testes si cette variable a été initialisée, si ce n'est pas le cas tu renvoies l'utilisateur sur ta page d'accueil. Au moins y a pas besoin de cookies, et ce système se programme en très peu de temps...
Voilà, j'espère avoir pu t'aider.
- Limerick
- Nouveau WRInaute

- Messages: 6
- Inscription: 20 Jan 2005
Bonsoir Phix,
Merci pour ton aide.
Effectivement, cette solution m'a déjà été proposée mais je l'écarte - pour le moment - pour 3 raisons :
1) Le site et le forum ne sont pas si importants que ça, ils sont juste à usage privé.
2) Je ne suis pas loin (je l'espère) d'un solution avec le .htaccess (voir plus bas).
3) Enfin, le site (DAlbum) et le forum (PunBB) sont générés dynamiquement et, si je suis capable d'y inclure quelques lignes de programmes, je suis totalement incapable de les écrire car ignorant de ces choses savantes.
Pour ce qui du .htaccess, j'ai progressé dans le sens où je pense avoir identifié le fait qu'il ne sache pas interpréter le code suivant qu'il y a dans la page qui précéde l'Erreur 403 :
Et plus particulièrement la partie Meta Refresh puisque si je clique sur le lien de redirection proposé, je ne rencontre alors pas de problème.
Le lien est donc reconnu par le .htaccess, mais pas le "Refresh".
Y a-t-il donc un moyen de faire reconnaître ce "Refresh" par le .htaccess ?
Merci pour ton aide.
Effectivement, cette solution m'a déjà été proposée mais je l'écarte - pour le moment - pour 3 raisons :
1) Le site et le forum ne sont pas si importants que ça, ils sont juste à usage privé.
2) Je ne suis pas loin (je l'espère) d'un solution avec le .htaccess (voir plus bas).
3) Enfin, le site (DAlbum) et le forum (PunBB) sont générés dynamiquement et, si je suis capable d'y inclure quelques lignes de programmes, je suis totalement incapable de les écrire car ignorant de ces choses savantes.
Pour ce qui du .htaccess, j'ai progressé dans le sens où je pense avoir identifié le fait qu'il ne sache pas interpréter le code suivant qu'il y a dans la page qui précéde l'Erreur 403 :
- Code: Tout sélectionner
<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="refresh" content="5;URL=http://www.monsite.com/forum/index.php" />
<title>Forum de monsite.com / Redirection</title>
<link rel="stylesheet" type="text/css" href="style/Hydrogen.css" />
</head>
<body>
<div id="punwrap">
<div id="punredirect" class="pun">
<div class="block">
<h2>Redirection</h2>
<div class="box">
<div class="inbox">
<p>Connexion réussie. Redirection …<br /><br /><a href="http://www.monsite.com/forum/index.php">Cliquez ici si vous ne voulez pas attendre (ou si votre navigateur ne vous redirige pas).</a></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Et plus particulièrement la partie Meta Refresh puisque si je clique sur le lien de redirection proposé, je ne rencontre alors pas de problème.
Le lien est donc reconnu par le .htaccess, mais pas le "Refresh".
Y a-t-il donc un moyen de faire reconnaître ce "Refresh" par le .htaccess ?
- Limerick
- Nouveau WRInaute

- Messages: 6
- Inscription: 20 Jan 2005
Bon, comme ma question n'a pas l'air d'inspirer grand monde et que j'ai un peu progressé dans mes recherches, je m'en vais la reformuler - je l'espère - plus explicitement.
Sur mon forum, j'ai une page de redirection automatique qui contient une ligne que j'appelle - abusivement peut-être - "Meta Refresh" de ce type :
D'autre part, je souhaite ne pouvoir laisser accéder au forum que ceux qui proviennent de monsite.com
J'ai donc écrit le .htaccess suivant :
Cela fonctionne bien, hormis que le Meta dont je parle plus haut n'est pas reconnu par le .htaccess, et donc, quand apparaît la page de redirection automatique, j'obtiens une Erreur 403.
Seulement, si je clique sur le lien pour ne pas attendre, tout se passe normalement.
J'en déduis donc que c'est la fonction Redirection Automatique du "Meta Refresh" qui n'est paas reconnue par le code écrit dans le .htaccess.
Ma question est donc la suivante : comment faire pour que le "Meta Refresh" soit lui aussi reconnu comme provenant d'une page de monsite.com ?
On pourrait penser à quelque chose du style :
Bien sûr, ce n'est pas ça, mais c'est juste pour vous donner une idée de ce que je recherche.
Je ne connais pas la syntaxe de programmation en générale, et celle de .htaccess en particulier...
Si quelqu'un pouvait m'aider
Merci à vous
Sur mon forum, j'ai une page de redirection automatique qui contient une ligne que j'appelle - abusivement peut-être - "Meta Refresh" de ce type :
- Code: Tout sélectionner
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="refresh" content="5;URL=http://www.monsite.com/forum/index.php" />
D'autre part, je souhaite ne pouvoir laisser accéder au forum que ceux qui proviennent de monsite.com
J'ai donc écrit le .htaccess suivant :
- Code: Tout sélectionner
SetEnvIfNoCase Referer "^http://www.monsite.com/" local_ref=1
Order deny,allow
deny from all
allow from env=local_ref
Cela fonctionne bien, hormis que le Meta dont je parle plus haut n'est pas reconnu par le .htaccess, et donc, quand apparaît la page de redirection automatique, j'obtiens une Erreur 403.
Seulement, si je clique sur le lien pour ne pas attendre, tout se passe normalement.
J'en déduis donc que c'est la fonction Redirection Automatique du "Meta Refresh" qui n'est paas reconnue par le code écrit dans le .htaccess.
Ma question est donc la suivante : comment faire pour que le "Meta Refresh" soit lui aussi reconnu comme provenant d'une page de monsite.com ?
On pourrait penser à quelque chose du style :
- Code: Tout sélectionner
SetEnvIfNoCase Referer "^http://www.monsite.com/" local_ref=1
SetEnvIfNoCase Referer "Meta Refresh" local_ref=1
Order deny,allow
deny from all
allow from env=local_ref
Bien sûr, ce n'est pas ça, mais c'est juste pour vous donner une idée de ce que je recherche.
Je ne connais pas la syntaxe de programmation en générale, et celle de .htaccess en particulier...
Si quelqu'un pouvait m'aider
Merci à vous
-

Phix - WRInaute occasionnel

- Messages: 420
- Inscription: 15 Juin 2004
Essaie de vérifier:
je ne m'y connais pas trop en expressions régulières et en htaccess, mais n'est-ce pas cette variable: %{HTTP_REFERER} qui te donne l'adresse de referer?
Pour ce qui est de la technique des sessions dont je t'ai parlé, tu as juste quelques lignes à rentrer:
Lorsque tu as authentifié le passage par la page d'accueil
et,
au tout début de ta page qui génère les pages de ton forum (regarde l'index.php):
C'est quand même assez simple non?
Bonne soirée et bon courage...
- Code: Tout sélectionner
SetEnvIfNoCase Referer "^http://www.monsite.com/" local_ref=1
je ne m'y connais pas trop en expressions régulières et en htaccess, mais n'est-ce pas cette variable: %{HTTP_REFERER} qui te donne l'adresse de referer?
Pour ce qui est de la technique des sessions dont je t'ai parlé, tu as juste quelques lignes à rentrer:
Lorsque tu as authentifié le passage par la page d'accueil
- Code: Tout sélectionner
$_SESSION['authentifie'] = 1;
et,
au tout début de ta page qui génère les pages de ton forum (regarde l'index.php):
- Code: Tout sélectionner
session_start();
if(! (isset($_SESSION['authentifie']) && $_SESSION['authentifie'] == 1) ) {
//variable non initialisée donc redirection vers la page d'accueil
}
C'est quand même assez simple non?
Bonne soirée et bon courage...
- Limerick
- Nouveau WRInaute

- Messages: 6
- Inscription: 20 Jan 2005
Bonsoir Phix,
Merci pour tes encouragements
Alors soit je n'ai compris et/ou fait ce qu'il fallait, soit y a un autre problème, mais ça ne marche pas
Voici ce que j'ai fait.
J'ai mis
puis
j'ai mis
Ca doit être plus compliqué que ça
Merci pour tes encouragements
Alors soit je n'ai compris et/ou fait ce qu'il fallait, soit y a un autre problème, mais ça ne marche pas
Voici ce que j'ai fait.
J'ai mis
- Code: Tout sélectionner
$_SESSION['authentifie'] = 1;
puis
j'ai mis
- Code: Tout sélectionner
session_start();
if(! (isset($_SESSION['authentifie']) && $_SESSION['authentifie'] == 1) ) {
//variable non initialisée donc redirection vers la page d'accueil
}
Ca doit être plus compliqué que ça
-

Phix - WRInaute occasionnel

- Messages: 420
- Inscription: 15 Juin 2004
Alors soit je n'ai compris et/ou fait ce qu'il fallait, soit y a un autre problème, mais ça ne marche pas
Qu'est-ce qui ne marche pas? As-tu des erreurs php?
Fais bien attention à ce que session_start() soit la premiere instruction de ta page, il ne doit rien avoir avant, meme pas un espace ou un retour a la ligne. Tu dois aussi mettre ce session_start() au début de la page dans laquelle tu placeras l'authentification ("la page d'accueil du site qui suit celle de login"), cette fonction permet d'activer l'utilisation des variables de sessions dans une page php.
Essaie de faire un:
- Code: Tout sélectionner
<?
session_start();
if(! (isset($_SESSION['authentifie']) && $_SESSION['authentifie'] == 1) ) {
echo "pas authentifie";
}
else {
echo "authentifie";
}
?>
pour voir si la variable est initialisée ou pas...
- Limerick
- Nouveau WRInaute

- Messages: 6
- Inscription: 20 Jan 2005
Désolé pour le retard de ma réponse. Suis un peu à fond...
Quand je dis que ça ne marche pas, cela signifie que j'ai toujours une Erreur 403 quand la redirection se fait automatiquement.
Quand elle est manuelle, cela a toujours bien fonctionné : le .htaccess ne pose pas de problème.
Mais je ne suis pas du tout sur d'avoir fait correctement ce que tu me proposais plus haut, d'autant que je ne saisi pas ce que tu veux dire par "essaie de faire un [...] pour voirsi la variable est initialisée ou pas".
J'ai peut-être omis de dire que je ne connaissais rien à la programmation...
Quand je dis que ça ne marche pas, cela signifie que j'ai toujours une Erreur 403 quand la redirection se fait automatiquement.
Quand elle est manuelle, cela a toujours bien fonctionné : le .htaccess ne pose pas de problème.
Mais je ne suis pas du tout sur d'avoir fait correctement ce que tu me proposais plus haut, d'autant que je ne saisi pas ce que tu veux dire par "essaie de faire un [...] pour voirsi la variable est initialisée ou pas".
J'ai peut-être omis de dire que je ne connaissais rien à la programmation...
- Limerick
- Nouveau WRInaute

- Messages: 6
- Inscription: 20 Jan 2005
Bon me revoilou pour un essai avec les headers.
Si vous avez bien saisi mon souhait de ne pouvoir acceder à un forum que par le seul lien placé sur mon site, je souhaiterais connaître votre avis sur le point suivant.
Le site est fait avec DAlbum. Il est possible d'y inclure un code empêchant le HotLinking.
Comme le principe recherché est relativement proche (me semble-t-il), pensez-vous possible d'adapter ce code pour faire en sorte qu'aucune page du forum (se trouvant dans le répertoire www.example.com/forum/ ), ne puisse être affichée sans venir de monsite.com ?
Merci pour votre aide,
Edit HawkEye: example.com svp
Si vous avez bien saisi mon souhait de ne pouvoir acceder à un forum que par le seul lien placé sur mon site, je souhaiterais connaître votre avis sur le point suivant.
Le site est fait avec DAlbum. Il est possible d'y inclure un code empêchant le HotLinking.
Comme le principe recherché est relativement proche (me semble-t-il), pensez-vous possible d'adapter ce code pour faire en sorte qu'aucune page du forum (se trouvant dans le répertoire www.example.com/forum/ ), ne puisse être affichée sans venir de monsite.com ?
Merci pour votre aide,
Edit HawkEye: example.com svp
9 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Je ne peux plus accéder à mon forum - Error
- Je n'arrive pas à accéder au forum public français Dmoz
- Importance de DMOZ et comment y rentrer ?
- Je ne peux plus rentrer sur mon blog WP
- [Résolu] Rentrer le code adsense au sein de coppermine
- Comment rentrer dans une rubrique du répertoire?
- Cliquer sur une pub pour rentrer dans le site
- comment rentrer au moins dans le top 100 sur google
- Obliger un annonceur a solder un compte
- Obliger de faire du duplicate content
Consultez la description détaillée des produits ou services de Google suivants : Google Bookmarks
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
