2011-08-01 5 views
0

J'ai un formulaire qui envoie un message http simple à une page PHP. Le code PHP traite la publication, ce qui entraîne l'extraction d'une chaîne JSON à partir d'une URL, l'analyse, puis l'envoi d'un ensemble d'e-mails. Tout le code est sur une page et fonctionne comme prévu. Ce qui me dérange, c'est d'attendre que tous les courriels soient envoyés, et de recevoir finalement la réponse de post HTTP. Ce que je voudrais faire est de séparer le message initial du traitement de chaîne JSON. En d'autres termes, fermez immédiatement la post-session, en obtenant un simple "Done" et laissez le code de traitement PHP JSON faire son truc.HTTP POST to PHP: Vous cherchez de l'aide de base

Je suis nouveau à PHP donc tout conseil sera utile.

+0

Maintenant que vous avez indiqué ce que vous voulez faire, vous devez nous indiquer le problème auquel vous êtes confronté. Quelle est exactement la question? – phant0m

+0

@ phant0m: comment envoyer une requête "ajax" à partir d'un script php (je veux dire exécuter la fonction php de manière asynchrone) – genesis

Répondre

0

Je voudrais ajouter les mails qui doivent être envoyés à une base de données et la configuration d'une tâche cron d'envoyer périodiquement tous les mails qui ne sont pas encore envoyés.

0

Vous cherchez fsockopen() fonction

+0

Expliquer? (ne vois pas comment c'est pertinent) – Nightfirecat

+0

Non, fsockopen ne semble pas être une solution. Comme indiqué, mon code PHP fonctionne tel quel. J'ai simplement besoin de la partie http post séparée de la partie traitement JSON. Je ne veux pas attendre le traitement pour terminer. C'est presque comme si j'avais besoin de deux pages PHP. L'un est le récepteur de ma commande par poste http et l'autre prend la commande et traite les données JSON sur le côté serveur - comme un processus d'arrière-plan. – johnwhitney

+0

Je pense que j'ai besoin de exec() dans la page PHP qui accepte mon post http. Je dois ensuite passer les chaînes postées à une autre page PHP en utilisant exec(). Des idees pour faire cela? – johnwhitney

0

La meilleure option serait d'utiliser une file d'attente de messages comme Redis (a blpop/brpop commandes). Heureusement redistogo offre des plans gratuits. Il devrait y avoir plus qu'assez d'informations sur le web à ce sujet (Google).

deuxième meilleure option serait d'utiliser asynchronous calls