Exécuter un script PHP en arrière plan
Fermé
wow06
Messages postés
72
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
21 janvier 2017
-
20 mai 2015 à 18:19
wow06 Messages postés 72 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 21 janvier 2017 - 20 mai 2015 à 20:45
wow06 Messages postés 72 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 21 janvier 2017 - 20 mai 2015 à 20:45
Bonjour,
Voila la situation : j'ai un formulaire que mes visiteurs valident en appuyer sur un bouton "lancer". Je souhaite lancer un script PHP en arrière plan et dans le même temps envoyer mes visiteurs sur une autre page.
Quel est le meilleur moyen pour faire cela ?
Merci à vous.
Voila la situation : j'ai un formulaire que mes visiteurs valident en appuyer sur un bouton "lancer". Je souhaite lancer un script PHP en arrière plan et dans le même temps envoyer mes visiteurs sur une autre page.
Quel est le meilleur moyen pour faire cela ?
Merci à vous.
A voir également:
- Exécuter un script PHP en arrière plan
- Arrière plan - Guide
- Youtube en arrière plan - Guide
- Script vidéo youtube - Guide
- Flouter arrière-plan appel vidéo whatsapp android - Guide
- Arriere plan pc - Guide
1 réponse
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 227
Modifié par gravgun le 20/05/2015 à 18:34
Modifié par gravgun le 20/05/2015 à 18:34
'lut, tu peux lancer des scripts depuis une page PHP avec la fonction exec par exemple.
EDIT: en fait exec est synchrone, il faut autre chose; c.f. ce guide.
Mais il faut savoir trois choses:
Le dernier détail qui aide: si tu veux passer des paramètres/commandes au script et que ton hébergeur utilise Linux, tu peux communiquer des données en utilisant des tuyaux POSIX (créés avec posix_mkfifo et lus/écrits comme des fichiers normaux).
from human import idiocy
del idiocy
EDIT: en fait exec est synchrone, il faut autre chose; c.f. ce guide.
Mais il faut savoir trois choses:
- le script PHP de ta page doit avoir fini son traitement dans les 30 secondes qui suivent la requête du formulaire, sinon Apache tue le processus de PHP et renvoie une erreur 500 au client
- le script lancé n'est pas supervisé ni ne partage l'environnement d'Apache: tu n'auras donc pas accès aux variables
$_POST, $_GET, $_SERVER, $_COOKIE
, et tout le reste, à moins que tu ne passes leur contenu au script. - attention aux paramètres de lancement du script si ils dépendent de l'entrée utilisateur: de manière analogue aux injections SQL, si tu ne protège pas tes entrées, de mauvaises choses peuvent se passer.
Le dernier détail qui aide: si tu veux passer des paramètres/commandes au script et que ton hébergeur utilise Linux, tu peux communiquer des données en utilisant des tuyaux POSIX (créés avec posix_mkfifo et lus/écrits comme des fichiers normaux).
from human import idiocy
del idiocy
20 mai 2015 à 18:32
Le script que je veux lancer en arrière plan est assez lourd et a besoin de plusieurs minutes de traitement. L'Ajax ne pourrait pas faire l'affaire ?
Mais comment rediriger le visiteur vers une page et lancer un script PHP en même temps ?
20 mai 2015 à 18:39
Mais je n'ai pas d'exemple a te donner directement, faute de code et de connaissance des fonctions de manipulation de processus de PHP. J'ai réagi un peu tard, mais en fait exec attend la fin du script, ce n'est pas bon.
20 mai 2015 à 20:45
Si d'autres ont des solutions, je reste preneur.