Hallo ich hoffe hier kann mir jemand weiter helfen bin neu in dem Gebiet PDO ,,, meine frage ich kriege meinen login nicht hin also er gibt mir zwar die passwort hash aus .. nur fehlen da ein paar zeichen und weiß ned wie ich das in PHP schreiben soll ich hoffe mir kann da jemand helfen ,, und vllt kann mir jemand auch dabei helfen das ich eine funktionierende Registration aber erstmal steht der login im Fokus das ich weiter ausbauen kann das script ist nicht von einer pub hp oder sonstiges sondern selbst geschrieben mit session usw . ich hpffe es gibt jemanden der mir helfen kann
Index.php
PHP
- <?php
- session_start();
- if(isset($_GET["section"])){
- $section = $_GET["section"];
- } else{
- $section = " ";
- }
- require_once 'inc/config.inc.php';
- $db = new db();
- ?>
- <html>
- <head>
- <link rel="stylesheet" type="text/css" href ="css/style.css">
- <title>Zoria2</title>
- </style>
- </head>
- <body>
- <div id="wrapper" class="shadow">
- <header>
- </header>
- <nav>
- <?php
- include("pages/menu.php");
- ?>
- </nav>
- <div id="content">
- <?php
- include("pages/sites.php");
- ?>
- </div>
- <footer>
- <?php
- include("pages/copyright.php");
- ?>
- </footer>
- </div>
- </body>
- </html>
PHP
- <h1>Login</h1>
- <?php
- error_reporting(E_ALL);
- if($db->isUserLoggedIn() === TRUE){
- echo"Du bist bereits eingeloggt! - <a href='index.php?section=logout' alt='Ausloggen'>Ausloggen</a>";
- } else{
- if(isset($_POST['login1'])){
- $user = $_POST['username'];
- $pass = '*'.strtoupper(OLD_PASSWORD($_POST['pass']));
- if($db->login($user, $pass) === TRUE){
- echo "Erfolgreich eingeloggt";
- }else{
- echo "Login Fehlgeschlagen<br />";
- echo $user;
- echo $pass;
- }
- }
- ?>
- <form action="index.php?section=login" method="POST">
- <table>
- <tr>
- <td>
- Benutzername:<br/>
- </td>
- <td>
- <input type="text" placeholder="Username" name="username" required />
- </td>
- </tr>
- <tr>
- <td>
- Passwort:<br/>
- </td>
- <td>
- <input type="password" placeholder="Password" name="pass" required />
- </td>
- </tr>
- <tr>
- <td>
- <input type="submit" name="login1" value="Absenden" />
- </td>
- </tr>
- </table>
- </form>
- <?php
- }
- ?>
PHP
- <?php
- $sid = session_id();
- class db{
- private static $dbhost = "serverip";
- private static $dbuser = "dbuser";
- private static $dbpass = "dbpasswort";
- private static $dbname = "account";
- private static $db;
- function __construct(){
- try{
- self::$db = new PDO("mysql:host=" . self::$dbhost . ";dbnmame=" . self::$dbname, self::$dbuser, self::$dbpass);
- } catch(PDOException $e){
- echo "Die Verbindung konnte nicht hergestellt werden !!!";
- die();
- }
- }
- function isUserLoggedIn(){
- $stmt = self::$db->prepare("SELECT id FROM account WHERE session=:sid");
- $stmt->bindParam(":sid", $sid);
- $stmt->execute();
- $stmt->fetch();
- if($stmt->rowCount() == 1){
- return TRUE;
- }else{
- return FALSE;
- }
- }
- function login($user, $pass){
- $stmt = self::$db->prepare("SELECT id FROM account WHERE login=:username AND password=:pass");
- $stmt->bindParam(":username", $user);
- $stmt->bindParam(":pass", $pass);
- $stmt->execute();
- $stmt->fetch();
- if($stmt->rowCount() === 1){
- $stmt = self::$db->prepare("UPDATE account SET session=:sid WHERE login=:username AND password=:pass");
- $stmt->bindParam(":sid", $sid);
- $stmt->bindParam(":username", $user);
- $stmt->bindParam(":pass", $pass);
- $stmt->execute();
- return TRUE;
- }else{
- return FALSE;
- }
- }
- }
- ?>
PS: Habe es jetzt hinbekommen !