JavaScript – die besten Beiträge

PHP MySql Login / Passwort überprüfung?

Kann mir da jemand sagen wo der Fehler liegt ? Ich bin da am verzweifeln.

Login, Registrierung, Fehlermeldung, SQL Struktur habe ich alles in die Frage gepackt damit ihr einen besseren überblick habt.

login.php:

<?php
   $server = 'localhost';
   $user = 'root';
   $psw = null;
   $dbName = 'TestApp';
try {
   $conn = new PDO('mysql:host='.$server.';dbname='.$dbName.';charset=utf8', $user, $psw);
   $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    $username = htmlspecialchars(stripslashes(trim($_POST['username'])));
    $password = htmlspecialchars(stripslashes(trim($_POST['password'])));

    $statement = $pdo->prepare("SELECT * FROM user WHERE username = :username");
    $result = $statement->execute(array('username' => $username
                                    ));
    $user = $statement->fetch();
    //Überprüfung des Passworts
    if ($user !== false && password_verify($username, $password['passwort'])) {
        $_SESSION['userid'] = $user['id'];
        die('Login erfolgreich. Weiter zu <a href="geheim.php">internen Bereich</a>');
    } else {
        $errorMessage = "Nutzername oder Passwort war ungültig<br>";
    }

}catch (PDOException $e) {
    print "Error!: " . $e->getMessage() ;
    exit;
  }

Konsole :

<br />
<b>Warning</b>: Undefined variable $pdo in <b>C:\xampp\htdocs\Test\assets\php\login.php</b> on line <b>14</b><br />
<br />
<b>Fatal error</b>: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\Test\assets\php\login.php:14
Stack trace:
#0 {main}
 thrown in <b>C:\xampp\htdocs\Test\assets\php\login.php</b> on line <b>14</b><br />

register.php

<?php
   $server = 'localhost';
   $user = 'root';
   $psw = null;
   $dbName = 'TestApp';
try {
   $conn = new PDO('mysql:host='.$server.';dbname='.$dbName.';charset=utf8', $user, $psw);
   $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

// POST wird mit AJAX gesendet
   $username = htmlspecialchars(stripslashes((trim($_POST["username"])))) ;
   $password =  password_hash(htmlspecialchars(stripslashes((trim($_POST["password"])))) ,PASSWORD_DEFAULT) ;
   $cash =     100;

// Schreibt in die Datenbank

   $sql = "INSERT INTO user (username,password,cash) VALUES (:username,:password,:cash) ";
   $sqlvars = array("username"  => $username,
   "password" => $password,
   "cash" => $cash);
   $Abfrage = $conn->prepare($sql);
   $Abfrage->execute($sqlvars);


}catch (PDOException $e) {
  print "Error!: " . $e->getMessage() . "<br/>";
  exit;
}

SQL STRUKTUR :

Datenbankname : Test

Tabelle : user , 5 Spalten/Rows

  • id | int , (auto increment)
  • username | varchar , (unique)
  • password | varchar, (gehasht mit salt sha512)
  • cash | varchar
  • time | datetime, (mit current time stamp)

und ich mache alles mit AJAX.

-PDO statt mysqli

Computer, Webseite, Programmierer, programmieren, JavaScript, Datenbank, Informatik, MySQL, PHP, Webentwicklung, Backend, phpMyAdmin, PDO

Bin ich zu blöd zum Programmieren ?

Hallo, die frage klingt vielleicht dämlich, aber ich versuche jetzt seit 2 Tagen Programmieren zu lernen. Ich möchte wirklich gerne in meiner Zukunft mit Software arbeiten und bin auch bereit meine Freizeit zum Üben zu "Opfern". Allerdings weiß ich selbst nicht so richtig wie ich anfangen soll, da ich niemanden kenne der mir helfen kann anzufangen habe ich gegoogelt, aber bin fast nur auf Seiten gestoßen die Zahlungspflichtig sind. Ich habe halt keine Ahnung wie ich üben/lernen kann. Ich bräuchte doch zunächst einmal so eine art Terminal, wo ich den Code reinschreiben könnte oder? Dann müsste ich mir eine Programmiersprache aussuchen, hier fände ich Java Script ganz interessant, aber C ++ wäre vermutlich besser, da meines Wissens nach, viele Firmen mit dieser Sprache arbeiten. Stimmt das? Und ist C + + schwer? Habe jetzt schon ein bisschen auf Internetseiten Rumprobiert, mit Java Script, und habe die Variablen auch nach 2/3 Stunden Coden nicht wirklich verstanden.Bin ich zu dumm oder geht das mehreren so? Man kann ja z.B. function name() {und so weiter} machen ,aber was kommt in die runde () Klammer? Wieso bleibt die manchmal frei und manchmal nicht? Und wie beziehe ich mich in Funktionen richtig auf Variablen? Variablen sind doch dafür da, um Zeit zu sparen oder? Weil ich so nur die Variable eintragen muss, anstatt den ganzen Text. Also sagen wir ich habe die Variable let y=x(). Wie beziehe ich mich da in einer Funktion drauf? So? : function x() {return y;} ??? Und woher weiß ich ob ich y in Klammer setzten muss oder Anführungszeichen verwenden muss? Sorry für den langen Text. Danke im vorraus.

Computer, programmieren, Java, JavaScript, Informatik

Meistgelesene Beiträge zum Thema JavaScript