untitled

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

  • untitled

    Ich habe mir einen Downloader zusammengebastelt, der auch sehr gut funktioniert,
    allerdings kommt es zu einem Problem, wenn ich eine erweiterte if-Abfrage einbaue.
    Es wird kein Befehl mehr ausgeführt, obwohl dier Variablen ihre entsprechenden Werte besitzen:

    PHP-Code:
    <?php include("connection.php");

    $id $_GET[id]; // nicht leer, sondern enthält entsprechenden Wert
    $category $_GET[category]; // nicht leer, sondern enthält entsprechenden Wert
    $type $_GET[type]; // nicht leer, sondern enthält entsprechenden Wert
    $user $_GET[user]; // nicht leer, sondern enthält entsprechenden Wert

      
    $sql mysql_query("SELECT * FROM `$category` WHERE `type` = '$type' AND `id` = '$id'");
      while(
    $row mysql_fetch_assoc($sql)){

    //AB HIER WIRD NICHTS MEHR AUSGEFÜHRT, obwohl $category, $type
    //und $id vor der MySQL-Abfrage nicht leer sind, sondern ihre
    //entsprechenden Werte besitzen
    echo"diese meldung erscheint nicht...";

      if(isset(
    $user) && $row[status] == "1" && $row[payment] == "1"){

      
    $sql2 mysql_query("SELECT * FROM `downloader` WHERE `username` = '$user'");
      
    $row2 mysql_fetch_assoc($sql2);

      if(
    $row2[downloadname] == "$row[filename]&& $row2[downloadcounter] > 0)
       {

        (...)

       }
      else {
        echo
    "<center>Die maximale Downloadanzahl ist erreicht.<br><br>Download gesperrt!</center>";
      }

      exit();
    }
      }
    ?>

  • #2
    Bitte lesen und verstehen : http://php-resource.de/forum/showthr...threadid=50454

    Vor allem der Punkt "mySQL will nicht".

    Und so nen geilen Threadtitel sieht man ja auch nicht so oft...
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Danke

      Also meine Fehlermeldung lautet nun:

      PHP-Code:
      Notice: Use of undefined constant id assumed 'id' 
      in /www/htdocs/xxx/download.php on line 6

      Notice
      : Use of undefined constant category assumed 'category' 
      in /www/htdocs/xxx/download.php on line 7

      Notice
      : Use of undefined constant type assumed 'type' 
      in /www/htdocs/xxx/download.php on line 8

      Notice
      : Use of undefined constant user assumed 'user' 
      in /www/htdocs/xxx/download.php on line 9 
      Aber das ist doch widersprüchig, weil ich die Variablen doch definiert habe...???

      Kommentar


      • #4
        PHP-Code:
        // deine Fehlermeldungen sagen
        $_GET[id]  // ist falsch
        $_GET['id'// ist ok 
        wie ist es mit mysql_error(); ?? und bringt sql ein Ergebnis damit while mal durchlaufen kann?
        mfg
        marc75

        <Platz für anderes>

        Kommentar


        • #5
          <quote>wie ist es mit mysql_error(); ??
          und bringt sql ein Ergebnis damit while mal durchlaufen kann?</quote>

          mysql_error(); hatte ich auch schon getestet, gibt aber nichts aus.
          SQL Ergebnis ist gleich null, trotz vorhandener tabellenfelder...

          Kommentar


          • #6
            und wenn du die anfrage manuell an den mysql-server schickst, kommen reichlich datensätze zurück?

            Kommentar


            • #7
              SQL-Ergebnisse kommen zurück, allerdings wird die if-Klammer trotzdem nicht ausgeführt.
              Ein Fehler der noch angezeigt wird ist
              PHP-Code:
              NoticeUndefined index'filename' in /www/htdocs/xxx/download.php on line 15 
              Es wird nur die else-Klammer ausgeführt, obwohl der Downloadzähler bei 1 steht.

              PHP-Code:
              error_reporting(E_ALL);

                
              $sql mysql_query("SELECT * FROM `database` WHERE `type` = 'mp3' AND `id` = '5'");
                while(
              $row mysql_fetch_assoc($sql)){

              /** Kostenpflichtiger Download freigeschaltet **/
              if($row['status'] == "1" && $row['payment'] == "1"){

                
              $sql2 mysql_query("SELECT * FROM `downloader` WHERE `username` = 'newbie'");
                
              $row2 mysql_fetch_assoc($sql2);
              //hier werden noch alle Werte korrekt ausgegeben
                
              if($row2['downloadname'] == "$row['filename']" && $row2['downloadcounter'] > 0)
                 { 
              // hier wird leider nichts mehr ausgeführt
                  
              (....)
                  
              $sql3 mysql_query("UPDATE `database` SET `downloads`='$clicks' WHERE `type` = 'mp3' AND `id` = '5'");
                  
              $sql4 mysql_query("UPDATE `downloader` SET `downloadcounter`='$dclicks' WHERE `username` = 'newbie'");


                  
              header ("Location: $file");
                  exit();

                 }
                else { 
              //dies wird angezeigt
                  
              echo"<center>Die maximale Downloadanzahl ist erreicht.<br><br>Download gesperrt!</center>";
                }

                exit();
              }
                }
              ?> 

              Kommentar


              • #8
                Original geschrieben von kerbstone
                Ein Fehler der noch angezeigt wird ist
                PHP-Code:
                NoticeUndefined index'filename' in /www/htdocs/xxx/download.php on line 15 
                ja und - deine schlussfolgerung daraus ...?

                Es wird nur die else-Klammer ausgeführt, obwohl der Downloadzähler bei 1 steht.
                die bedingung besteht ja auch aus zwei teilen, die beide erfüllt sein müssen.

                wenn es in $row aber gar keinen index filename gibt, kann der erste teil ja wohl nur schwerlich erfüllt sein, hm?


                btw: "$row['filename']" - lass bitte die unsinnigen doppelten anführungszeichen weg.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X