Probleme beim schreiben in die Datenbank

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

  • Probleme beim schreiben in die Datenbank

    Hallo liebe Community

    Ich habe ein kleines Problem. Ich habe eine Seite auf der nur angemeldete User was downloaden können.

    Sollte ein User nun was downloaden, soll ein Datum in die Datenbank geschrieben werden. Leider passiert da aber nichts.

    Code:
    if($_GET["PB"] == 1)
    {
      //$String = urldecode("PBFOKOMAN.pdf");
      // Damit dein Browser weiss, wie Gross die Datei ist.
      header('Content-Length: ' . filesize($sPDFPath."Produktblatt HWfoko manager deutsch.pdf"));
      
      // Die Datei wird als [[filename]] angeboten.
       header('Content-Disposition: attachment; filename="Produktblatt HWfoko manager deutsch.pdf"'); 
    
      // Sourcefile einlesen und ausgeben, durch die setzung von Content-Disposition
      // wird die Datei nicht angezeigt, sondern als Download angeboten.
      readfile($sPDFPath."Produktblatt HWfoko manager deutsch.pdf");
      
      // Datenbankverbindung aufbauen und Tabelle auswählen 
      $connectionid = mysql_connect ("db1087.1und1.de", "dbo216478901", "...") OR die(mysql_error()); 
      mysql_select_db ("db216478901", $connectionid) OR die(mysql_error());
    
      $Datum = date("Y-m-d");
      
      $sql = "UPDATE benutzerdaten SET HWfoko_man_PB = '$Datum' WHERE ID = '".$_REQUEST['ID']."'";
      
      mysql_query("$sql",$DatabasePointer);
    }
    Das Passwort hab ich weggelassen.

  • #2
    Mach auch noch ein
    PHP-Code:
    mysql_query($sql,$DatabasePointer) or die(mysql_error()); 
    Anführungszeichen bei Vars sind unnötig. Und warum gibst du hier $DatabasePointer an anstelle von $connectionid ?
    Ach ja dein error_reporting() ist voll aufgedreht ?
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Hab nun volgenden Code, aber es tut sich immer noch nichts.

      Code:
      if($_GET["PB"] == 1)
      {
        //$String = urldecode("PBFOKOMAN.pdf");
        // Damit dein Browser weiss, wie Gross die Datei ist.
        header('Content-Length: ' . filesize($sPDFPath."Produktblatt HWfoko manager deutsch.pdf"));
        
        // Die Datei wird als [[filename]] angeboten.
         header('Content-Disposition: attachment; filename="Produktblatt HWfoko manager deutsch.pdf"'); 
      
        // Sourcefile einlesen und ausgeben, durch die setzung von Content-Disposition
        // wird die Datei nicht angezeigt, sondern als Download angeboten.
        readfile($sPDFPath."Produktblatt HWfoko manager deutsch.pdf");
        
        // Datenbankverbindung aufbauen und Tabelle auswählen 
        $connectionid = mysql_connect ("db1087.1und1.de", "dbo216478901", "i4phwsoft") OR die(mysql_error()); 
        mysql_select_db ("db216478901", $connectionid) OR die(mysql_error());
      
        $Datum = date("Y-m-d");
      
        $sql = "UPDATE benutzerdaten SET HWfoko_man_PB = '$Datum' WHERE ID = '".$_REQUEST['ID']."'";
        
        mysql_query($sql,$connectionid) OR die(mysql_error());
      }
      und mein error_reporting ist auch voll aufgedreht

      Kommentar


      • #4
        Was steht in Request ID ? Mach mal bevor du die Query an die DB absetzt ein
        PHP-Code:
        var_dump($_REQUEST['ID']);
        exit; 
        Wird dir irgendein Wert angezeigt ?
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Es kommt ganz normal der download -Bildschirm und dann nichts weiter.
          Normalerweise sollte in $_REQUEST['ID'] die nummer des Users drinstehen. Und die wird bei der Anmeldung in der session gespeichert.

          Kommentar


          • #6
            Es kommt ganz normal der download -Bildschirm und dann nichts weiter.
            Kann es denn sein, dass die Var gar keinen Wert hat ? Und somit die Query einfach nix finden kann ?
            Und die wird bei der Anmeldung in der session gespeichert.
            Und warum verwendest du dann nicht den Wert aus der Session ?
            Und warum hat du immer noch ' und ' um den ID Wert in der Query ? Du hast bereits im anderen Thread gesagt, dass die Spalte als Integer definiert ist. Ein Integer wird niemals gleich einem String sein!
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Ich habe die SQL Anweisung so aus einer anderen Datei übernommen, in der das so auch mit der ID sehr gut funktioniert.

              Muss ich eigentlich auf jeder Seite wo ich auf gespeicherte Werte in der Session zugreifen will am Anfang der Datei die Session starten?

              Es funktioniert jetzt. Ich musste die ID nur aus der Session holen. In $_REQUEST[ID] war kein Wert.

              Vielen Dank für die schnelle und prompte hilfe.

              Ein Frage hab ich da noch. Gibt es die Möglichkeit wenn beim download-Bildschirm der Button "Abbruch" aktiviert wird anders zu reagieren als wenn der Button "OK" aktiviert wird?
              Zuletzt geändert von Ceene; 13.09.2007, 08:28.

              Kommentar


              • #8
                Muss ich eigentlich auf jeder Seite wo ich auf gespeicherte Werte in der Session zugreifen will am Anfang der Datei die Session starten?
                Ja!

                Ein Frage hab ich da noch. Gibt es die Möglichkeit wenn beim download-Bildschirm der Button "Abbruch" aktiviert wird anders zu reagieren als wenn der Button "OK" aktiviert wird?
                Imho nein, da Clientseitig!

                Kommentar


                • #9
                  Gibt es denn eine Möglichkeit den download-Bildschirm Serverseitig anzeigen zu lassen?

                  Kommentar


                  • #10
                    ...Serverseitig anzeigen zu lassen
                    Anzeige erfolgt immer auf dem Client. Klar der Server interpretiert erst den PHP Teil, der HTML Output wird aber an den Client gesandt und kommt erst dort zur Anzeige.
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Also habe ich keine Möglichkeit im php-Code zusgen, dass er bei "Abbruch" anders reagieren soll?

                      Kommentar


                      • #12
                        Also habe ich keine Möglichkeit im php-Code zusgen, dass er bei "Abbruch" anders reagieren soll?
                        In dem Moment wo das Form an den Client geliefert wird ist PHP mit der Codeabarbeitung schon fertig. Du könntest rein theoretisch den Abbruch Button ebenfalls als Submit Button anlegen. Wenn dann der User drauf klickt wird das Form gesendet und der Server kann anhand des Submit Buttons (mit der Aufschrift Abbruch) anders reagieren als beim "normalen" Submit.
                        Nur was bringt dir das ? Es ist ein neuer Request an den Server und hat nix mehr mit dem alten Request zu tun.
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          Ich wollte halt einen Wert in die Datenbank schreiben wenn eine User was runterläd, aber eben auch nur wenn er runterläd, aber so wichtig ist das auch nicht.

                          Kommentar


                          • #14
                            PHP-Code:
                            readfile($sPDFPath."Produktblatt HWfoko manager deutsch.pdf"); 
                            Wird die Skriptbearbeitung nach dieser Anweisung vielleicht abgebrochen, wenn du die Datei nicht herunterlädst? Das du das dann mittels connection_aborted abfragen kannst? Musst du mal ausprobieren...!

                            Kommentar


                            • #15
                              Ohne den Umweg über die Output Buffer scheint PHP den Status der Verbindung vom Client nicht zu prüfen http://de2.php.net/manual/de/functio...rted.php#27646
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X