[HTML] empêcher que rafraîchissement (F5) = retour à l'index

empêcher que rafraîchissement (F5) = retour à l'index [HTML] - HTML/CSS - Programmation

Marsh Posté le 06-05-2002 à 16:46:08    

Salut à tous,
 
Je développe un site en html-php-javascript (tous mes fichiers ont donc une extension .php) avec accès restreint (login + mot de passe).
 
Du coup, je ne voulais pas qu'on puisse voir l'url complète d'une page dans la barre d'adresse. Mon site est donc contenu dans 2 frames, une qui occupe tout l'écran et contient les pages et l'autre vide (ceux qui connaissent la technique comprendront).
 
Au passage, si quelqu'un connait un meilleur moyen d'empêcher l'accès détourné à un site qu'il n'hésite pas.
 
Mon problème ici est que dès que je veux rafraîchir une page (touche F5 ou "Actualiser", il y a retour à l'index du site. En clair, j'obtiens tout sauf le rafraîchissement de la page en cours.
 
Comment contourner ce problème ? Les extra-terrestre sont-ils parmi nous ? Le chien du voisin s'enferme-t-il dans le micro-onde tous les soirs ?
 
Autant de questions auquelles vous trouverez les réponses en regardant le prochain épisode de : "Panique au forum !"


---------------
Jeffres
Reply

Marsh Posté le 06-05-2002 à 16:46:08   

Reply

Marsh Posté le 06-05-2002 à 17:01:51    

Allez les gars, on s'remotive !


---------------
Jeffres
Reply

Marsh Posté le 06-05-2002 à 17:07:52    

c le gros problème des frames... :(
 
j'avais pensé à l'époque à mettre la page accédée actuellement dans une variable de session.  En cas de refresh, tu la reprends dans ta page mère <FRAME ... SRC="$VAR_SESSION_url">
mais c pas top, j'ai même pas testé.
 
cacher l'adresse n'a rien de sûr, mais certains trouvent ça plus beau...
 
sinon rajoute un lien ou un bouton qui contient:
<A HREF="javascript:document.frame1.reload()">Refresh</A> (ou qqch du genre), pour que les utilisateus puissent rafraichir la page en cours.

Reply

Marsh Posté le 06-05-2002 à 17:15:58    

Bah, tu sais, c'est pas vital qu'ils puissent rafraîchir la page mais c'est juste parce que ça prend la tête à force. Et puis aussi parce que les utilisateurs comprendraient certainement pas pourquoi ça les ramène au début vu que beaucoup seront certainement novices.
 
Au fait, toi qui a l'air de t'y connaitre, comment empêcher efficacement l'accès à un site ? J'ai pas besoin de cryptage ou de trucs comme ça, il s'agit juste d'obliger les utilisateurs à passer par la page d'accueil.
 
Merci pour tout en tout cas.


---------------
Jeffres
Reply

Marsh Posté le 06-05-2002 à 17:18:51    

met un bouton rafraichir dans ta frame
onclick="history.go(0);" chui pas sur de ce que j ecrit

Reply

Marsh Posté le 06-05-2002 à 17:27:30    

Tu peux pas contourner le problème. Quand tu fais F5 il rafraichit la page principale, soit celle qui contient les frames.
Dans Opera il y a Alt+F5 pour ne rafraichir que la frame, mais je pense que dans IE à part clic de droite, refresh, y a rien d'autre :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 06-05-2002 à 17:52:57    

Je suis peut etre un peu con, mais pourquoi tu ne veux pas que les utilisateurs puisse voir l'url appelé ?
Dans tous les cas, un petit mattage des sources et hop c bon

Reply

Marsh Posté le 06-05-2002 à 17:59:14    

Je fais un stage dans une université à Strasbourg, et le site que je dois faire ne peut être accessible que pour les étudiants d'une des trois universités de la ville, cela pour des raisons de droits. C'est pour ça que les utilisateurs doivent s'identifier en arrivant.
 
Ce n'est peut-être pas trop dur de récupérer l'adresse une fois qu'on y est, mais avant ça c'est pas si facile parce que le lien se trouve dans un fichier php dont la source n'est pas visible depuis la source de la page.
 
Je n'ai aucune connaissance en la matière, c'est pourquoi je suis ouvert à toute suggestion.


---------------
Jeffres
Reply

Marsh Posté le 06-05-2002 à 18:01:54    

Jeffres a écrit a écrit :

comment empêcher efficacement l'accès à un site ? J'ai pas besoin de cryptage ou de trucs comme ça, il s'agit juste d'obliger les utilisateurs à passer par la page d'accueil.




 
c clair que c embêtant surtout qd tu as des images qui ne s'affichent pas du premier coup :(
 
pour les obliger à passer par la page d'accueil
une idée serait de créer une session (session_start()) sur la page d'accueil, sur les autres pages si la session n'existe pas, tu redirriges vers la page d'accueil, mais ça dépend de l'architecture de ton site.  Si toute les pages sont du genre index.php?page=xxx, ça ne va pas t'avancer, mais les utilisateurs arriveront sans doute plus facilmement par la page de base que par une page contenant index.php?page=test&cat=1&id=3.
 
Idem avec un cookie créé sur la page d'accueil (durée de validité de +- 1 minute). Sur chaque autre page, tu testes s'il existe et si c'est le cas tu updates sa validité d'une minute pour ne pas que la personne soit redirrigée sur la page d'accuil après 1 minute de surf. (30min serait sans doute mieux)
 
pq devoir passer absolument par la page d'accueil ?
si tes utilisateurs sont authentifiés, ils le sont tout au long du site non ? que tu accèdes à la page d'accueil ou à une autre page, leur identité doit être testée.
 
tu peux aussi restrindre par IP si ça t'intéresse puisque ton site ne doit être accessible que par 3 réseaux.

 

[jfdsdjhfuetppo]--Message édité par ethernal le 06-05-2002 à 18:05:19--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 06-05-2002 à 19:53:34    

Hum, je crois qu'il est nécessaire que j'apporte quelques précisions.
 
Quand je dis que seuls les étudiants d'une des trois universités ont le droit d'accéder au site, ça ne signifie pas qu'ils ne peuvent y accéder que depuis l'universités, ils peuvent tout aussi bien y aller de chez eux, de la maison du voisin ou de la niche du chien (qui au passage va toujours se planquer dans le micro-onde à la tombée de la nuit).
 
Ta restriction par IP ne fonctionne donc pas, tout comme il me paraît difficile de tester leur identité à chaque page, les autres idées par contre ne sont pas bêtes, mais je pense qu'il y a plus simple. Je sais pas comment, mais je pense qu'il y a plus simple.
 
Merci pour ton aide, je ne manquerai pas d'en faire part au clan si je trouve une autre solution.


---------------
Jeffres
Reply

Marsh Posté le 06-05-2002 à 19:53:34   

Reply

Marsh Posté le 06-05-2002 à 20:11:16    

Jeffres a écrit a écrit :

 
...ils peuvent tout aussi bien y aller de chez eux, de la maison du voisin ou de la niche du chien. Ta restriction par IP ne fonctionne donc pas.




 
ok vu comme ça en effet...
 

Jeffres a écrit a écrit :

 
tout comme il me paraît difficile de tester leur identité à chaque page.



 
et pq pas ? tu utilises les sessions avec une table ? dans ce cas ou est le problème ? ça te fait une query par page, c'est ce que tout le monde fait, du classique quoi...
 
$query= "SELECT user_id FROM Sessions WHERE id=". session_id();
$res= mysql_query($query, $connexion);
if (@mysql_num_rows()==0) {  
  echo "you are not logged !";  
  exit;
}
//affichage de la page
 
PS : remet un nonos au chien de ton voisin de ma part, il en a bien besoin ;)

Reply

Marsh Posté le 06-05-2002 à 23:30:27    

Je tiens juste à signaler que je n'ai découvert le PHP qu'il y a 2 semaines et que la gestion des bases de données grâce à ce langage constituait quelque chose d'assez obscur jusqu'à vendredi.
 
Alors quand on vient me parler de session, j'avoue que je m'interroge.  :??:  
 
J'ai déjà eu légèrement vent de ça sur les sites dédiés au PHP mais je ne me suis pas encore penché sur la question. En clair, classique ou pas, ça revient à peu près au même pour moi.
 
Tu dis que tout le monde fait ça, mais quelle est l'utiliter cette méthode si on n'a pas d'accès restreint ?
 
Comme tu le vois, ta réponse apporte plus de questions qu'autre chose. Si tu pouvais m'apporter encore un complément d'information, ce serait sympa.
 
J'en suis toujours à me demander comment on architecture efficacement un site, alors bon...


---------------
Jeffres
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed