Post und danach Ausgabe
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
agent
apache
ausdrucksweise
ausgabe
ausschneiden
bestimmte eingabe
connection
datenstruktur
error
formular
inhalt
irakische zivilisten
lag
normalfall
not
pack
tautologie
timeout
versuch
zeile
-
Ich will, dass durch PHP automatisch eine bestimmte Eingabe in einem Formular-Feld gemacht wird und danach soll dann die Seite ausgegeben werden, die ausgegeben wird.
Mal Beispiel:
Ihr ruft die Suche hier auf lima auf, gebt da "Test" ein und dr?ckt auf Suchen.
Nun soll durch PHP automatisch die Seite ausgeben werden, die dann angezeigt w?rde.
Kann ich das in PHP umsetzen?
Wie?
H2O -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo h2o!
Ich musste den Text mehrmals durchlesen, bevor ich verstanden habe, was du meintest. (Und das lag diesmal sicher nicht an meinen Lesef?higkeiten )
... und danach soll dann die Seite ausgegeben werden, die ausgegeben wird.
Eine pleonastische Tautologie?
Ich will mal versuchen zu erkl?ren, wie das ablaufen k?nnte und entschuldige mich schon mal im Voraus f?r meine verkorkste Ausdrucksweise:
1.) Das PHP-Script ruft mit fsockopen() eine Web-Seite auf.
2.) Das PHP-Script findet im zur?ckgegebenen Text das HTML-Formular.
3.) Es wertet das Formular aus und erstellt eine Datenstruktur (assoziatives Array?), in welcher die einzugebenden Formulardaten abgespeichert werden.
4.) Je nach Art des Formulars erstellt das Script aus der Datenstruktur einen TextString nach "URL-Query-Art" ("?bla=blubb&blo=bli") f?r GET-Requests oder eine Reihe von "Text-Zeilen" f?r einen POST-Request.
5.) Mit fsockopen() wird die Adresse des Formulars (action-Attribut) angefordert und dabei der entsprechende Request mitgeschickt.
6.) Die zur?ckgegebenen Daten (normalerweise wieder eine HTML-Seite) werden mit echo() oder print() ausgegeben.
So in etwa?
MfG
alopex -
Ich musste den Text mehrmals durchlesen, bevor ich verstanden habe, was du meintest. (Und das lag diesmal sicher nicht an meinen Lesef?higkeiten )
Ui, da hab ich mir ja wirklich was zusammengeschrieben...
Aber es ist ja auch nicht so einfach auszudr?cken ;)
Eine pleonastische Tautologie?
Was auch immer das sein mag...
Ich will mal versuchen zu erkl?ren, wie das ablaufen k?nnte und entschuldige mich schon mal im Voraus f?r meine verkorkste Ausdrucksweise:
[...]
Also ich habe schon herausgefunden, wie man das POST absendet:
http://www.php-faq.de/q/q-code-post.html
Aber ich wei? nicht, wie ich danach den Inhalt der Seite ausgeben kann, an die das gesendet wurde...
Das ist mein Problem.
Ist das vielleicht mit CGI m?glich?
Mein Apache kann auch CGI... *gg*
H2O -
Aber ich wei? nicht, wie ich danach den Inhalt der Seite ausgeben kann, an die das gesendet wurde...
Das sollte, soweit ich das richtig verstanden habe *alopex_imitier^^*, mit fgets funktionieren!
<?
$ausgabe = fgets($fp,2048);
echo $ausgabe;
?>
Das dann in eine while-Schleife packen, damit alles ausgelesen wird!
-
Ja genau, so geht das. Unter
http://www.php.net/de/manual/function.fsockopen.php
m?sste sich auch ein Beispielscript befinden.
Die Vorgehensweise ist zweiteilig:
1.) Mit fputs() den HTTP-Request senden.
2.) Wenn dies erfolgreich war, mit fgets() abholen, was der Server alles schickt.
Wie es der Zufall so will, habe ich vor ca. 3 Stunden gerade sowas ?hnliches angefangen zu programmieren. Hier mal ein Ausschnitt:
$err = ''; // Kein Fehler im Normalfall
$timeout = 30; // Sekunden
$ua = 'Zomilla/1.0';
$referrer = '';
$server = '127.0.0.1';
$server = 'www.mein-horst.de';
$request_uri = '/site/index.shtml';
$sh = fsockopen($server, 80, $err_num, $err_str, $timeout);
if($sh === FALSE) {
warn('Error: Could not not establish fsock connection to "'.$server.$request_uri.'"!');
warn('fsockopen() Error: '.$err_str);
$err = '('.$err_num.') '.$err_str;
return(FALSE);
}
print("Sending Headers ...<br />\n");
// Seite anfordern
$ok = TRUE;
$ok = @fputs($sh, 'GET '.$request_uri." HTTP/1.0\n");
$ok = @fputs($sh, 'Host: '.$server."\n"); // sonst erzeugt PHP auf dem Server keine HTTP_HOST-Variable
$ok = @fputs($sh, 'Referer: '.$referrer."\n");
$ok = @fputs($sh, 'User-Agent: '.$ua."\n");
$ok = @fputs($sh, "\n");
if($ok === FALSE) {
$err = 'Error: Could not send HTTP request!';
warn($err);
@fclose($sh);
return(FALSE);
}
print("Receiving ...<br />\n");
// Seite empfangen
while( !feof($sh) ) {
$tmp_buffer = @fgets($sh);
if( $tmp_buffer === FALSE ) break;
//printf("%s<br />\n", dehtml($tmp_buffer) );
$buffer .= $tmp_buffer;
}
if($tmp_buffer === FALSE) {
$err = 'Error: Could not receive full page!';
warn($err);
@fclose($sh);
return(FALSE);
}
@fclose($sh);
Das ist nat?rlich wieder ?belster M?slifresser-Programmierstil, aber es sollte dir nicht schwerfallen, das passend hinzubiegen. Unter
http://alopex.pyrokar.lima-city.de/srccodelist/index.php?name=h2o_fsockopen
kannst du dir den Qu?ltext formatiert anschauen. Unter
hhttp://alopex.pyrokar.lima-city.de/srccodelist/index.php?name=h2o_fsockopen&mode=coloured
auch in bunt aber ohne Zeilennummern.
... Aber ich sehe gerade (*logfile_analysier*), compactdisc war wieder schneller als du ... (*mich_selbst_imitier*)
Eine pleonastische Tautologie?
Was auch immer das sein mag...
Ich w?rde sagen: Nicht verzagen, Thornet fragen! Der kennt sich doch mit Sprache aus.
Mein Apache kann auch CGI... *gg*
Wow! Von den Apachen, die ich kenne ist einer tot (der Blutsbruder von Old Shatterhand) und mit dem anderen schie?t man irakische Zivilisten tot, die nicht schnell genug weglaufen k?nnen. Aber CGI? Noch nie davon geh?rt ...
@compactdisc
(Meine geistigen F?higkeiten nehmen durch diese st?ndige Lima-City-Berieselung langsam ab, jetzt fange ich auch schon an, "@"'s vor die Namen zu setzen, um pers?nliche Anrede zu simulieren)
Seit PHP4.2.0 (ungef?hr) kann der zweite Parameter bei fgets() weggelassen werden. PHP nimmt dann automatisch einen Puffer von 8192 Bytes und kann auch l?ngere Zeilen einlesen.
compactdisc imitier , wie er mich imitiert
(Ich glaube, dass hab ich schon mal irgendwo so ?hnlich geschrieben).
MfG
alopex
*nachtr?glich_einf?g*
Ja, ausgeben muss man den Text schon, wenn man ihn sehen muss. *schmunzel* -
Argghhh...
Ich hab das Problem gel?st...
Das Script auf http://www.php-faq.de/q/q-code-post.html hat bereits gemacht was ich wollte, ich hatte nur leider vergessen ein echo $x anzuh?ngen *ggg*
Sorry...
Aber vielen Dank f?r eure Bem?hungen.
[ closed ]
H2O -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage