Wert ausgeben und weiterverarbeiten.
Werner
- php
Hallo Leute,
ich bin ein PHP Novize und möchte testweise ein kleines Script schreiben, aber ich weiss nicht wie ich etwas realisieren kann. Leider fehlt mir auch der richtige programmiertechnische Ausdruck, damit ich es im Google richtig suchen kann.
Kann mir vielleicht bitte jemand von euch einen Tipp geben?
Ich erklär euch mal was ich machen möchte.
Über eine url http:/127.0.0.1/cgi-bin/auswertung?suche=Ichbineinwert
bekomme ich einen vordefinierten Wert zurück, den mir ein kleines SCript ausgibt.
Das ergebnis der Url (des Programms) z.b. "FREI" möchte ich einer Variable übergeben, damit ich dann mit if und else weiter bearbeiten kann.
Ich schaff es aber nur die URL als Variable zu übergeben, aber net den Wert zu übergeben nachdem die url aufgerufen wurde.
Kann mir bitte jemand einen Schubs in die richtige Richtung geben?
Dder mir bitte sagen, wie der Begriff für diese Wertübergabe heisst , damit ich im Google weitersuchen kann.
Danke für eure Mühe
Werner
echo $begrüßung;
Leider fehlt mir auch der richtige programmiertechnische Ausdruck, damit ich es im Google richtig suchen kann.
"PHP Tutorial"
"PHP Einführung"
"PHP Kurs"
echo "$verabschiedung $name";
Hallo dedlfix,
danke für die Info, aber das kann ich schon. :-)
Ich meinte das, was Chris mir zu zeigen versucht.
Danke für die Hilfe
Werner
echo $begrüßung;
Leider fehlt mir auch der richtige programmiertechnische Ausdruck, damit ich es im Google richtig suchen kann.
"PHP Tutorial"
"PHP Einführung"
"PHP Kurs"echo "$verabschiedung $name";
hi,
danke für die Info, aber das kann ich schon. :-)
Ich meinte das, was Chris mir zu zeigen versucht.
Dann versuche doch bitte das nächste mal deine Frage auch gleich so zu stellen, dass du von "Verfassen einer nachvollziehbaren Problembeschreibung" ebenfalls behaupten kannst, du könntest es.
gruß,
wahsaga
Hallo Wahsaga,
Dann versuche doch bitte das nächste mal deine Frage auch gleich so zu stellen, dass du von "Verfassen einer nachvollziehbaren Problembeschreibung" ebenfalls behaupten kannst, du könntest es.
Du hast völlig recht, das war der Haken daran, dass ich nicht wusste ich wie das "Werte ausführen lassen und ins Skript zurückbringen" net formulieren konnte. :-)
Erlöste
Grüsse
Werner
Hallo Werner,
du willst ziemlich viel auf einmal für einen Neuling!
Ich versuche mal zusammenzufassen, was ich verstanden habe:
Du möchtest mittels eines eigenen Scriptes eine fremde URI aufrufen, die Dir ein in HTML verpacktes Ergebnis zurückliefert.
Dieses Ergebnis möchtest Du aber nicht direkt am Browser ausgeben lassen, sondern in deinem eigenen Script verarbeiten.
Dann probier erstmal folgendes aus:
<?php
error_reporting(E_ALL);
$extern = 'http:/127.0.0.1/cgi-bin/auswertung?suche=Ichbineinwert'
$fh = fopen($extern,'rb+');
if($fh)
{
$daten = '';
while(!eof($fh))
{
$daten .= fread($fh,128);
}
echo "<pre>\n";
echo htmlentities($daten,ENT_QUOTES);
echo "</pre>\n";
fclose($fh);
}
else
{
echo "Pech gehabt...";
}
?>
Dieses Script versucht, die Ressource einzulesen und erstmal nur gleich wieder an den Browser weiterzuleiten als lesbare Textausgabe.
Nach Erfolgsbericht geht es weiter.
LG
Chris
Hallo Chris,
vielen Dank für deinen Lösungsansatz, ich hab das mal ein gebaut.
du willst ziemlich viel auf einmal für einen Neuling!
das stimmt, aber ich versuch das schon seit ner kleinen Ewigkeit, aber find nix, was helfen könnte.
Dein Script ist ja sehr interessant. Man kann also auch urls "öffnen" wie Dateien?
Es kam nach dem Einbau folgende Fehlermeldung zustande:
...
): failed to open stream: HTTP wrapper does not support writeable connections.
...
Pech gehabt...
Gruss
Werner
Hallo Werner,
Dein Script ist ja sehr interessant. Man kann also auch
urls "öffnen" wie Dateien?
Man kann sie einlesen, ähnlich einer Datei.
Oft sind die "fopen-Wrapper" aber abgeschaltet in der PHP-Konfiguration der Request-Server. Der angefragte Server erfährt gar nichts davon, warum was mit ihm geschieht. Für den sieht das so aus, wie eine "normale" Anfrage über einen Browser.
Es kam nach dem Einbau folgende Fehlermeldung zustande:
...
): failed to open stream: HTTP wrapper does not support writeable connections.
...
Pech gehabt...
Ja, wir haben versucht, die ressource auch zum Schreiben zu öffnen. das '+' von 'rb+' hat deinem PHP nicht geschmeckt.
Hier hätte aber auch eine Fehlermeldung vom angefragten Server kommen können, wenn Dein PHP bereits schreibende fopen-Wrapper zulassen würde. MMn geht das ab PHP 4.3.9 (?).
Also nimm das '+' raus.
LG
Chris
Hallo Chris,
Man kann sie einlesen, ähnlich einer Datei.
Das is so genial, hab mir einen Wolf gesucht, wie ich das auswerten könnte.
Oft sind die "fopen-Wrapper" aber abgeschaltet in der PHP-Konfiguration der Request-Server. Der angefragte Server erfährt gar nichts davon, warum was mit ihm geschieht. Für den sieht das so aus, wie eine "normale" Anfrage über einen Browser.
Ein echt praktisches Feature!
Ja, wir haben versucht, die ressource auch zum Schreiben zu öffnen. das '+' von 'rb+' hat deinem PHP nicht geschmeckt.
Das habe ich dann im Manual gefunden, was das bedeutet und dementsprechend geändert.
Hier hätte aber auch eine Fehlermeldung vom angefragten Server kommen können, wenn Dein PHP bereits schreibende fopen-Wrapper zulassen würde. MMn geht das ab PHP 4.3.9 (?).
Ich hab das auf lesend umgestellt und dann hat der ohne Mucken die nötige Info geliefert die ich jetzt gut weiterverarbeiten kann.
Dankende Grüsse
Werner
echo $begrüßung;
Ein echt praktisches Feature!
Was aber auch zu einer Sicherheitslücke führen kann, wenn man es nicht beachtet.
Man will eine lokale Datei öffnen, und setzt den Dateinamen aus einem übergebenen Parameter 'param' zusammen. Nun könnte jemand daherkommen und statt "info", das beispielsweise im Normallfall zu "info.php" erweitert wird, um eine entsprechenden Datei zu laden, dass also jemand statt "info" "http://anderer.server/datei" mitsendet, und dabei unter dieser URL Code ausliefert, der brav von deinem Script abgearbeitet wird.
Beispielcode:
<?php
include $_GET['param'] . '.php';
?>
Abhilfe: $_GET['param'] vor Verwendung gegen eine Liste erlaubter Dateinamen prüfen.
echo "$verabschiedung $name";
Hallo dedlfix,
Abhilfe: $_GET['param'] vor Verwendung gegen eine Liste erlaubter Dateinamen prüfen.
Danke für die Info, es ist gut auch gleich am Anfang etwas von Sicherheit zu lernen, das alleinige Funktionieren von Skripten reicht ja leider nicht. :-/
Das der Wert der überprüft werden soll per POST an die Url übertragen wird, hatte ich das mit $_POST['param'] gelöst.
Danke für die Info! :-)
Gruss
Werner
Hallo Chris,
vielen Dank ich habe es dank dir geschafft. Nachdem ich dein Script verstanden habe, konnte ich auch den Rest verstehen und mir mit dem Manual den Rest zusammensuchen!
Dass fopen auch für streams zu verwenden ist, hat mir geholfen!!! Vielen Dank!!!
Vielen DANK!!!
Gruss :-)
Werner
vielen Dank für deinen Lösungsansatz, ich hab das mal ein gebaut.
du willst ziemlich viel auf einmal für einen Neuling!
das stimmt, aber ich versuch das schon seit ner kleinen Ewigkeit, aber find nix, was helfen könnte.
Dein Script ist ja sehr interessant. Man kann also auch urls "öffnen" wie Dateien?
Es kam nach dem Einbau folgende Fehlermeldung zustande:
...
): failed to open stream: HTTP wrapper does not support writeable connections.
...
Pech gehabt...Gruss
Werner
Hallo Werner,
Dass fopen auch für streams zu verwenden ist, hat mir geholfen!!! Vielen Dank!!!
Anderenfalls hätten wir, abhängig von Deiner Systemkonfiguration, auch noch einen Versuch mit fsockopen()
http://de.php.net/manual/en/function.fsockopen.php
wagen können :-)
LG
Chris
Hallo Chris,
Anderenfalls hätten wir, abhängig von Deiner Systemkonfiguration, auch noch einen Versuch mit fsockopen()
http://de.php.net/manual/en/function.fsockopen.php
wagen können :-)
neee, neee das andere is verständlicher. Ich hab schon Probleme morgens 2 gleichfarbige Socken zu finden, da wäre sowas höchst verwirrend.
:-)
Dankende Grüsse
Werner
Hallo Werner,
neee, neee das andere is verständlicher. Ich hab schon Probleme morgens 2 gleichfarbige Socken zu finden, da wäre sowas höchst verwirrend.
Das muss aber nicht an der Sehfähigkeit oder mangelnder Intelligenz liegen *grins*
Ich hatte auch mal eine Freundin, die mir ganz viele Socken gestrickt hat. Alle aus Restwolle. Da hatte keiner die Farbe eines anderen :-)
LG
Chris
Hallo Chris,
Das muss aber nicht an der Sehfähigkeit oder mangelnder Intelligenz liegen *grins*
Ich hatte auch mal eine Freundin, die mir ganz viele Socken gestrickt hat. Alle aus Restwolle. Da hatte keiner die Farbe eines anderen :-)
Sagen wir so MEINE Freundin strickt net. :-))
Aber mittlerweile rede ich mir und anderen ein, dass ist mein "Branding" damit ich nen USP habe und aus der Crowd raussteche. xD :-)))) *
*Missbräuchliche oder nichtverstandene Verwendung der "Words" inbegriffen. :-))
Gruss
Werner