Datenbankabfrage von URL, dann PHP-Redirect (klappt nicht)

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

  • Datenbankabfrage von URL, dann PHP-Redirect (klappt nicht)

    Hallo,

    habe folgendes Problem:
    Ich möchte einen einfachen Klickzähler erstellen, wenn User meine Seite über einen Link verlassen.

    Die Links sollen die Form haben
    http://www.meineseite.de/gehe.php?zu=partner

    Habe dann mit PHPMyAdmin eine Tabelle namens "gehe" in meiner Datenbank erstellt mit drei Feldern: zu (varchar, 50, primary key), url (text), klicks (int, 10). Habe dann zum Testen einen Datensatz eingetragen:

    zu: partnerABC
    url: http://www.partnerABC.de
    klicks: 0

    Den entsprechenden Link habe ich auf meine index.html gesetzt:
    PHP-Code:
    <a href="gehe.php?zu=partnerABC">PartnerABC</a
    Hier noch die gehe.php:
    PHP-Code:
    <?php
    //Connect
    $dbhandle mysql_connect("localhost","w****","d******")
    or die (
    "Zur Zeit leider inaktiv.");
    mysql_select_db('w*****_db1'$dbhandle)
    or die (
    "Zur Zeit leider inaktiv.");
    //Get ID
    $zu $_GET['zu'];
    //Update clicks
    mysql_query("UPDATE gehe SET klicks=klicks+1 WHERE zu='$zu'");
    //Retrieve URL
    $sql mysql_query("SELECT url FROM gehe WHERE zu='$zu'");
    $fetch mysql_fetch_row($sql);
    $url $fetch[1];
    mysql_close($dbhandle);
    //Redirect to URL
    header ("Location: $url");
    exit;
    ?>
    Wenn ich jetzt also auf den Link klicke, komme ich wie gewünscht auf
    http://www.meineseite.de/gehe.php?zu=partnerABC, aber die Seite bleibt weiss und leitet nicht weiter wie es eigentlich sein sollte. Kein Text, keine Fehlermeldung, keine Weiterleitung. Die Klicks werden aber ordnungsgemäß gezählt!

    Arbeite erst seit kurzem mit PHP/MySQL, hat jemand eine Idee?
    Danke.

    Schönen Tag wünscht
    Lupi05

  • #2
    Was steht denn in $url?

    Mach mal ne Testausgabe

    Kommentar


    • #3
      schau mal was in $url steht und wenn das mit den header nicht klappt,
      probiers so:


      [PHP]
      print "<script>";
      print " self.location='$url';";
      print "</script>";[
      /PHP]

      greets tom

      Kommentar


      • #4
        Wieso sollte das mit dem Header nicht klappen?

        Kommentar


        • #5
          Danke für deine Antwort.

          Habe also gerade den letzten Teil

          PHP-Code:
          header ("Location: $url");
          exit;
          ?> 
          ersetzt durch

          PHP-Code:
          echo $url;
          ?> 
          Resultat: Die Seite bleibt leer, wird nichts ausgegeben.

          Habe auch einfach mal spaßeshalber einen einfachen redirect

          PHP-Code:
          <?php
          header 
          ("Location: http://www.test.de");
          ?>
          ausprobiert. Klappt einwandfrei!

          Lupi05

          Kommentar


          • #6
            Dann überprüfe deine Datenbankquery.

            ersetze

            PHP-Code:
            $url $fetch[1]; 
            durch

            PHP-Code:
            print_r($fetch); 
            um zu schauen was aus deiner Query rauskommt.

            Kommentar


            • #7
              Danke für den Tipp. Folgender Code

              PHP-Code:
              <?php
              //Connect
              $dbhandle mysql_connect("localhost","wa5154_1","dbconnect123")
              or die (
              "Zur Zeit leider inaktiv.");
              mysql_select_db('wa5154_db1'$dbhandle)
              or die (
              "Zur Zeit leider inaktiv.");
              //Get ID
              $bei $_GET['bei'];
              //Update clicks
              mysql_query("UPDATE kaufen SET klicks=klicks+1 WHERE bei='$bei'");
              //Retrieve URL
              $sql mysql_query("SELECT url FROM kaufen WHERE bei='$bei'");
              $fetch mysql_fetch_row($sql);
              print_r($fetch);
              mysql_close($dbhandle);
              //Redirect to URL
              header ("Location: $url");
              exit;
              ?>
              hat

              Array ( [0] => http://www.test.de/ )
              Warning: Cannot modify header information - headers already sent by (output started at /home/www/gehe.php:14) in /home/www/gehe.php on line 17

              ausgegeben.

              - Lupi

              Kommentar


              • #8
                http://www.php-resource.de/forum/sho...threadid=62965

                Kommentar


                • #9
                  Na ist doch wohl klar warum der Fehler kommt Acid.
                  Der Header Fehler kommt von der Testausgabe, und ist wohl weniger das Problem

                  Du hast in deinem Code folgende Zeile

                  PHP-Code:
                  $url $fetch[1]; 
                  Wie du in der Testausgabe sehen kannst ist der Wert aber im Feld 0 gespeichert.

                  Array ( [0] => http://www.test.de/ )
                  Pass das in deinem Script an, und es funktioniert.

                  Kommentar


                  • #10
                    Schnoop, genial, vielen Dank für deine Hilfe und Lösung!

                    Schönen Tag wünscht
                    Lupi05

                    Kommentar

                    Lädt...
                    X