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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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

      Comment


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

        Comment


        • #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

          Comment


          • #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.

            Comment


            • #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

              Comment


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

                Comment


                • #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.

                  Comment


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

                    Schönen Tag wünscht
                    Lupi05

                    Comment

                    Working...
                    X