Executer un script php sans charger le code

Fermé
IdleMan Messages postés 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 - 22 févr. 2008 à 11:23
 tatanga - 9 nov. 2011 à 10:57
Bonjour,
Je ne suis pas un habitué de ce forum , je m'excuse a l'avance si j'ai posté au mauvais endroit ou si la question a deja été posée ( je tiens a préciser que j'ai cherché sur google et sur ce forum une reponse a ma question mais j'ai du taper les mauvais mot clés , je n'ai rien trouvé) .

Ma question est la suivante : Comment executer un script php sans avoir a charger la page ? Ou encore Comment demander au serveur d'executer le script sans l'intervention du client ?

Un exemple : Je veut que mon script vérifie une base de donnée SQL toutes les heures , mais je ne veut pas avoir a revenir toutes les heures pour executer la page sur laquelle se trouve le script ... (ben oui parfois je dors)

J'espere que j'ai été clair dans mon explication ... c'est un probleme tout débile en fait mais je m'arrache les cheveux dessus depuis quelques temps.

Merci de m'avoir lu jusqu'au bout :)
A voir également:

12 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
26 févr. 2008 à 12:17
Bonjour,

Une fonction php, je vois mal comment, puisque elle même doit bien être appelée... Une fonction JavaScript, aucune chance puisque justement JavaScript est côté client.

Ceci dit, tu peux trouver dans ton répertoire d'installation de php un exécutable, php.exe

Tu peux l'utiliser directement en utilisant la commande suivante :
php.exe -f nomFichier.php

Pour plus de possibilités, tape php -?

Exemples de résultats, dans une fenêtre de commande :
E:\Program Files\wamp\bin\php\php5.2.5>php.exe -?
Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
       php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
       php [options] -- [args...]
       php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -s               Display colour syntax highlighted source.
  -v               Version number
  -w               Display source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --ri <name>      Show configuration for extension <name>.

Exemple d'appel à une page php, cette fois.
page test.php
<?php
	echo "Hello World";
?>
Et le résultat :
E:\Program Files\wamp\bin\php\php5.2.5>php -f test.php
Hello World
Voilà !

Ensuite, tu peux mettre ça en batch si tu as plusieurs appels à faire, et placer tout çs dans un cron ou dans le planificateur de tâche windows...

Xavier
3
Bonsoir

Pourquoi ne veux-tu pas de l'intervention d'un client ? Il y a des 'clients automatiques' qui font ça très bien même quand tu dors ou que tu pars en vacances. Exemple gratuit : webcron.org.
2
IdleMan Messages postés 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 60
26 févr. 2008 à 11:49
Merci pour ta réponse :)
hé bien j'aimerais ne pas avoir a passer par un client tout simplement parce que ça ne fais pas pro et que je pense q u'il y a un moyen que le script s'execute tout seul , de plus j'ai besoin que le script s'executes a heures variables en fonction du nombre de visiteurs presents sur mon site et de plusieurs autres facteurs aleatoires , bref il faut que je puisse configurer les lancements du script a partir de mon script et non a partir d'un service comme webcron.org

il dois bien y avoir une fonction php ou javascript (ou autre) qui permet a php de se lancer sans l'intervention du client .
1
margChamo Messages postés 32 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 4 février 2011 1
25 janv. 2011 à 15:45
Si tu veux le faire a intervalle régulière et uniquement sur ta base de données tu peux peut etre utiliser des triggers
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
IdleMan Messages postés 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 60
22 févr. 2008 à 21:58
Un ptit up désolé .
0
IdleMan Messages postés 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 60
27 févr. 2008 à 10:46
Bonjour,
Houla ^^ Je n'y connais rien en dehors du php (et encore le php je connais juste les bases) .

Dans quoi dois je taper toutes ces commandes ?

Que dois je mettre dans le fichier php.exe?

Ou dois je placer le fichier php.exe ? Sur mon ftp ? Je ne suis pas sur qu'on puisse executer de fichier .exe sur les ftp free .

