phpbar.de logo

Mailinglisten-Archive

[php] Perl-Script mit =?iso-8859-1?Q?Variable=FCbergabe?= aus Php aufrufen

[php] Perl-Script mit =?iso-8859-1?Q?Variable=FCbergabe?= aus Php aufrufen

Joerg Behrens behrens_(at)_takenet.de
Tue, 27 Jun 2000 12:10:44 +0200


> Georg Leitner schrieb:
> 
> Liebe Liste,
> ich hänge immer noch an dem Problem, stinknormale Perl-Scripts aus Php
> (3.0.16 unter W2K auf Xitami 2.4 / 3.0.16 unter Linux auf Apache
> 1.3.12) aufzurufen.
> 
> was nehm ich jetzt ? virtual(), exec(), include?
> 
> Wichtig für mich ist, dass ich dem Perl-Script ein paar (auch längere)
> Variablen mit auf den Weg geben kann und den Output irgendwie
> zurückgeliefert bekomme.
> 
> Scheinbar bin ich mit dem Problem nicht ganz alleine  - aber leider
> fehlen die Antworten im Listarchiv :)
> 


Niemand ist wirklich allein.......

Spass beiseite. Sorry fuer die spaete Antwort, aber die Anworten lagen
im Buero und zuhause fehlte die Motivation. Fuer ein Projekt (das mit
PHPlib realisiert wurde) war es aber von Nöten mit Crypt anstelle der
MD5 verschluesselten Passwörter zu verwenden. Im Rahmen der
Plattformkompatiblitaet musste das ganze auch unter Windows(NT.4.0)
laufen. Das war nur mit Hilfe von Perl zuschaffen. 

Leider war es zum verrecken nicht zu schaffen mit dem Beispiel was ueber
die ML (trotzdem nochmal Danke an "ritze") kam unter Windows (steht
evtl. sogar im Manual) Perl mit dem Parameter -e aufzurufen. Backticks
hin oder her.... unter *nix ging es sofort. Aber wenn der Prophet nicht
zum Berge kommt dann halt anders herum...


Somit wurde ein ein externes Perlscript aufgerufen und ihm zusaetzlich
ein paar Parameter mit auf dem Weg gegeben.

<?
// snip
$cmd = "perl $DOCUMENT_ROOT/pages/admin/crypt.pl $pass $salt";
exec("$cmd",$auth_array,$err);
$password = $auth_array[0];
?>

Perl steht natuerlich im Pfad. Ansonsten halt den genau angeben
"c:/perl/bin/perl.exe". Die Funtion exec() liefert Standardmessig nur
die letzte Zeile zurueck (die war oftmals leer (evtl. der Fehler bei
dir?)). und deshalb der Weg ueber das Array. $err enthaelt einen
Status/Fehlercode. Im Perl Script selbst kannst du dann mittels
$ARGV[0]... auf die uebergegebenen Parameter zugreifen.

Script crypt.pl
---------------
print crypt("$ARGV[0]","$ARGV[1]");


Schoene gruesse aus dem sonnigen Wuerzburg.. in Hannver hat es heute
morgen noch geregnet.


-- 
Key fingerprint =  92 7D E0 A6 CF AE EC 32  14 28 EF 0D 57 2A 88 5B
----------------------------------------------------------------------
TakeNet GmbH					Mobil: 0171/60 57 963			
D-97080 Wuerzburg				Tel: +49 931 903-2243				
Alfred-Nobel-Straße 20				Fax: +49 931 903-3025


php::bar PHP Wiki   -   Listenarchive