Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 28/01/2012, 23h07   #1
Membre habitué
 
Avatar de dafpp
 
Homme Pascal Diogo Antunes
Étudiant
Inscription : janvier 2008
Messages : 270
Détails du profil
Informations personnelles :
Nom : Homme Pascal Diogo Antunes
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 270
Points : 128
Points : 128
Par défaut Executer ma commande perso

Bonsoir,
je voudrai savoir comment je dois interpreter le résultat que j'ai sur ma page web.
J'ai mis un executable sur mon site, et je l'execute grâce à system.
Je test donc, mais je nai aucun retour d'affichage...
Dois-je comprendre que je n'ai pas le droit d'executer mon executable, ou dois-je me reporeter vers une nouvelle fonction en php ?

je me questionne, j'aimerai savoir, c'est important, selon ce qui se passe actuelement et de ce que vous me direz, je changerai sans doute d'offre. Mais sans doute est ce moi qui ne sait pas executer une commande

Voilà merci d'avance !
__________________
"Les spécialistes commencent par n'apprendre que ce qu'ils aiment et finissent par n'aimer que ce qu'ils ont appris." - Gilbert Cesbron
"Si nous avons chacun un objet et que nous les echangeons, nous avons chacun un objet. Si nous avons chacun une idée et que nous les échangeons, nous avons chacun deux idées." - Proverbe Chinois.

Dafp[pt] http://pascal.diogoantunes.com
dafpp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2012, 20h01   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 817
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 817
Points : 1 539
Points : 1 539
1) sans code difficile de savoir si tu l'as correctement codé ou non
2) as-tu activé la gestion des erreurs dans le php.ini ?
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 12h57   #3
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
Bonjour,

Je te conseil de plutôt utiliser exec().

Citation:
Envoyé par dafpp
Dois-je comprendre que je n'ai pas le droit d'executer mon executable
Il te suffit de l'exécuter en ligne de commande pour savoir si il fonctionne bien.

