Ankündigung

Einklappen
Keine Ankündigung bisher.

Alert in login.php

Einklappen

Neue Werbung 2019

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

  • Alert in login.php

    PHP-Code:
    <?php

    error_reporting
    (0);

    include 
    '../inc/database.php';

    session_start();

    $username mysqli_real_escape_string($conhtmlspecialchars($_POST['username']));
    $password mysqli_real_escape_string($conhtmlspecialchars(md5($_POST['password'])));

    $result mysqli_query($con"SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password'") or die(mysqli_error($con));
    $row mysqli_fetch_array($result);

    $id $row['id'];
    e(
    $select_user mysqli_query($con"SELECT * FROM `users` WHERE `id` = '$id'") or dimysqli_error($con));
    $row2 mysqli_fetch_array($select_user);

    $user $row2['username'];

    if(
    $username != $user){
    die(
    "Falsche Anmeldedaten");
    }
    $pass_check mysqli_query($con"SELECT * FROM `users` WHERE `username` = '$username' AND `id` = '$id'") or die(mysqli_error($con));
    $row3 mysqli_fetch_array($pass_check);

    $email $row3['email'];

    $select_pass mysqli_query($con"SELECT * FROM `users` WHERE `username` = '$username' AND `id` = '$id' AND `email` = '$email'") or die(mysqli_error($con));
    $row4 mysqli_fetch_array($select_pass);

    $real_password $row4['password'];

    if(
    $password != $real_password){
    die(
    "Falsche Daten");
    }

    $email $row['email'];
    $rank $row['rank'];

    $_SESSION['id'] = $id;
    $_SESSION['username'] = $username;
    $_SESSION['password'] = $password;
    $_SESSION['email'] = $email;
    $_SESSION['rank'] = $rank;

    header("Location: ../index.php");




    ?>
    Wie baue ich hier einen alert ein?
    Ich habe echt keine Ahnung.
    Soll ich hier was einfügen? if($username != $user){
    die("Falsche Anmeldedaten");
    }

    So werde ich auf eine leere Seite weitergeleitet und dort steht falsche Anmeldedaten.

  • #2
    Wie baue ich hier einen alert ein?
    meinst Du sowas:
    https://www.php.de/forum/webentwickl...rt-box-mit-php

    Kommentar


    • #3
      Wie baue ich hier einen alert ein?
      Am besten gar nicht. Das gehört ins Template.
      [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

      Kommentar


      • #4
        Eigentlich ist das hier ein Doppelpost, gestern hast du theoretisch das gleiche gefragt.

        https://www.php.de/forum/webentwickl...alert-einbauen

        Wenn du Probleme mit deinem Quellcode hast, bist du hier richtig, wenn du jemand haben möchtest der dir den Quellcode schreibt, dann musst du zur Scriptbörse.

        Kommentar


        • #5
          IchUseKomplexe

          Ich habe den anderen geschlossen, wegen Doppelpost. Bitte nur einen Thread pro Thema!
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Verwende ein Affenformular (https://php-de.github.io/jumpto/affenformular/) und setzte im Falle eines Fehlers eine Variable, welche du dann im Layout/Template abfragst.
            Also:

            PHP-Code:
            if($username != $user){
              
            $error "Wir konnten deinen Benutzernamen nicht finden!");

            PHP-Code:
            if (strlen($error) > 0) {
             ?>
            <div class="error"><?= $error;?></div>
            <?php 
            }
            Zusätzlich macht dein Script aus meiner Sicht nur bedingt Sinn.
            1. Du machst eine DB-Abfrage mit Benutzernamen und Passwort. Wenn eines von beiden nicht stimmt bekommst du nicht zurück
            2. In der Folge verwendest du immer die ID aus 1 für deine Abfrage. Wenn dort nichts rauskommt weil username/pw falsch bekommst du bei all diesen Abfragen auch nie etwas zurück.
            3. Grundsätzlich reicht die 1.Abfrage aus, wenn du wirklich spezifisch abfragen willst ob das PW oder der Benutzername falsch ist müsstest du das anders machen.

            Zudem:
            PHP-Code:
            $password mysqli_real_escape_string($conhtmlspecialchars(md5($_POST['password']))); 
            1. htmlspecialchars verwendet man bei der Ausgabe von Daten. Dies hier so zu verwenden macht wenig Sinn.
            2. md5 sollte man nicht mehr verwenden. PHP hat die Funktionen password_hash und password_verify dafür.

            Kommentar


            • #7
              Zitat von IchUseKomplexe Beitrag anzeigen
              Wie baue ich hier einen alert ein?
              So:
              PHP-Code:
                echo '<script language="javascript">alert("Falsche anmeldedaten!")</script>'

              Kommentar

              Lädt...
              X