Schrift
[thread]12229[/thread]

Es ist zum Verzweifeln - Perl und PHP (Seite 2)

Leser: 1


<< |< 1 2 >| >> 19 Einträge, 2 Seiten
Gast Gast
 2008-07-24 00:17
#112548 #112548
Linuxer+2008-07-23 19:24:37--
Folgendes funktioniert bei mir:

Code: (dl )
1
2
3
4
5
<?
exec( "echo 'Hello World'", &$output, &$return );
echo "external command returned: $output[0]<br>";
echo "external exited with $return<br>";
?>

Versuch das mal mit einem (Perl) CGI-Script ...
Linuxer
 2008-07-24 03:21
#112558 #112558
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Gast+2008-07-23 22:17:08--
Versuch das mal mit einem (Perl) CGI-Script ...


klappt wunderbar. Was ist die Intention Deines Beitrags?
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Gast Gast
 2008-07-24 16:15
#112601 #112601
Linuxer+2008-07-24 01:21:00--
Gast+2008-07-23 22:17:08--
Versuch das mal mit einem (Perl) CGI-Script ...


klappt wunderbar.

exec() wie auch passthru() führen über die Shell aus - somit leider kein Zugriff auf die Umgebungsvariablen des Webservers.

Beispiel:

Code: (dl )
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl
use CGI qw/:standard/;

print header,
start_html,
h2("Parameter:"), CGI::as_string(),
h2("Environment:"),
(map { p("$_ => $ENV{$_}") } sort keys %ENV),
end_html;


Aufgerufen unter PHP mit:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
<?php

passthru("./cgi-bin/dump.pl");
echo "---------------------------<br />";

exec("perl","./cgi-bin/dump.pl", &$output, &$return );
foreach ($output as $line) {
echo "$line<br />";
}
echo "---------------------------<br />";

?>
Linuxer
 2008-07-24 21:48
#112655 #112655
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Genau deshalb schrieb ich ja zusätzlich:

Linuxer+2008-07-23 19:24:37--
...
Sollte analog auch mit einem Perlskript funktionieren, dem dann die notwendigen Infos als Parameter gegeben werden können (evtl. auch aus %ENV ermittelt...)...
...


Ich gebe zu, dass die Formulierung nicht eindeutig war. Gemeint war, die Umgebung innerhalb des PHP auszuwerten und dann relevante Informationen als Parameter an das aufgerufene Skript zu geben. Keine Ahnung, wie unter PHP auf die Umgebung zugegriffen wird; %ENV dürfte es da nicht geben, aber sicherlich eine ähnliche Variante, oder nicht?
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
GwenDragon
 2008-07-24 22:02
#112656 #112656
User since
2005-01-17
14848 Artikel
Admin1
[Homepage]
user image
Kann bitte mal der Startposter auf den Server eine PHP-Datei hochladen mit folgendem Inhalt und die aufrufen:
[php]<?php phpinfo();?>[/php]
Mit phpinfowird angezeigt, ob safe_mode aktiv ist.

Wenn der safe_mode aktiviert ist, brauchen wir hier gar nicht weiter zu diskutieren, wie wodurch wohin was ausgelesen werden kann.
Zudem wird dann garantiert Perl mit suexec laufen und php mit suPHP o. ä.
Beide getrennte Sichehrheitsprogramme für CGIs.
Escape
 2008-07-25 00:11
#112663 #112663
User since
2008-07-24
312 Artikel
BenutzerIn
[default_avatar]
safe_mode ist nicht aktiviert aber alle Perl Scripte laufen unter suexec.
Die Deutsche Rechtschreibung ist Freeware; Du darfst sie kostenlos nutzen – aber sie ist nicht Open Source, d.h. Du darfst sie nicht verändern und/oder in veränderter Form veröffentlichen.
GwenDragon
 2008-07-25 11:38
#112685 #112685
User since
2005-01-17
14848 Artikel
Admin1
[Homepage]
user image
Aha, und Perl-Skripte auch unter demselben suexec-Prozess? Oder haben die getrennte user und groups.
Escape
 2008-07-25 12:53
#112687 #112687
User since
2008-07-24
312 Artikel
BenutzerIn
[default_avatar]
Getrennt User und Groups.
Die Deutsche Rechtschreibung ist Freeware; Du darfst sie kostenlos nutzen – aber sie ist nicht Open Source, d.h. Du darfst sie nicht verändern und/oder in veränderter Form veröffentlichen.
Escape
 2008-07-25 17:30
#112719 #112719
User since
2008-07-24
312 Artikel
BenutzerIn
[default_avatar]
Das Problem nähert sich einer Lösung :-)
Mit
Code: (dl )
1
2
3
4
<?php

include("http://meine_domain.com/cgi-bin/dump.pl");
?>

wird das kleine Perl Script (weiter oben) jetzt ausgeführt und der Output wird vom PHP Script an den Browser gesendet.
Die Deutsche Rechtschreibung ist Freeware; Du darfst sie kostenlos nutzen – aber sie ist nicht Open Source, d.h. Du darfst sie nicht verändern und/oder in veränderter Form veröffentlichen.
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2008-07-23 18:40.