Si ton programme s'appelle "monProgramme.exe" et qu'il dispose d'une option -v pour la version alors tu peux l'exécuter ainsi :
Code php :
1
2
3
4
<?php
exec('monProgramme.exe -v', $output);
var_dump($output);
?>
A savoir que si tu ne redirige pas le flux de sortie à l’extérieur de la page (comme c'est le cas dans mon exemple) le reste du code de la page serra en attente de la fin d'exécution du programme.
humitake est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/01/2012, 18h25   #4
Membre habitué
 
Avatar de dafpp
 
Homme Pascal Diogo Antunes
Étudiant
Inscription : janvier 2008
Messages : 270
Détails du profil
Informations personnelles :
Nom : Homme Pascal Diogo Antunes
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 270
Points : 128
Points : 128
Moi je voudrai avoir le retour de résultat, mais rien ne s'affiche sur la page, et j'avais testé aussi exec.
__________________
"Les spécialistes commencent par n'apprendre que ce qu'ils aiment et finissent par n'aimer que ce qu'ils ont appris." - Gilbert Cesbron
"Si nous avons chacun un objet et que nous les echangeons, nous avons chacun un objet. Si nous avons chacun une idée et que nous les échangeons, nous avons chacun deux idées." - Proverbe Chinois.

Dafp[pt] http://pascal.diogoantunes.com
dafpp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 21h09   #5
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 817
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 817
Points : 1 539
Points : 1 539
Et ton niveau d'erreur PHP est-il réglé pour afficher les erreurs ou pour les masquer ?
Car par exemple si la commande exec() est désactivée sur ton hébergeur... Ou que tu renseignes un chemin incorrect... Bah erreur mais normal d'obtenir une page blanche.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2012, 09h18   #6
Membre habitué
 
Avatar de dafpp
 
Homme Pascal Diogo Antunes
Étudiant
Inscription : janvier 2008
Messages : 270
Détails du profil
Informations personnelles :
Nom : Homme Pascal Diogo Antunes
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 270
Points : 128
Points : 128
pardon de répondre aussi tardivement:
j'ai fait:
Code :
ini_set('display_errors', 1);
pour afficher les erreurs, mais je n'ai aucune erreur :s

j'ai ça comme code actuelement pour tester:
Code :
1
2
3
4
5
6
7
<?php
 
exec ("./test", &$output, &$val);
 
echo "<pre>" . $output . "\n" . $val . "</pre>";
 
?>
avec un executable devant simplement afficher 'Hello world' et j'ai comme résultat:

__________________
"Les spécialistes commencent par n'apprendre que ce qu'ils aiment et finissent par n'aimer que ce qu'ils ont appris." - Gilbert Cesbron
"Si nous avons chacun un objet et que nous les echangeons, nous avons chacun un objet. Si nous avons chacun une idée et que nous les échangeons, nous avons chacun deux idées." - Proverbe Chinois.

Dafp[pt] http://pascal.diogoantunes.com
dafpp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 09h27   #7
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
Bonjour,

Normalement à moins que tu n'ai une erreur, avec ce que te t'ai données tu devrais avoir le retour de ton programme dans le var_dump().

En parcourant la doc d'init_set() je suis tombé la dessus :

Citation:
Bien que display_errors peut être défini en cours d'exécution (avec la fonction ini_set()), il n'aura aucun effet si le script a des erreurs fatales, car l'action désirée au moment de l'exécution ne sera pas exécutée.
Edit : Ah je viens de voir que tu a modifié ton message.

Donc en fait tu as correctement le retour de ta requête. En fait $output est un tableau, essaye de mettre $output[0] et tu devrais avoir un affichage.

Dans ton tableau tu as une ligne de retour de résultat par case dans ton tableau.
humitake est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2012, 09h29   #8
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 817
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 817
Points : 1 539
Points : 1 539
Bah elle fonctionne bien alors cette exécution...
Bon à part que je vois pas trop ce qu'est le code retour 126 mais passons...

Pour ton problème de lecture du résultat, voir réponse ci-dessus.
Et tu aurais pu le prévoir, cf la doc :
Citation:
string exec ( string $command [, array &$output [, int &$return_var ]] )
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2012, 09h43   #9
Membre habitué
 
Avatar de dafpp
 
Homme Pascal Diogo Antunes
Étudiant
Inscription : janvier 2008
Messages : 270
Détails du profil
Informations personnelles :
Nom : Homme Pascal Diogo Antunes
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 270
Points : 128
Points : 128
je l'avais fait - output[0]:
Citation:
Notice: Undefined offset: 0 in /index.php on line 5

126
donc erreur fatale étant donné qu'ici le message d'erreur s'affiche correctement.
__________________
"Les spécialistes commencent par n'apprendre que ce qu'ils aiment et finissent par n'aimer que ce qu'ils ont appris." - Gilbert Cesbron
"Si nous avons chacun un objet et que nous les echangeons, nous avons chacun un objet. Si nous avons chacun une idée et que nous les échangeons, nous avons chacun deux idées." - Proverbe Chinois.

Dafp[pt] http://pascal.diogoantunes.com
dafpp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 10h29   #10
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 817
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 817
Points : 1 539
Points : 1 539
Bon en fait cette erreur doit être du parce que l'array est vide.
En effet le retour 126 indique que l'exécutable ne peut être exécuté. Problème de droit ?
Ou bien ce n'est pas un exécutable correct ? Arrives-tu à l'exécuter via un shell ?

Citation:
If a command is found but is not executable, the return status is 126.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2012, 10h38   #11
Membre habitué
 
Avatar de dafpp
 
Homme Pascal Diogo Antunes
Étudiant
Inscription : janvier 2008
Messages : 270
Détails du profil
Informations personnelles :
Nom : Homme Pascal Diogo Antunes
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 270
Points : 128
Points : 128
ok, et oui j'arrive à l'executer, j'ai le droit à un 'Hello World'.
c'est donc de mon hebergeur. Je suis sur OVH, j'avais demandé sur le forum, mais la seule personne qui m'avait répondu me disait que l'execution d'executable personnel (rajouté), marchait avec la version pro, et qu'il ne savait pas sur la version perso.
Donc je vais me rediriger vers la version pro lors de mon renouvelement (sans doute).

merci pour vos réponses.
__________________
"Les spécialistes commencent par n'apprendre que ce qu'ils aiment et finissent par n'aimer que ce qu'ils ont appris." - Gilbert Cesbron
"Si nous avons chacun un objet et que nous les echangeons, nous avons chacun un objet. Si nous avons chacun une idée et que nous les échangeons, nous avons chacun deux idées." - Proverbe Chinois.

Dafp[pt] http://pascal.diogoantunes.com
dafpp 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 17h18.


 
 
 
 
Partenaires

Hébergement Web