Jan: URl aufrufen ohne die Funktion header()

Hallo,

Wie kann ich denn nach einem "else" eine URL aufrufen lassen ohne den Befehl header() zu benutzten denn damit hat es nicht Funktioniert.

Da ich wenig Ahnung von PHP habe bin ich für jede Antwort dankbar.

MFG Jan

  1. Wie kann ich denn nach einem "else" eine URL aufrufen lassen ohne den Befehl header() zu benutzten denn damit hat es nicht Funktioniert.

    header() ist auch nicht dafür da um einen URL aufzurufen.

    Da ich wenig Ahnung von PHP habe bin ich für jede Antwort dankbar.

    Was meinst du mit "Aufrufen"? Willst du daten von einer externen Seite in deine 1:1 Einbinden oder vergleichbares?

    1. Hallo,

      Vielen Dank für eure schnelle Antwort.

      Ich habe das Problem lösen können.

      MFG Jan

      1. Mahlzeit Jan,

        Vielen Dank für eure schnelle Antwort.

        Ich habe das Problem lösen können.

        Die zukünftigen Leser und Archivsucher wären Dir sicher dankbar, wenn Du Deine Lösung verraten würdest ...

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hallo Ekki,

          ich habe gerade mal auf deine Domain geschaut.
          Ich weiss nicht, ob das gewollt ist oder nicht, aber da scheint einiges nicht korrekt zu laufen - ferner lassen sich sogar einige PHP-Sources einsehen (zb die /inc/config.security.php).

          Siehe
          http://webmail.ekki.net/
          http://webftp.ekki.net/

          Warum ich hier poste und dir keine Email sende? Ich denke, dass eine Email bei der aktuellen Konfiguration wohl nicht ankommen wird.

          MfG
          Peter

  2. Hello,

    Wie kann ich denn nach einem "else" eine URL aufrufen lassen ohne den Befehl header() zu benutzten denn damit hat es nicht Funktioniert.

    "hat nicht funktioniert" ist keine qualifizierte Fehlerbeschreibung.
    Was ist passiert, als Du den Location-Header benutzt hast?

    Header können in einem PHP-Script nur solange gesetzt werden, wie noch keine Ausgabe an den Browser erfolgt ist. Mit der ersten Ausgabe an den Browser werden die bis dahin gesetzten Header nämlich gesendet und zwar als erstes, denn sonst wären es ja keine Header mehr.

    Du musst also entweder die Ausgaben in einer Variablen sammeln und erst dann ausgeben, wenn keine Header mehr gesetzt werden, oder aber den Ausgabe-Buffer solange stoppen, bis alles fertig aufbereitet ist.

    http://de2.php.net/manual/en/function.ob-start.php

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  3. Moin!

    Hallo,

    Wie kann ich denn nach einem "else" eine URL aufrufen lassen ohne den Befehl header() zu benutzten denn damit hat es nicht Funktioniert.

    Du hast vermutlich zuvor schon gesendet, dann geht das natürlich nicht mehr.
    Entweder Du vermeidest vorher alle(!) Ausgaben oder du pufferst alle Ausgaben:

    <?php
    ob_start();
    ...
    ?>

    Kannst Du das Senden der Daten nicht abwenden, dann sende _notfalls_ ein Javascript:

    function GehWeg($loc) {  
      if (false === headers_sent) {  
          header("Location: $loc");  
      } else {  
          die ('  
             <script type="text/javascript">  
                 alert("Sie werden jetzt zu '.$loc.' umgeleitet.";  
                 document.location.href="'.$loc.'";  
             </script>'  
          );  
      }  
    }
    

    GehWeg('http://example.com/');

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development