Tom: Login funktin

Beitrag lesen

Hello,

ich habekomme wieder ein Fehler angezeigt und sehe den Fehler in meiner Funktion nicht. Mein Login sieht wie folgt aus

function isUserLoggedIn($mysqli) {
        $stmt = $mysqli->prepare("SELECT * FROM users WHERE user_session=?");

#         $stmt->bindParam("s", session_id());
          $stmt->execute(session_id());

if($stmt->rowCount() === 1) {
            return true;
        } else {
            return false;
        }
    }

Versuche es mal so, wie oben angedeutet.
Welchen Parameter s wolltest Du denn überhaupt binden? ich sehe im Statement-Text überhaupt keinen.

Fatal error: Call to a member function bindParam() on a non-object in Zeile 28. Die Zeile ist

$stmt->bindParam("s", session_id());

die session_id ist doch ein String oder?

Aber selbst, wenn da ein Parameter s im SQL-Text notiert wäre, würde er sich vermutlich nicht an das Ergebnis der Funktion binden lassen.

Hier müssen wir ein wenig pingeliger mit der Sprache umgehen: Die FUNKTION session_id() LIEFERET einen String mit der Session-ID, aber erst dannw, wenn sie aufgerufen wird.

Die Methode bindParam() verlangt aber eine VARIABLE, an die der Parameter gebunden wird. Die muss in dem Moment, wo sie gebunden wird, bereits vorhanden sein!

also "s" oder kann es sein, dass die Funktion mal wieder den Wert session_id() nicht kennt?

So ungefähr. Der WERT ist dabei sogar noch relativ egal, aber bindParam() kennt noch nicht einmal den Speicherplatz, in den der Wert gespeichert werden soll.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bikers-lodge.com
0 45

Benutzer registieren

Martin_Online
  • php
  1. 0
    Tom
    1. 0
      Tom
  2. 0
    ChrisB
    1. 0
      Martin_Online
      1. 0
        Martin_Online
        1. 1
          ChrisB
          1. 0
            Martin_Online
            1. 0
              Tom
              1. 0
                Martin_Online
                1. 0

                  in_array() und strict

                  Tom
            2. 0

              Benutzer registieren, Unterschied zwischen Insert und Select

              Tom
              • datenbank
              1. 0
                Martin_Online
                1. 2

                  PDO oder MySQLi ?

                  Tom
      2. 0
        Der Martin
  3. 0

    Login funktin

    Martin_Online
    1. 0
      Tom
      1. 0
        Tom
      2. 0
        Martin_Online
      3. 0
        dedlfix
        1. 0
          Martin_Online
    2. 1
      dedlfix
      1. 0
        Tom
        1. 0
          dedlfix
      2. 0
        Martin_Online
        1. 0
          dedlfix
          1. 0
            Martin_Online
            1. 1
              dedlfix
              1. 0

                Login funktin - Fehler gefunden :(

                Martin_Online
                1. 0
                  dedlfix
                  1. 0
                    Martin_Online
                    1. 0
                      Der Martin
                      1. 0
                        dedlfix
                        1. 0
                          Der Martin
                          1. 0

                            Blamiere dich täglich

                            Tom
                            • menschelei
                      2. 0
                        Tom
                        1. 0
                          dedlfix
                          1. 0
                            Tom
                            1. 0
                              Martin_Online
  4. 0

    Datenbankstruktur - Logindaten & Userdaten

    Martin_Online
    1. 0
      dedlfix
  5. 0

    Zusatzfrage

    Martin_Online
    1. 0
      Der Martin
      1. 0
        Martin_Online
      2. 0
        M.