lancement d'un script php depuis une autre page

erich38
Invité n'ayant pas de compte PHPfrance

12 déc. 2008, 20:03

Bonjour,

je galère depuis plusieurs jours à cause d'une page php + appel d'une autre php

je veux faire ceci

page1 :
		foreach ($_POST[name] as $value)
		{
		je lance le fichier envoimail.php?email=$value
		et je récupère le résultat pour faire 
		if ($resultatmail==1) {$nbmailenvoye=$nbmailenvoye+1;}
		}
si je fais
file_get_contents("envoimail.php?email=$value");
il me met que le fichier n'existe pas et il faut que je mette envoimail.php seulement pour que ça marche donc je n'arrive pas à envoyer les valeurs

si je fais un include() je récupère à chaque fois les données qui sont dans le fichier envoimail.php et je ne veux pas tout récupérer

comment faire pour lancer un fichier et juste récupérer une valeur ou alors de juste lancer le fichier en lui envoyant les données et vérifier qu'il s'est bien effectuer !

quand je lance envoimail.php je vérifie dedans que le mail est dans ma base

y a t il une fonction pour lancer un fichier php en lui envoyant des valeurs et vérifier que ça a marché ??

merci de votre aide

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

12 déc. 2008, 21:22

Il faut autoriser d'abord l'ouverture d'URL dans la config PHP.ini

Code : Tout sélectionner

allow_url_fopen = On allow_url_include = On
En suite, il faut désigner l'url http complète, exemple:
$resultat = file_get_contents("http://localhost/monsite/envoimail.php?email=$value");
Remarque:
Dans les 2 cas de file_get_contents() ou de include(), quand il s'agit d'appel à une url http (distante ou locale) le programme php appelé ne s'exécute pas dans le même espace d'exécution du script appelant. Il est donc impossible d'échanger des variables globales. Seul le résultat (affichage réalisé par echo ou html) du script appelé est retourné au programme appelant. Mais on peut échanger des données en renvoyant des format csv,xml, json, des fichiers de données sur disque ou dans une base de données.
Modifié en dernier par sadeq le 12 déc. 2008, 21:30, modifié 1 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Mammouth du PHP | 881 Messages

12 déc. 2008, 21:25

Salut!

Si j'ai bien compris, ton fichier envoicourriel.php fait plusieurs choes, mais une seule t'intéresse. Dans ce cas, tu peux isoler la tâche qui intéresse tes deux séquences dans un troisième fichier et appeler ce troisième fichier dans les deux précédents par autant d'include().

Quand tu programmes ainsi, tu morcèle le plus possible ton code en sous-routines autonomes. Tu peux alors les appeler comme et quand tu veux. N'oublie pas, cependant, de prendre en considération les chemins d'accès qui peuvent changer d'une page à l'autre. Pour ma part, je garde mes pages principales dans le répertoire principal, mes sous-routines dans un répertoire "scripts". Il faut donc que je les appelle ainsi include("scripts/sousroutine.php");
Aussi, chaque sous-routine doit commencer par le code <?php


Bref, dans ton cas tu pourrais avoir tes pages:
Premiere.php
envoimail.php
qui appellent scripts/troisieme.php
laquelle (troisieme.php) serait l'extrait intéressant qui serait retiré de envoimail.php
Soyez artisans de paix