Bref part du principe que je suis un parfait neophyte et que je n'ai pas compris un mot de ce que tu a dis ^^ Y aurais t'il moyen d'avoir une "notice pour les nuls" ? :D

Merci infiniment pour ta reponse , meme si j'ai rien compris ya un debut de piste :)
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
27 févr. 2008 à 11:58
Alors, pour répondre à tout ça.

1 - php.exe existe déjà sur tout serveur php, puisque c'est le programme php lui-même. Pas besoin, donc d'y mettre quoi que ce soit.

2 - Toutes ces commandes, il faut les taper dans la fenêtre de commandes windows. Sous Windows XP, que tu as, il faut faire Démarrer -> Exécuter -> cmd, puis utiliser la commande "cd" qui permet de changer de répertoire, jusqu'à trouver celui du répertoire php : cd "program files\wamp\bin\php", par exemple. Là, tu peux taper les commandes.
Tu peux aussi rester sur c:\ à la racine, et taper "program files\wamp\bin\php\php.exe" -f ..\..\www\test.php

3 - Il ne faut pas déplacer ce php.exe. Si tu es sur Free, ou un autre hébergeur sur lequel tu n'as pas de contrôle, effectivement cette solution ne sera pas viable car tu n'auras vraisemblablement pas accès à l'exécutable php...

Je pense que dans ton cas, l'idéal serait de demander au support de free s'il y a moyen de mettre en place un Cron, ou une tache planifiée, ou un accès à php.exe pour effectuer ces commandes... Mais j'en doute...

Xavier
0
Si tu es sur Free, ou un autre hébergeur ... then goto 2 :D
0
IdleMan Messages postés 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 60
27 févr. 2008 à 16:56
Je suis sur free :( , le cas echeant je peut me mettre sur 1and1 .

Pour taper les commandes il faut avoir installé wamp en fait ?
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
27 févr. 2008 à 17:07
Le problème sera le même sur 1 and 1. En fait, à moins d'avoir ton serveur à toi sur lequel tu as tous pouvoirs, tu ne pourras pas t'en sortir. La meilleure solution reste donc celle de Le Père au message 2.

>Pour taper les commandes il faut avoir installé wamp en fait ?

Non non. Ceci était un exemple, parce que sur ma machine c'est wamp que j'ai ^^
Mais wamp, finalement, ce n'est qu'un package qui installe plusieurs composants, dont le serveur php.
Ce qu'il faut c'est juste avoir ce serveur php, que ce soit avec wamp, lamp, easyphp ou directement l'application php hors package.
Évidemment, le chemin d'accès à l'exécutable dépend de ce que tu as installé, mais tu trouveras toujours ce php.exe !
0
IdleMan Messages postés 243 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 juin 2012 60
28 févr. 2008 à 16:11
Oki , merci pour toutes ces précisions , il n'y a donc aucun moyen d'executer des scripts php par le serveur sans posseder sois même le serveur .
Moi qui croyais que le net était sans limites et qu'il ne pouvais pas évoluer d'avantage :) il vas falloir que j'attende que quelque créé une commande php genre server_exe(page.php,date,frequence) ;

Je vais me faire cryogeniser je vous retrouve dans quelques années :D .

Merci encore pour vos réponses.
0
Salut,

qu'est-ce qui t'empeche de faire ca

while(1)
{
//Fais ce que tu veux
sleep(60);//ou plus
}
0
TU a se site si tu veut pour t'aider : http://www.phpdebutant.org/
0
Salut tous le monde,

j'ai trouver cette discusion très utile sauf que j'ai un petite problème :
lorsque je veut exécuter un script sous dos :

exemple : php.exe exemple.php ou même avec attribu -f,

je reçoit pas d'erreur mais le script ne s'exécute pas non plus !!!
le script fonctionne bien si je passe a travers un navigateur !!
0
Je remonte le sujet, si ca peut en aider certains :


Tu peux aussi utiliser l'ajax !

Il te permet de faire une requete en php (sql ou pas), toutes les X secondes !
-1