2010-06-15 4 views
1

J'ai une page PHP avec un contenu que mes utilisateurs peuvent voir. Lorsque cette page reçoit une demande POST d'une URL externe spécifique, je souhaite rediriger l'utilisateur vers une autre page.Surveillance pour les publications avec PHP?

Les problèmes que je suis » ayant sont:

Comment puis-je suivre la page pour les demandes envoyées de manière efficace?

Comment puis-je les rediriger puisque header() ne fonctionne pas.

Merci.

Répondre

1

Vous pouvez utiliser un script AJAX pour "pinguer" le serveur par intermittence pour voir s'il y a eu des changements. S'il y en a, redirigez l'utilisateur avec JavaScript.

C'est à peu près le seul moyen.

+0

Que ferais-je un ping? Je ne peux pas prédire quand le poste externe vient. – Rebecca

+0

Le fichier PHP lui-même. Vous devez stocker le ping externe dans un fichier temporaire ou une base de données jusqu'à ce que le client puisse le récupérer. –

1

nous pouvons mettre cet extrait pour vérifier la demande de poste

if($_POST['flag']==1) { 
      header("location:newpage.php"); 
      exit(); 
} 

Mais si vous voulez vérifier la demande régulièrement sans interaction de l'utilisateur que vous devrez utiliser AJAX

+0

N'oubliez pas d'appeler exit après les appels à l'en-tête ('Location: ...'). –

2

Pour la deuxième question, en-tête() fonctionnera si vous l'utilisez avant de générer des informations sur la page. Cependant, si vous écrivez, imprimez ou avez du code HTML avant cela, cela donnera une erreur.

Modifier: En réponse au commentaire de Toad, alors vous auriez à faire comme Aaron Harun a suggéré. Avoir la page enregistrer les données $ _POST à ​​la base de données ou un fichier (assurez-vous de l'aseptiser!), Tout comme vous le feriez avec les données $ _POST. Vous devrez ensuite utiliser AJAX pour obtenir une réponse d'une deuxième page PHP qui vérifie simplement l'existence de données mises à jour depuis l'endroit où vous l'avez sauvegardé. Si la réponse revient vraie, vous redirigez à l'aide d'une redirection JavaScript. La seule autre façon de le faire sans utiliser AJAX serait de rafraîchir la page en utilisant un élément HTML meta refresh à intervalles réguliers pour vérifier si les données $ _POST ont été reçues. HTML effectuerait l'actualisation, PHP ferait la vérification, et vous pourriez utiliser soit pour la redirection.

+0

Les questions ne concernent pas la redirection de la page demandée ... Il s'agit d'une page qui est déjà rendue en cours de redirection car quelqu'un d'autre frappe la même page – Toad

Questions connexes