Bloquer et rediriger un appel de page ajax

Bloquer et rediriger un appel de page ajax - PHP - Programmation

Marsh Posté le 06-09-2010 à 11:17:51    

Bonjour,
 
J'espère avoir mis mon post au bon endroit.
 
J'ai un site Internet avec un menu en Ajax qui ouvre donc des pages selon ce que je clique.
 
Cependant, un utilisateur pourrait lui même mettre en url une page (qui devrait normalement s'ouvrir en ajax), j'aimerais bloqué cette eventualité.
 
Avez vous une idée ?
 
Merci

Reply

Marsh Posté le 06-09-2010 à 11:17:51   

Reply

Marsh Posté le 06-09-2010 à 11:35:56    

johnson950 a écrit :

Bonjour,
 
J'espère avoir mis mon post au bon endroit.
 
J'ai un site Internet avec un menu en Ajax qui ouvre donc des pages selon ce que je clique.
 
Cependant, un utilisateur pourrait lui même mettre en url une page (qui devrait normalement s'ouvrir en ajax), j'aimerais bloqué cette eventualité.
 
Avez vous une idée ?
 
Merci


Faire un gros switch sur ton $_GET['xxx']


---------------
Fort et motivé. Sauf parfois.
Reply

Marsh Posté le 06-09-2010 à 11:37:47    

Bonjour,
 
Merci de ta réponse mais je ne passe aucun paramètre en "GET".
 
Exemple :
 
Lorsque je visite mon site, je suis sur index.php.
Lorsque j'appuie sur la touche "Accueil" de mon menu, la page "accueil.htm" sera affiché sur la partie centrale de mon site (en ajax).
 
Or si j'appel directement la page accueil.htm, elle s'affichera pas dans la partie centrale. Je veux donc bloqué cela.
 
J'espère que vous comprendrez mieux mon probleme.
 
Merci

Reply

Marsh Posté le 06-09-2010 à 14:03:04    

Oui, je vois ton problème...
Il n'y a pas de moyen de bloquer ça...
Ou alors, pas facilement...
Mais, pourquoi continuer de faire des pages .htm ? Pourquoi ne pas tout faire en dynamique, et avec des includes, en php par exemple ?


---------------
Fort et motivé. Sauf parfois.
Reply

Marsh Posté le 06-09-2010 à 14:05:04    

Faire des pages PHP ne pose pas de probleme.
Avez vous une solution avec des includes ?
 
Merci

Reply

Marsh Posté le 06-09-2010 à 14:17:44    

Comment dire.
Dans tout les cas, si quelqu'un tape l'adresse exacte de ton fichier, il sera affiché, mais en php il y a moyen de feinter :
Exemple, tu définis une variable style
$test = 1; dans ton index.php
Et, dans chaques pages incluse, tu fait :
if(!$test){
}
else{
Ta page
}
 
En gros...


---------------
Fort et motivé. Sauf parfois.
Reply

Marsh Posté le 06-09-2010 à 15:05:24    

sinon, tester le contenu de l'url demandée : faut qu'elle contienne le nom de domaine de ton site...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-09-2010 à 20:30:49    

rufo a écrit :

sinon, tester le contenu de l'url demandée : faut qu'elle contienne le nom de domaine de ton site...


Facile à gruger ça...


---------------
Fort et motivé. Sauf parfois.
Reply

Marsh Posté le 07-09-2010 à 09:59:47    

Un contrôle par reg_exp sur le nom de domaine + format de l'url + test de l'existence de la page sur le serveur, facile à gruger?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 07-09-2010 à 11:23:50    

et si tu changeais tes fichiers par exemple accueil.htm deviens accueil.inc ou .toto enfin une extension que apache ne peut pas interpréter...
Edit: après test : cette solution affiche le source de ta page
Reste celle-ci qui me semble plus pertinente :
ou faire comme joomla ajouter un

Code :
  1. defined("constante" ) or die("pas possible" );

sur ta page accueil.htm que tu renommera en accueil.php


Message édité par stef_dobermann le 07-09-2010 à 11:27:59

---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 07-09-2010 à 11:23:50   

Reply

Marsh Posté le 07-09-2010 à 14:15:03    

Pas testé la compatibilité, mais sur de nombreux serveurs, tu devrais pouvoir tester que l'appel a bien été fait en Ajax comme ceci:

Code :
  1. $isajax = isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest" ? true : false;


 

Reply

Sujets relatifs:

Leave a Replay

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