Ankündigung

Einklappen
Keine Ankündigung bisher.

primery Keys vergleichen

Einklappen

Neue Werbung 2019

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

  • primery Keys vergleichen

    Guten Morgen,
    Ich habe eine Frage ich komme gerade bei einem Projekt nicht weiter.

    Ich habe ein Login System

    Code:
     $query = "SELECT * FROM _login WHERE email = '".mysqli_real_escape_string($link, $_POST['email'])."'";
    
                    $result = mysqli_query($link, $query);
    
                    $row = mysqli_fetch_array($result);
                    if(isset($row)){
                          $checkPassword = md5(md5($row['id']).$_POST['password']);
    
                            if($checkPassword == $row['password']){
    
                                $_SESSION['id'] = $row['id'];
    
    
                                }
    
                                if($_POST['stayLoggedIn'] == '1'){
    
                                    setcookie("id", mysqli_insert_id($link), time() + 60*60*24*30);
    
                                }
    
                                header("Location: loggedinpage.php");
    
                            }else{
    
                                $error = "Deine Email Passwort Kombination konnte nicht gefunden werden.";
    
                            }

    und eine Datenbankstruktur

    mit 2 Tabellen

    Tabelle 1:
    _login

    id (primery key)
    email
    password

    Tabelle 2:
    profil

    userID (primery key)
    name
    vName
    hDaya



    Meine Frage ist nun wie kriege ich es hin wenn ich mich einlogge nur die Daten von dem der sich einloggt zu bekommen.



    Ich hoffe, dass ich es ausführlich erklärt habe
    Ich bedanke mich im Vorraus

    Gruß msuu

  • #2
    Mit "Daten" meinst du den Eintrag aus profil? Wie hängen _login und profil zusammen? Irgendwo muss mit gespeichert werden welches profil zu welchen _login (oder umgedreht) gehört. Ansonsten hast dort ein Designfehler.

    Ansonsten:
    -Zum Einsteig simple halten - _login und profile kannst du in einer Tabelle zusammenfassen
    -stat md5 password_hash / password_verfiy verwenden
    -SELECT * vermeiden, gibt explizit die Felder an die du brauchst
    -was soll mysqli_insert_id() da? Dazu muss du auch irgendwo ein INSERT haben
    -"stayLoggedIn" wird auch gesetzt wenn $checkPassword != $row['password']

    Kommentar


    • #3
      Vielen Dank für die schnelle Antwort..

      Habe Sachen umgesetzt die du mir empfohlen hast.

      Aber wie bekomme ich nun meine Daten aus der Datenbank wenn ich eine Login.php seite habe und die mit dem header("Location: loggedinpage.php"); angebunden ist

      kann das gerade schwer erklären hoffe du kannst mir da weiterhelfen und verstehst mein Fehler.

      Kommentar


      • #4
        Du speicherst beim login die user id (?) in der Session. Mit dieser kannst du dann auf den nachfolgenden Seiten die Daten abrufen.

        loggedinpage.php
        PHP-Code:
        <?php
        ...
        if (empty(
        $_SESSION['userID'])) {
            
        header('Location: nichteingelogger.php');
            exit;
        }

        $query "SELECT ... FROM profil WHERE profil.userID = ".(int)$_SESSION['userID'];
        ...
        Wenn du häufig genutzt Daten hast (z.B. username) kannst du die ggf. direkt in der Session speichern.

        Kommentar


        • #5
          WIe kann ich Daten in einer SESSION speichern.

          Vielen Dank werde versuchen den Code in meinen einzubauen.

          Kommentar


          • #6
            Zitat von msuu Beitrag anzeigen
            WIe kann ich Daten in einer SESSION speichern.
            https://www.php.net/manual/de/sessio...ples.basic.php

            Kommentar


            • #7
              Zitat von msuu Beitrag anzeigen
              WIe kann ich Daten in einer SESSION speichern.

              Vielen Dank werde versuchen den Code in meinen einzubauen.
              Machst du doch schon:
              PHP-Code:
              $_SESSION['id'] = $row['id']; 
              Kopier Code nicht blind. Wenn du fremden Code übernimmst, musst du verstehen was der Code macht. Für jede Zeile: Was macht der Code? Wie macht er das? Warum so?

              Kommentar

              Lädt...
              X