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] lancement d'un exécutable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut [Système] lancement d'un exécutable
    Bonjour à tous,

    je viens de débuter en php, j'ai une bdd postgresql/postgis

    j'arrive à effectuer des requêtes et les afficher en php mais je souhaiterai lancer un exécutable pour transformer les résultats d'une requête. Cet exécutable fonctionne correctement quand je le lance depuis la fenêtre dos

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    // Connexion, sélection de la base de données
    	$dbconn = pg_connect("host=localhost port=5432 dbname=bd_spatiale user=[user] password=[mdp]")
        or die('Connexion impossible : ' . pg_last_error());
    // Exécution de la requête SQL
    	$query = "SELECT d2.* FROM datatest, d2 WHERE within(d2.the_geom, datatest.the_geom)";
    	$result = pg_query($query) or die('Échec requête : ' . pg_last_error());
    // Exportation en SHAPE
    	$pgsql2shp = "call \"c:\\program files\\postgresql\\8.2\\bin\\pgsql2shp.exe\"" ;
    	$shellcommand = $pgsql2shp."e:\data.shp bd_spatiale ".$query." -h localhost -u [user] -P [mdp]";
    	shell_exec ($shellcommand);
    // Affichage des résultats en HTML
    	echo "<table>\n";
    	while ($line = pg_fetch_array($result, null, PGSQL_ASSOC))
    	{
    		echo "\t<tr>\n";
    		foreach ($line as $col_value)
    		{
    			echo "\t\t<td>$col_value</td>\n";
    		}
    		echo "\t</tr>\n";
    	}
    	echo "</table>\n";
    // Libère le resultset
    	pg_free_result($result);
    // Ferme la connexion
    	pg_close($dbconn);
    ?>
    Je ne situe pas bien où est le prb dans l'exécution, merci d'avance pour vos réponses

    Bon week-end

    Benjamin

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour,

    As tu safe_mode() à ON ou OFF ?

    shell_exec() ne fonctionne pas si safe_mode() est à ON

    Voir dans phpinfo();

  3. #3
    Membre chevronné Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $shellcommand = $pgsql2shp."e:\data.shp bd_spatiale ".$query." -h localhost -u [user] -P [mdp]";
    Double \ dans les chaines a double quotes.
    Je me demande aussi si ca ne pose pas de problème avec les crochets. PHP risque de les interpréter comme tableau.
    Sinon, utilise les simples quotes, d'autant plus que tu fais de la concaténation.

    Sohnic

  4. #4
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Merci pour vos réponses,

    oui j'ai vérifié dès le départ pour le safe mode, pour les crochets et le \ rien n'y fait

  5. #5
    Membre chevronné Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Par défaut
    Et si tu fais un echo de ton shell_exec et que tu le copies -colles dans une console dos, ca marche ?

    S.

  6. #6
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Il ne m'affiche rien, il passe directement à la suite du code, l'affichage du tableau de résultat. Je suppose que j'ai un probléme dans la façon dont j'ai écrit l'appel à la fonction, étrange...

    voici l'écran d'aide du fichier pgsql2shp :

    "RCSID: $Id: pgsql2shp.c 2513 2006-10-14 14:22:10Z mschaber $ RELEASE: 1.2.1
    USAGE: pgsql2shp [<options>] <database> [<schema>.]<table>
    pgsql2shp [<options>] <database> <query>

    OPTIONS:
    -f <filename> Use this option to specify the name of the file
    to create.
    -h <host> Allows you to specify connection to a database on a
    machine other than the default.
    -p <port> Allows you to specify a database port other than the default.
    -P <password> Connect to the database with the specified password.
    -u <user> Connect to the database as the specified user.
    -g <geometry_column> Specify the geometry column to be exported.
    -b Use a binary cursor.
    -r Raw mode. Do not assume table has been created by
    the loader. This would not unescape attribute names
    and will not skip the 'gid' attribute.
    -k Keep postgresql identifiers case.
    -? Display this help screen."

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Système] Lancement d'un exécutable avec PHP
    Par fdu63 dans le forum Langage
    Réponses: 5
    Dernier message: 02/08/2006, 10h00
  2. Réponses: 18
    Dernier message: 15/02/2006, 13h51
  3. [Système] Lancement d'un exe
    Par MeDioN dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 25/01/2006, 15h17
  4. [Système] fonction system et exécutable
    Par Luffy Duck dans le forum Langage
    Réponses: 5
    Dernier message: 03/01/2006, 17h49
  5. Lancement d'un exécutable
    Par devl83 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/10/2005, 11h31

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