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

Delphi Discussion :

Passage de variables d'un DSO ou un CGI à un script php


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Par défaut Passage de variables d'un DSO ou un CGI à un script php
    Bonsoir,
    j'ai une question qui me turlupine
    Je sais que l'on peut passer des variables à un programme CGI ou un objet DSO par les méthodes POST et/ou GET à partir d'un simple formulaire html par exemple, mais est-t-il possible de passer des variables à script php par un DSO ou un CGI ???
    En d'autre terme de développer des DSO et/ou des CGI que l'on pourrait utiliser comme des fonctions dans des scripts php.
    J'espère que je ne choque personne avec cette question naïve

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 489
    Par défaut
    salut

    la reponse est oui en les passant comme des paramettre post ou get

    @+ phil

  3. #3
    Membre confirmé Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Par défaut
    Encore merci Anapurna, décidément tu es mon sauveur aujourd'hui
    je pense que je regarderai tout ça en détail demain matin, je suis un peu fatigué ce soir. Mais lorsque tu dis :
    ... en les passant comme des paramettre post ou get
    est-ce que tu aurais un petit exemple delphi pour illustrer ces propos ?
    je pense que la récupération dans le script php est relativement simple avec un _GET je suppose. Sinon ce n'est pas grave je vais creuser un peu plus ce problème.
    Merci pour cette réponse qui me permet de savoir que je dois continuer à chercher

  4. #4
    Membre confirmé Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Par défaut
    bonjour
    alors voilà ce que j'ai fait, toujours en utilisant EasyPhp2.0b1 :
    tout d'abord j'ai créer mon DSO (mod_DSO_test_01) dont voici une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TWebModule1.WebModule1WebActionItem2Action(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    begin
      Response.Content := '<h1>Hello Worlds</h1>'  + 'REQUEST_METHOD = POST <br />' +
        'UserName = ' + request.ContentFields.Values['UserName'] + '<br />' +
        'PassWord = ' + request.ContentFields.Values['PassWord'] + '<br />';
    end;
    j'ai placé le DSO dans le répertoire apache/modules, puis j'ai modifié le fichier httpd.conf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LoadModule DSO_test_01_module modules/mod_DSO_test_01.so
    <Location /delphiTest>
      SetHandler mod_DSO_test_01-handler
    </Location>
    j'ai utilisé dans mon script php une fonction qui est très bien expliqué à l'adresse suivante:
    http://www.zend.com/zend/spotlight/mimocsumissions.php
    et dont voici le code (un peu modifié) :

    Code php : 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    function post_it ($datastream, $url, $method) {
      $url = preg_replace("@^http://@i", "", $url);
      $host = substr($url, 0, strpos($url, "/"));
      $uri = strstr($url, "/");
     
      $reqbody = "";
      foreach($datastream as $key=>$val) {
        if (!empty($reqbody)) $reqbody.= "&";
        $reqbody.= $key."=".urlencode($val);
      }
     
      if ($method == "GET") {
        $uri .= '?' . $reqbody;
      }
      echo "<br>".$uri."<br>";
      $contentlength = strlen($reqbody);
      $reqheader =  $method . " " . $uri . " HTTP/1.1\r\n".
                    "Host: " . $host . "\n".
                    "User-Agent: PostIt\r\n".
                    "Content-Type: application/x-www-form-urlencoded\r\n".
                    "Content-Length: " . $contentlength . "\r\n".
                    "Connection: Close\r\n\r\n".
                    $reqbody . "\r\n";
     
      $socket = fsockopen($host, 80, $errno, $errstr);
     
      if (!$socket) {
        $result["errno"] = $errno;
        $result["errstr"] = $errstr; 
        return $result;
      }
     
      fputs($socket, $reqheader);
     
      while (!feof($socket)) {
        $result[] = fgets($socket, 4096); 
      }
     
      fclose($socket); 
     
      return $result;
    }

    et enfin voici comment utiliser tout ça dans un script php :

    Code php : 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
      $VARIABLE = "BLABLABLABLA";
     
      $data["UserName"] = "some";
      $data["PassWord"] = "data";
     
      $result = post_it($data, "http://localhost/delphiTest", "POST");
     
      if (isset($result["errno"])) {
        $errno = $result["errno"];
        $errstr = $result["errstr"];
        echo "<B>Error $errno</B> $errstr";
        exit;
      } else {
          for($i=0;$i< count($result); $i++) $VARIABLE .= $result[$i];
      }
      echo $VARIABLE;

    Bon il est clair que c'est une utilisation plutôt basique mais maintenant je peut faire évoluer mon DSO.

    Si vous avez des suggestions ou des remarques je suis toujours preneur

Discussions similaires

  1. [langage] Probleme passage de variables entre modules
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2004, 12h25
  2. Passage de variable dans un lien asp
    Par VirginieGE dans le forum ASP
    Réponses: 4
    Dernier message: 27/07/2004, 10h06
  3. [Kylix] passage de variable en Libc
    Par zheng dans le forum EDI
    Réponses: 11
    Dernier message: 06/05/2004, 14h14
  4. Passage de variable par methode post ?
    Par oazar dans le forum Flash
    Réponses: 33
    Dernier message: 16/10/2003, 17h03
  5. [langage] Passage de variables...
    Par martijan dans le forum Langage
    Réponses: 8
    Dernier message: 30/07/2003, 09h48

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