Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/05/2011, 11h52   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 37
Points : 14
Points : 14
Par défaut la commande exec()

Bonjour à tous,
Je souhaite exécuter un fichier externe d'extension(.php) dans mon fichier "main.php".
Je m'explique: suivant une condition IF un seul fichier va être exécuter.càd IF(){exec(...);}ELSE{exec(...);}

EXP:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function det_famille($ligne,$nb)
{
$famille='';
for($i=0; $i<=$nb; $i++)
{if( (stristr($ligne[$i],'built')) && (stristr($ligne[$i],'tcp connection')) ==TRUE) 
	{$famille='F1';
	 $_SESSION["li1"]=$ligne[$i];//utiliser cette var ds un autre programme
	 exec('C:\Program Files\EasyPHP-5.3.3.1\www\famille1.php');
	}
  elseif((stristr($ligne[$i],'built')) && (stristr($ligne[$i],'icmp connection')) ==TRUE)
	{$famille='F2';
	 $_SESSION["li2"]=$ligne[$i];//utiliser cette var ds un autre programme
	 exec('C:\Program Files\EasyPHP-5.3.3.1\www\famille2.php');	
	}  
  }//fin fonction
Est ce que la construction est juste(car aucun résultat n'est affiché)? Est ce qu'il y a d'autres syntaxes qui me permet d'achever cette tâche!
Merci d'avance
hajer.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 11h54   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
pourquoi exec un include fait l'affaire ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/05/2011, 12h01   #3
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Salut,
exec() lance un exécutable. Pourquoi tu n'utilises pas plutôt require() qui inclut et interprète tes scripts php familleX.php ?
Le fait de faire : exec('C:\Program Files\EasyPHP-5.3.3.1\www\famille1.php');
revient à essayer de lancer le fichier en tant qu'exécutable, ce qui n'est pas possible. Si tu veux vraiment exécuter ton script php sans passer par ton serveur Web, tu peux le lancer depuis l'éxécutable php, un truc du style : 'php.exe C:\Program Files\EasyPHP-5.3.3.1\www\famille1.php'' mais je ne pense que ce n'est pas ce que tu veux à la base
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 12h11   #4
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Salut,

Comme te le dis Djakisback, tu n'as besoin d'un exec pour cela, un include + l'appel de la fonction contenu dans le fichier devrait suffire.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/05/2011, 12h49   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 37
Points : 14
Points : 14
salut,
Merci pour vous tous d'avoir répondre si vite!
Bon! j'opte pour utiliser require mais la question est dois-je l'écrire de cette façon:
Code :
require 'famille1.php';
ou de cette façon:
Code :
require 'C:\Program Files\EasyPHP-5.3.3.1\www\famille1.php';
sachant que"famillex.php" a le même emplacement que"main.php" .
J'ai ajouter cette condition suivante:
Code :
1
2
3
4
if (is_file("C:\Program Files\EasyPHP-5.3.3.1\www\famille1.php"))
		{echo "fichier existe";}
		else
		{echo "fichier n'existe pas";}
==> resultat:fichier n'existe pas
Dois-je faire quoi?
hajer.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 13h19   #6
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Pour les includes avec des chemins relatif cela dépend fortement de l'emplacement du fichier appelé et du fichier appelant.
S'ils sont tous deux au même niveau (càd dans un même répertoire) ou pas.


Pour les includes des chemins absolus prend bien soin d'éviter les '\', préfère les '\\' ou les '/' càd, évites
Code :
require 'C:\Program Files\EasyPHP-5.3.3.1\www\famille1.php';
au profit de
Code :
require 'C:\\Program Files\\EasyPHP-5.3.3.1\\www\\famille1.php';
ou de
Code :
require 'C:/Program Files/EasyPHP-5.3.3.1/www/famille1.php';
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/05/2011, 14h05   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 37
Points : 14
Points : 14
Un grand merci à vous (Thes32)
Le fichier appelé et le fichier appelant sont placés dans le même rep donc inutile d'indiquer le chemin ''C:/./...''! mais le problème de fichier non existant persiste toujours.
J'ai vérifié mais j'ai pas su où le problème réside!!
Une idée svp!!
hajer.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 14h09   #8
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Es-tu bien certains des extensions du fichier ? c'est pas un .txt ? genre famille1.php.txt
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/05/2011, 15h31   #9
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 37
Points : 14
Points : 14
Re,
No!no!no! J'ai vérifié; tous les extension sont juste(.php)!!
Est ce que l'ouverture d'une session( session_start() ) peut avoir une relation avec ça!, sachant aucune erreur est apparu lors de l'exécution!
une idée!!
hajer.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 16h59   #10
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 37
Points : 14
Points : 14
Re,
J'ai enfin réalisé le problème!! c'est bête !!
j'ai fait les modifications sur une fichier portant le même nom que le fichier appelant!!
Don,c pb résolu
hajer.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h07.


 
 
 
 
Partenaires

Hébergement Web