IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Exécuter une commande


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Par défaut [Système] Exécuter une commande
    Bonjour,

    j'ai une commande qui fonctionne correctement lorsque je l'éxécute en lancant executer/cmd

    Par contre lorsque je l'integre dans un exec dans mon fichier php ca ne marche pas !
    Voici ce que j'execute via cmd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe" -hlocalhost -uroot -pmonpass < "D:\guides.sql"
    en php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $commande = "\"C:/Program Files/MySQL/MySQL Server 5.0/bin/mysql.exe\" -hlocalhost -uroot -pmonpass < \"D:/guides.sql\"";
    		echo $commande.'<br \>';
    		$res = exec($commande) or die('erreur');
    Dans les log d'apache voici l'erreur :
    '/' n'est pas reconnu en tant que commande interne
    ou externe, un programme ex‚cutable ou un fichier de commandes.

    Merci d'avance

  2. #2
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Salut,
    Dans un premier temps
    Utilise des quote plutot que des guillemets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $commande = '"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe" -hlocalhost -uroot -pmonpass < D:\guides.sql ';
    ++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Par défaut
    J'ai rajouté après le exec, un et il me marque toujours
    erreur
    .

    Lorsque je regarde les log de apache, j'ai ce message :
    '/' n'est pas reconnu en tant que commande interne
    ou externe, un programme ex‚cutable ou un fichier de commandes.
    En modifiant comme proposé précédement, j'obtiens ce message dans les log d'apache :
    Syntaxe du nom de fichier, de r‚pertoire ou de volume incorrecte.

  4. #4
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    BOnjour !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $commande = '\"C:/Program Files/MySQL/MySQL Server 5.0/bin/mysql.exe\" -hlocalhost -uroot -pmonpass < \"D:/guides.sql\"';
    		echo $commande.'<br \>';
    		$res = exec($commande) or die('erreur');
    EDIT : J'ai dit des bétises la Ha pas tant que ca si c'est un pb de \ faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $commande = '\\"C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\mysql.exe\\" -hlocalhost -uroot -pmonpass < \\"D:\\guides.sql\\"';
    		echo $commande.'<br \>';
    		$res = exec($commande) or die('erreur');

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Par défaut
    J'ai déjà tester avec \\ et ca ne marche pas,

    Dans ton code, manière il y a une erreur...

  6. #6
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Ha ok au tant pour moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $commande = '\"C:/Program Files/MySQL/MySQL Server 5.0/bin/mysql.exe\" -hlocalhost -uroot -pmonpass < \"D:/guides.sql\"';
    		echo $commande.'<br \>';
    		$res = exec($commande) or die('erreur');
    Le premier \ doit y être forcemment non? Si oui il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $commande = '\\"C:/Program Files/MySQL/MySQL Server 5.0/bin/mysql.exe\\" -hlocalhost -uroot -pmonpass < \\"D:/guides.sql\\"';
    		echo $commande.'<br \>';
    		$res = exec($commande) or die('erreur');

  7. #7
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    tente un truc de ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $commande = '"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe" -hlocalhost -uroot -pmonpass < D:\guides.sql ';
     
     
    exec($commande , $output, $err);
     
    echo "CMD : $command<br>";
    echo 'output : '.nl2br(print_r($output,true)).'<br>';
    echo 'err : '.$err.'<br>';
    Attention ! les / et \ n'ont pas la même fonction.
    ici c'est un chemin Windows donc \

  8. #8
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Salut,

    je vais surement dire une bêtise, mais dans ta commande tu utilises des \ (antislash) et dans ton php des / (slash), ça ne viens pas de la le problème ?

    A+

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Par défaut
    Citation Envoyé par miron Voir le message
    Salut,

    je vais surement dire une bêtise, mais dans ta commande tu utilises des \ (antislash) et dans ton php des / (slash), ça ne viens pas de la le problème ?

    A+
    Déjà testé, et toujours pareil ...

Discussions similaires

  1. Réponses: 12
    Dernier message: 28/04/2009, 09h20
  2. [Système] Exécuter une ligne de commande
    Par fordprobe dans le forum Langage
    Réponses: 2
    Dernier message: 09/07/2007, 14h46
  3. [Système] Exécuter une commande java avec exec()
    Par kenny49 dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2007, 09h29
  4. Exécuter une commande système avec perl
    Par Olivier Regnier dans le forum Langage
    Réponses: 12
    Dernier message: 08/04/2007, 16h41
  5. exécuter une commande système à partir de sqlplus?
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 24
    Dernier message: 08/11/2005, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo