Datum und Zeit in der Datenbank speichern während dem Login

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

  • Datum und Zeit in der Datenbank speichern während dem Login

    Ziel: Date und Time speichern wenn der User sich einloggt.

    Weg zum Ziel:

    Datenbankstruktur



    PHP-Code:
    $db = @new mysqli'localhost''root''''pmh' );
    if (!empty(
    $_POST["id"]) && !empty($_POST["passwort"])){
    $id $db->real_escape_string($_POST["id"]);
        
    $passwort md5($_POST["passwort"]); 
        
    $sql 'SELECT  id, vorname, nachname, passwort, rechte FROM mitarbeiter WHERE id=?  LIMIT 1';
        
    $ergebnis $db->prepare$sql );
        
    $ergebnis->bind_param'i'$id );
        
    $ergebnis->execute();
        
    $ergebnis->bind_result$userID$dbVorname$dbNachname$dbPasswort$rechte);
        
    $ergebnis->fetch();

    if ((
    $dbPasswort == $passwort) && ($userID == $id)){
            
    // Sessions setzen
            
    $_SESSION['sitzungsID']         = $userID;
            
    $_SESSION['sitzungsVorname']    = $dbVorname;
            
    $_SESSION['sitzungsNachname']   = $dbNachname;
            
    $_SESSION['sitzungsRechte']     = $rechte;
            
    // Loginzeit eintragen
            //$datetime = date("Y-m-d H:i:s");
            
    $datetime '2009-04-30 10:09:00';
            
    $asdfasdf $db->prepare('UPDATE mitarbeiter  SET lastlogin=? WHERE id=?');
            
    $asdfasdf->bind_param("si"$datetime$id);
            
    $asdfasdf->execute();
    .... 
    Ausgabe:
    Fatal error: Call to a member function bind_param() on a non-object ...

    Also, wenn ich das richtig verstanden habe, dann sagt er mir das der bind_param Teil kein Objekt enthält, also quasi leer ist. Aber ich versteh nicht was daran falsch ist. Könnt ihr mir auf die Sprünge helfen?

  • #2
    Die Methode prepare() schlägt fehlt. Du solltest die Fehlermeldung dazu abfragen.

    Kommentar


    • #3
      Zitat von VVoLv3rIn3 Beitrag anzeigen
      PHP-Code:
      $id $db->real_escape_string($_POST["id"]); 
      Dieses Escaping ist bei der Nutzung von Prepared Statements nicht angebracht.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        PHP-Code:
                    echo $db -> error
        Commands out of sync; you can't run this command now

        Das hilft mir irgendwie auch nicht weiter

        Kommentar


        • #5
          Zitat von wahsaga Beitrag anzeigen
          Dieses Escaping ist bei der Nutzung von Prepared Statements nicht angebracht.
          Danke das du mich darauf aufmerksam gemacht hast. Wenn du mir jetzt noch verraten könntest warum nicht und wie man es besser machen könnte, dann hätte ich was dazugelernt

          Kommentar


          • #6
            Zitat von VVoLv3rIn3 Beitrag anzeigen
            PHP-Code:
                        echo $db -> error
            Commands out of sync; you can't run this command now

            Das hilft mir irgendwie auch nicht weiter
            Erster Suchtreffer in Google:

            php - Commands out of sync; you can't run this command now - Stack Overflow

            Ein bisschen Eigeninitiative würde nicht schaden.

            Kommentar


            • #7
              PHP-Code:
                      $_SESSION['sitzungsVorname']    = $dbVorname;
                      
              $_SESSION['sitzungsNachname']   = $dbNachname;
                      
              $_SESSION['sitzungsRechte']     = $rechte
              Den ganzen Quatsch würde ich gar nicht in Session halten.
              Bringt doch nur Ärger.....


              PHP-Code:
              $_SESSION['sitzungsID']         = $userID
              Das reicht!
              Wir werden alle sterben

              Kommentar


              • #8
                Ja tut mir leid mein Fehler. Aber ich habe die Lösung dann auch jetzt gefunden:

                Das nachdem die Sessions gesetzt sind und siehe da es geht
                PHP-Code:
                $ergebnis mysqli_store_result($db);
                oder auch 
                $ergebnis
                ->close(); 
                Zuletzt geändert von VVoLv3rIn3; 22.12.2013, 00:46.

                Kommentar

                Lädt...
                X