versuchs mal mit
mit einer dieser funktionen
hab selbst keine erfahrung damit gesammelt. forscherdrang deinerseits ist wohl gefragt![]()
wie mach ich das in php am schlauesten:
ich will ein cgi aufrufen, und ihm post-parameter übergeben. was es mir dann zurückgibt würde ich notfalls auch nehemn, aber eigentlich brauch ich das nicht unbedingt.
mach ich das mit fget und fput? davon hab ich noch nie gebraúch gemacht (*keine ahnung hab*)
am liebsten wäre mir ein kleines codebeispiel zum aufruf folgenden cgis: www.jonemo.de/cgi-bin/beispiel.cgi mit den post parametern
id=jonemo
passwd=rolf
(das script gibt es tatsächlich NICHT!)
danke für eure hilfe schon mal im voraus, jonemo.
versuchs mal mit
mit einer dieser funktionen
hab selbst keine erfahrung damit gesammelt. forscherdrang deinerseits ist wohl gefragt![]()
Hallo!
Folgendes Beispiel sollte funktionieren:
ColinPHP-Code:$data = "id=jonemo&passwd=rolf";
$fp = fsockopen("www.jonemo.de", 80);
fputs($fp, "POST /cgi-bin/beispiel.cgi HTTP/1.1\n");
fputs($fp, "Host: www.jonemo.de\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($data) . "\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, $data);
while (!feof($fp))
$output .= fgets($fp, 128);
fclose($fp);
Geändert von Colin Schlüter (13.01.2003 um 18:03 Uhr)
also bei mir sieht das jetzt folgendermaßen aus:
und das ergebnis so:PHP-Code:<?php
$data = 'pass=XXXXXXXXXXX&action=pop3&pop=&domain=globaldrive.de&submit=anwenden';
$fp = fsockopen("user:user@mx2.evanzo-server.de", 80);
fputs($fp, "POST /cgi-bin/beispiel.cgi HTTP/1.1\n");
fputs($fp, "Host: [url]http://user:user@mx2.evanzo-server.de\n[/url]");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($data) . "\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, $data);
while (!feof($fp))
$output .= fgets($fp, 128);
fclose($fp);
echo $output;
?>
http://www.globaldrive.de/test/mail.php
also bei mir kommen da jedenfalls haufenweise fehler. und was hab ich falsch gemacht?
Hi!
Die Fehler scheinen an dem "user:user" zu liegen, dass nicht als Hostname akzeptiert wird.
Ich nehme an, damit soll eine Basic Authorization realisiert werden (.htaccess)?
Dann sollte der Code folgendermaßen lauten (nicht getestet):
Ansonsten (ohne user ...) funktioniert mein obiger Quellcode bei mir wunderbar.PHP-Code:$username = "user";
$password = "user";
$data = "pass=XXXXXXXXXXX&action=pop3&pop=&domain=globaldrive.de&submit=anwenden";
$fp = fsockopen("mx2.evanzo-server.de", 80);
fputs($fp, "POST /cgi-bin/beispiel.cgi HTTP/1.1\n");
fputs($fp, "Authorization: Basic " . base64_encode("$username:$password") . "\n");
fputs($fp, "Host: mx2.evanzo-server.de\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($data) . "\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, $data);
while (!feof($fp))
$output .= fgets($fp, 128);
fclose($fp);
Colin
hallo,
ich arbeite mit jonemo zusammen und das script hier ahben wir momentan.
Frage: muss das cgi script aufm selben server liegen oder kann das auch ein anderer sein? schauts euch mal an:
PHP-Code:<?php
$username = "user";
$password = "user";
$data = "pass=xxxxxx&action=pop3&pop=&domain=globaldrive.de&submit=anwenden";
$fp = fsockopen("mx2.evanzo-server.de", 80);
fputs($fp, "POST [url]http://user:user@mx2.evanzo-server.de/evanzo-USER/mailserver.cgi[/url] HTTP/1.1\n");
fputs($fp, "Authorization: Basic " . base64_encode("$username:$password") . "\n");
fputs($fp, "Host: mx2.evanzo-server.de\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($data) . "\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, $data);
while (!feof($fp))
$output .= fgets($fp, 128);
fclose($fp);
echo $output;
?>
Geändert von SKYRUNNER (14.01.2003 um 08:55 Uhr)
PS: durch das user:user nciht stören lassen. dort erfolgt keine weitere passwortabfrage! ka, warum das da drinne steht. das passwort wird nur via cgi geprüft (nix mit htaccess oder sowas)
MfG
Hallo!
Soweit ich weiß, kann das Script auch auf jedem anderen Server sein.
In eurer Version habt ihr nach dem POST die komplette URL drin, das ist IMHO nicht korrekt, da müsste eigentlich nur der Pfad hin, also nur "POST /evanzo-USER/mailserver.cgi HTTP/1.1\n".
Colin
PS. Könntest du vielleicht in deinem Post "URLs umwandeln" und "Grafische Smilies" deaktivieren, dann wird es sehr viel lesbarer.![]()
Problem habe ich zusammen mit Jonemo lösen können -> ERGO: Thread kann als Beanwortet markiert werden...
MfG
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)