1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Seiten verarbeiten (relative Pfadangabe im Query-String)

  • lolaB
  • 8. Februar 2003 um 15:07
  • Unerledigt
  • lolaB
    4
    lolaB
    Mitglied
    Punkte
    120
    Beiträge
    19
    • 8. Februar 2003 um 15:07
    • #1

    Hallo,

    ich habe hier ein PHP-Script, das die im Query-String angegebene Seite
    ausliest, verarbeitet und wieder ausgibt (es geht um die Generierung einer
    behindertengerechten Text-Version):

    Der Aufruf sieht also so aus:
    http://www.domain.com/text.php?news/index.htm

    Da mein Provider das Angeben von URLs (allow_url_fopen) nicht gestattet,
    muss der Pfad relativ sein.

    Im Script steht:
    $qs = getenv("QUERY_STRING");
    $datei = file($qs);

    Für normale HTML-Seiten funktioniert das wunderbar, Probleme habe ich beim
    Auslesen von CGI-Dateien (Perl) - verständlicherweise soll die HTML-Ausgabe
    der CGI-Datei gelesen werden.

    text.php?cgi-bin/datei.cgi
    liefert den Quelltext (!!) der CGI-Datei zurück,

    text.php?cgi-bin/genmail.cgi?sb
    liefert einen File-not-found-Error.

    Lokal am Rechner ist das Ergebnis dasselbe. Gebe ich allerdings den
    absoluten Pfad ein, klappts - diese Möglichkeit habe ich aber bei meinem
    Provider nicht (s.o.). Ich hab versucht, das zweite ? zu kodieren
    (urlencode()), aber damit war ich nicht erfolgreich. Das Hauptproblem ist ja
    auch, dass im ersten Beispiel der Quelltext ausgegeben wird - damit kann ich
    nichts anfangen.

    Fällt euch vielleicht eine Lösung für dieses Problem ein?

    Danke & mit freundlichen Grüßen,
    Lola


  • lj_scampo
    8
    lj_scampo
    Mitglied
    Reaktionen
    2
    Punkte
    557
    Beiträge
    110
    • 8. Februar 2003 um 16:46
    • #2

    vielleicht hilft dir die umleitung mittels header("Location:hier_die_url"); weiter:
    also z.b. aufruf der seite
    text.php?url=blablabla
    wobei blablabla die codierte url (urlencode(url)) ist, und dann in text.php mit
    header("Location:"+urldecode(url));

    achtung: vor header(...) duerfen keine zeichen (auch keine leerzeichen) ausgegeben werden.

  • lolaB
    4
    lolaB
    Mitglied
    Punkte
    120
    Beiträge
    19
    • 8. Februar 2003 um 16:52
    • #3

    hi,
    das hat leider nicht funktioniert ...

    allerdings hab ich in einem anderen forum den tipp bekommen, eine HTTP-POST-abfrage zu simulieren - das war erfolgreich (s.unten). als $URL wird der querystring übergeben (sofern es ein CGI-script ist)

    thx & lg
    lola

    ---

    function HTTP_Post($URL,$data, $referrer="") {

    // parsing the given URL
    $URL_Info=parse_url($URL);

    // Building referrer
    if($referrer=="") // if not given use this script as referrer
    $referrer=$_SERVER['SCRIPT_URI'];

    // making string from $data
    foreach($data as $key=>$value)
    $values[]="$key=".urlencode($value);
    $data_string=implode("&",$values);

    // Find out which port is needed - if not given use standard (=80)
    if(!isset($URL_Info['port']))
    $URL_Info['port']=80;

    // building POST-request:
    $request.="POST ".$URL_Info['path']."?".$URL_Info['query']." HTTP/1.1\n";
    $request.="Host: ".$URL_Info['host']."\n";
    $request.="Referer: $referer\n";
    $request.="Content-type: application/x-www-form-urlencoded\n";
    $request.="Content-length: ".strlen($data_string)."\n";
    $request.="Connection: close\n";
    $request.="\n";
    $request.=$data_string."\n";


    $fp = fsockopen($URL_Info['host'],$URL_Info['port']);
    fputs($fp, $request);
    while(!feof($fp)) {
    $result .= fgets($fp, 128);
    }
    fclose($fp);

    return $result;
    }


  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung