Ankündigung

Einklappen
Keine Ankündigung bisher.

Weiterleitung auf eine Seite einrichten

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Weiterleitung auf eine Seite einrichten

    Hallo,

    ich binde über <div> und include verschiedene "module" in die gesamte Homepage ein. Dazu wird über eine Datenbank das Menü erzeugt.
    In diesem Menü gibt es ein Untermenü, die je auf eine Seite weiterleiten.
    Jede dieser Seiten ist mit 1 und fortlaufend nummeriert und heißt demzufolge "1.php" oder "2.php" oder ...

    Eine dieser Seiten soll auf einen Kalender weiterleiten.

    Mein primäres Ziel ist es, nur diese eine Seite auf einen (target="_blank") weiterzuleiten, da der Kalender für den Frame zu groß ist.

    Vorgestellt hatte ich es mir über den header
    Code:
    <?php 
    header('Windows_target: _blank' );
    header("Location: kalender.php");
    ?>
    zu realisieren. Dieser gibt den Fehler aus "Cannot modify header information - headers already sent by.." (Ein zu erwartender Fehler..)

    Gibt es eine Möglichkeit dies anders mit PHP zu realisieren? (Eine onload Funktion würde genügen)

    Ggf. muss ich das dann über Javascript realisieren
    Code:
    <body onLoad="window.open('kalender.php', 'Name', 'toolbar=yes, menubar=yes, width=400, height=200')"> 
              <!-- content --> 
    </body>
    Allerdings wird dies dann durch die meisten Pop-up-blocker geblockt.

    Viele Grüße und vielen Dank im Voraus!


  • #2
    @Shalec,

    der Fehler sagt doch alles - es wurde die Ausgabe bereits gestartet, also können keine Header mehr gesendet werden (HTTP halt).

    Du musst den header zuerst senden, was zu lösen ist, indem du das EVA Prinzip beachtest (http://de.wikipedia.org/wiki/EVA-Prinzip)

    LG
    https://github.com/Ma27
    Javascript Logic is funny:
    [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

    Kommentar


    • #3
      Zitat von Ma27 Beitrag anzeigen
      @Shalec,

      der Fehler sagt doch alles - es wurde die Ausgabe bereits gestartet, also können keine Header mehr gesendet werden (HTTP halt).

      Du musst den header zuerst senden, was zu lösen ist, indem du das EVA Prinzip beachtest (http://de.wikipedia.org/wiki/EVA-Prinzip)

      LG
      Um den Header i.A. gehts gar nicht. Als ich den Fehler sah hatte ich eine Vermutung - nach googeln nach dem Fehler Gewissheit.

      Ich binde die Seite irgendwann wesentlich später im gesamten Quellverlauf ein.
      Aber eine Problemlösung konnte ich bereits (eben gerade) generieren. Diese wird auch funktionieren, solange der Kalender auf "5.php" definiert bleibt. In der Generierung des Menüs habe ich eine if-Abfrage eingebaut, und den Code entsprechend umgeleitet.

      Eine elegantere Lösung wäre mir allerdings langfristig lieber

      Den header kann ich für mein Vorhaben nicht nutzen, denn die Seite ist wie in Frames aufgebaut (durch <div> Blöcke) und einer enthält stets bereits ausgegebenen HTML Code.

      Viele Grüße und vielen Dank

      Kommentar


      • #4
        Header passieren auf dem Server, View-Logik auf dem Client. Da ist es relativ sinnfrei, hier passende Header zu suchen. Der Server kann doch gar nicht wissen, was da als Client anfragt.
        Mein primäres Ziel ist es, nur diese eine Seite auf einen (target="_blank") weiterzuleiten, da der Kalender für den Frame zu groß ist.
        Dementsprechend ist es Deine Aufgabe, die View-Logik auf dem Server zu verwalten und per Serverausgabe das entsprechende Markup oder JS zu erzeugen.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Ich muss leider auf Javascript vollständig verzichten.

          Was bedeutet Markup?
          Über die Generierung habe ich eine Weiterleitung sehr einfach eingefügt. Besser wäre es, diese in der entsprechenden automatisch zugewiesenen Datei zu machen. Damit spätere Anwender die Änderung sehr einfach vornehmen können.

          Die Thematik mit dem Header ist mir klar. Daher hatte ich auch im ersten Post geschrieben "(Ein zu erwartender Fehler..)", da ich mir nicht vorstellen konnte, dass es funktioniert, es aber trotzdem ausprobiert habe.

          Viele Grüße

          Kommentar


          • #6
            Die Thematik mit dem Header ist mir klar. Daher hatte ich auch im ersten Post geschrieben "(Ein zu erwartender Fehler..)", da ich mir nicht vorstellen konnte, dass es funktioniert, es aber trotzdem ausprobiert habe.
            Nein, ist sie nicht, Denn Headers sent hat mit meiner Aussage nichts zu tun.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar

            Lädt...
            X