Ankündigung

Einklappen
Keine Ankündigung bisher.

header Problem

Einklappen

Neue Werbung 2019

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

  • header Problem

    Hallo

    Ich möchte gerne meine Seite auf ne andere Seite verlinken.

    Habe es mit header("Location: http://www.andereseite.de"); versucht. Bekomme dann jedoch folgende Meldung zurück:

    Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/.../subdomains/.../httpdocs/.../access.php:6) in /srv/www/vhosts/.../subdomains/.../httpdocs/.../start.php on line 8
    Weiss jemand woran es liegt?


  • #2
    Bei http werden erst die header geschickt, dann der content. Sobald das erste Byte content geschickt wurde, kann man keine weiteren http header schicken. Genau das versucht Dein Skript aber.
    output started at /srv/www/vhosts/.../subdomains/.../httpdocs/.../access.php:6
    An dieser Stelle (Zeile 6 von access.php) wird content geschickt und danach versucht Zeile 8 von start.php einen http header zu setzen.

    Kommentar


    • #3
      Alles klar, ich hab's nun stattdessen so gelöst:
      Code:
      echo '<meta http-equiv="refresh" content="0;url=http://www.microsoft.com" />';
      Nun, taucht aber ein sehr sehr grosses Problem für mich auf und zwar wird die eigentliche Seite für einen kurzen Moment erschienen, bevor sie verlinkt wird. Es ist aber sehr wichtig dass die Seite überhaupt nicht zu erscheinung kommt. Gibt es dafür eine Lösung?

      Kommentar


      • #4
        Kein echo''; oder ähnliches verwenden >> Leere Seite

        Kommentar


        • #5
          Zitat von PTC Beitrag anzeigen
          Kein echo''; oder ähnliches verwenden >> Leere Seite
          Ich verstehe nicht so ganz was du meinst.

          Also mein Script sieht so aus:
          Code:
          <?php
          	$name = $_GET['name'];
          	if (inFile("Begriffe.txt","$name")) {
          		echo "Begriff gefunden";
          	}
          	else {
          ?>	
          <meta http-equiv="refresh" content="0;url=http://www.bluewin.ch" />
          <?php
          	}
          ?>
          Der Code kommt im Head-Bereich von start.php. Falls die Variable sich mit die If-Abfrage nicht übereinstimmt, soll die Seite verlinkt werden ohne dass die Seite start.php erschienen wird.

          Kommentar


          • #6
            Alles klar ... ich hab's nun so gelöst:
            Code:
            <?php 
            	include("access.php");
            ?>
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head> 
            <title>Startseite</title> 
            <link rel="stylesheet" href="style.css" type="text/css">
            
            <!--[if gte IE 5]>
            <link rel="stylesheet" href="scrollbar.css" type="text/css">
            <![endif]-->
            
            <?php
            	$name = $_GET['name'];
            	if (inFile("Begriffe.txt","$name")) {
            ?>
            </head>
            <?php
            		include("start.html");
            	}
            	else {
            ?>	
            <meta http-equiv="refresh" content="0;url=http://www.bluewin.ch" />
            </head>
            <?php
            	}
            ?>
            im start.html befindet sich der Body-Bereich.

            Kommentar


            • #7
              Was gibt denn Zeile 6 in access.php aus? und Warum?

              Kommentar


              • #8
                @Shyne
                So wie es im zweiten ist, meinte ich.

                Kommentar


                • #9
                  Zitat von David
                  Was gibt denn Zeile 6 in access.php aus? und Warum?
                  Die Datei access.php sieht (provisorisch) so aus:
                  Code:
                  <?php
                  	session_start();
                  	error_reporting(E_ALL); 
                  	ini_set("display_errors", true);
                  	if (!isset($_SESSION['user'])) {
                  		echo "<b>session NOT set</b>";
                  	}
                  	else {
                  		echo "<b>session is set</b>";
                  	}
                  	function inFile($file, $string) {
                  		return strstr(file_get_contents($file),$string); 
                  	}
                  ?>
                  Zeile 6 wäre also: echo "<b>session NOT set</b>";
                  Die vorherige Warnung was den header angeht versteh ich nach wie vor nicht.

                  Kommentar


                  • #10
                    echo.... echo gibt etwas aus, echo gibt Content aus.
                    Keine http header nach Ausgabe von Content.
                    So einfach ist das.
                    Dein Skript bindet gleich am Anfang access.php ein. access.php gibt in Zeile 6 Content aus. Und erst danach wird header(...) aufgerufen. Geht nicht.

                    Kommentar

                    Lädt...
                    X