fredo35m
Messages postés244Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention12 juillet 2006
-
20 avril 2005 à 10:35
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
20 avril 2005 à 16:07
Bonjour,
je suis toujours dans mon application lancant une application externe et je crois que j'arrive au bout mais il me manque une petite aide!!! alors voilà ce que j'ai fait :
Formulaire 1 :
<html>
<head>
TEST EXECUTION SAS
</head>
<FORM ACTION='test.php' method='POST'>
CHOISSISSEZ LE PARAMETRE 1:
CHOISSISSEZ LE PARAMETRE 2:
CLIQUER
</FORM>
</html>
Donc ce programme appelle test.php dont le programme permet d'écrire dans un fichier de commande:
<html>
<head> EXECUTION TEST.PHP </head>
<?php
$filename = "lance.bat";
$somecontent = "'d:\SAS Institute\SAS\V8\sas.exe' -sysin 'd:\BDD\Apache2\htdocs\progtest.sas'";
// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {
// Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
// Le pointeur de fichier est placé à la fin du fichier
// c'est là que $somecontent sera placé
if (!$handle = fopen($filename, 'a')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}
// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}
echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";
fclose($handle);
} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>
</html>
Je souhaite désormais lancer un autre formulaire lancant la commande lance.bat, donc j'ai écrit le programme : lancementprog.php
<html>
<head> EXECUTION DE LANCEMENTSAS.PHP </head>
<?php
exec ("lance.bat");
?>
</html>
Ma question est de savoir comment je peux faire pour appeler lancementprog.php automatiquement à partir du fichier test.php
ça doit être tout bête mais je me prends la tête !!!
Ensuite, j'aurais une deuxieme question pour une fois le fichier de commande executer celui ci soit remis à vide.
fredo35m
Messages postés244Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention12 juillet 2006 20 avril 2005 à 11:41
Ok merci beaucoup ça marche !!!
j'ai juste une petite question supplémentaire concernant le fichier de commande. Car là j'écris dedans et tout fonctionne mais si je le ré-execute il réécrit à la suite !!! donc pas bon !! y a t il une fonction qui peut effacer ce qu'il y a dans le .bat une fois que celle ci a été utilisé??
il m'inscrit dans mon fichier :
"d:\SAS Institute\SAS\V8\sas.exe" -sysin "d:\BDD\Apache2\htdocs\progtest$var1.sas"
il ne prend pas en compte la valeur de $var1 !!! je pense que c'est une histoire de quote mais bon !! par contre il inscrit bien la ligne dans le fichier correspondant par ex : lancedd.bat !!
bizarre !!!
fredo35m
Messages postés244Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention12 juillet 2006 20 avril 2005 à 14:53
Ben oui je sais j'suis chiant !!! désolé !!!
Bon ben j'y arrive pas !!! ça m'énerve !!!!
il écrit bien dans le bon .bat mais pas le bon code !!!
j'ai essayé de toutes les façons j'y arrive pas !!!
j'ai essayé
ps : (dd=$var1)
mon problème est qu'il me faut absolument les quotes du début, de la fin et celles qui se trouvent au milieu (en gras ci-dessus) dans mon .bat pour que mon prog fonctionne
donc si j'écris comme tu me dis
$somecontent ="d:\SAS Institute\SAS\V8\sas.exe -sysin d:\BDD\Apache2\htdocs\progtest".$var1.".sas";
J'aurais comme résultat :
d:\SAS Institute\SAS\V8\sas.exe -sysin d:\BDD\Apache2\htdocs\progtestdd.sas
Et donc il me manque les quotes du début, de la fin et celles du milieux!! en gros il s'agit oui de concaténer une chaine puis une variable puis une chaine!!
J'suis vraiment désolé !!! mais je m'y perds avec ces quotes !!! promis après j'arrête !!!