tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
639
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    remuen remuen ist offline Mitglied Bronze
    Registriert seit
    Apr 2003
    Ort
    Bad Ragaz (Schweiz)
    Beiträge
    27
    Hallo

    Die Funktion header(location:"") scheint ja für viele ein Stolperstein zu sein ... Wie anscheinend andere schon vor mir habe ich ein Problem, nämlich dass beim Aufruf der Funktion folgender Fehler auftritt:

    Warning: Cannot modify header information - headers already sent by (output started at .../test/clickcounter/clicks.php:2) in .../test/clickcounter/clicks.php on line 4

    Ich als (noch) PHP-Anfänger möchte damit einen einfachen Click-Zähler realisieren, indem ich von meiner Linkliste aus mit
    PHP-Code:
    <a href="clicks.php?url=http://www.nak-badragaz.ch">test</a
    das PHP-Programm clicks.php aufrufe, den Klick zähle, in ein Textfile schreibe und dann eben die gewünschte URL mit der Funktion header()
    aufrufe.

    Hier der Code in clicks.php:
    PHP-Code:
       <?php
       
    if($url!="")
          {
          
    header("location:".$url.""); // weiterleitung
          
    $file="click.dat"// datei in der der stand gespeichert wird
          
    .... //hier folgt der Code zum Zählen und Schreiben in die Datei
         
    }
       
    ?>
    Mehr steckt nicht in dem File, also keine HTML-Ausgabe, der header-Aufruf steht ganz am Anfang ..

    Ich habe auch bereits herausgefunden, dass ich die ganze Problematik mit
    PHP-Code:
    <meta http-equiv="Refresh" content="2; url=http://www.nak-badragaz.ch"
    zwar umgehen könnte, nur ist eine solche Umgehung nicht die Lösung des Problems, denn damit weiss ich für's nächste Mal immer noch nicht, warum die Funktion nicht richtig arbeitet.

    Wer kann mir hier weiterhelfen? Was mache ich falsch? In den bisherigen Beiträgen zu diesem Thema habe ich keine Lösung (ausser was ich bereits geschrieben habe) gefunden.

    Danke und Gruss

    René
     
    Sobald jemand in einer Sache Meister geworden ist,
    sollte er in einer neuen Sache Schüler werden.


    http://www.ragazer-bibelquiz.ch

  2. #2
    Avatar von danube
    danube danube ist offline Mitglied Platin
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    522
    probier mal folgendes:

    PHP-Code:
     <?php
    ob_start
    ();
       if(
    $url!="")
          {
          
    $file="click.dat"// datei in der der stand gespeichert wird
          
    .... //hier folgt der Code zum Zählen und Schreiben in die Datei
          
    header("location: $url"); // weiterleitung
         
    }
    ob_end_flush();
       
    ?>

    Der header Aufruf steht nicht ganz am Anfang! " if($url!="") " ist bei dir in der ersten Zeile sprich am Anfang.
    Geändert von danube (18.09.03 um 13:11 Uhr)
     

  3. #3
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    Hallo.

    OK, auch wenn der Fehler in der 2. Zeile ausgelöst wird (laut Fehlermeldung)

    Warning: Cannot modify header information - headers already sent by (output started at .../test/clickcounter/clicks.php:2) in .../test/clickcounter/clicks.php on line 4

    glaube ich kaum, dass das an der If-Abfrage liegt.
    Denn folgendes Script leitet mich automatisch nach google weiter (hab's grad ausprobiert):

    PHP-Code:
    <?php
        $url 
    "http://www.google.de";
        if (
    $url != "") {
            
    header("Location: $url");
        }
    ?>
    Kann das nicht woanders drann liegen (z. B. Leerzeichen vor <?php
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  4. #4
    remuen remuen ist offline Mitglied Bronze
    Registriert seit
    Apr 2003
    Ort
    Bad Ragaz (Schweiz)
    Beiträge
    27
    Original geschrieben von rootssw
    Kann das nicht woanders drann liegen (z. B. Leerzeichen vor <?php
    Hallo
    Das war's - ich geb's ja zu, Du hast mich auf frischer Tat erwischt! Ich hab nämlich vor dem <?php wirklich noch eine Zeile mit Kommentar gehabt und dort am Anfang der Zeile zwei Leerschläge .......

    Ich hätte nie gedacht, dass das solche Auswirkungen haben kann! Das ganze hat mich nun inkl. Suchen im Forum und den Beitrag schreiben über zwei Stunden gekostet - sprich durchschnittlich eine Stunde pro Leerschlag

    Vielen Dank für Eure Hilfe!

    Gruss
    René
     
    Sobald jemand in einer Sache Meister geworden ist,
    sollte er in einer neuen Sache Schüler werden.


    http://www.ragazer-bibelquiz.ch

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 10.08.07, 23:58
  2. Antworten: 16
    Letzter Beitrag: 23.05.07, 15:07
  3. Antworten: 2
    Letzter Beitrag: 09.08.05, 14:01
  4. Antworten: 16
    Letzter Beitrag: 30.05.05, 09:19
  5. Antworten: 14
    Letzter Beitrag: 16.09.04, 02:36