2017-04-30 12 views
2

私はログインスクリプトに問題があります。彼女は誰か助けてくれますか? エラーメッセージは表示されません。 私は、このページから https://www.php-einfach.de/experte/php-codebeispiele/loginscript/PHPとmysqlログインスクリプト

<!DOCTYPE html> 
<html> 

<head> 
    <meta charset="UTF-8"> 
    <title>Log In</title> 
    <link rel="stylesheet" href="../css/CSS.css"> 
</head> 


<?php 
session_start(); 
$pdo = new PDO('mysql:host=localhost;dbname=sensitivedaten', 'root', ''); 

if(isset($_GET['login'])) { 
    $passwort = $_POST['passwort']; 

    $statement = $pdo->prepare("SELECT * FROM users WHERE Name = :username"); 
    $result = $statement->execute(array('Name' => $username)); 
    $username = $statement->fetch(); 

    //Überprüfung des Passworts 
    if ($username !== false && password_verify($passwort, $username['Passwort'])) { 
     $_SESSION['userid'] = $username['id']; 
     header('Location: ../Startseite.php'); 

    } else { 
     $errorMessage = "Passwort war ungültig<br>"; 

     } 
    } 
?> 

<body class="body2"> 
    <header> 
     <h1 class="uberschrift"> Bitte Einloggen! 
    </header> 

    <form name="formular" action=" <?php echo $_SERVER ['PHP_SELF']; ?>" method="post" > 
     <p class="uberschrift">User Name angeben: &nbsp</p>  <input class="moreSpace" type="text" value="" name="username"> </br> 
     <p class="uberschrift">Passwort angeben: &nbsp </p> <input class="moreSpace" type="password" value="" name="PW"> </br> 
     <input id="button1" type="submit" name="abschicken"> </br></br></br> 

     <img id="icon-off" alt="power1" src="../img/power1.png"> 
     <ul class="liste3"> 
      <li><a href="registrieren.php"> oder Registrieren </a></li> 

     </ul> 
</body> 

</html> 

を自分のログインスクリプトを持ってはあなたの助けに前もって感謝:あなたは、いくつかのより多くの情報が必要な場合はD はちょうど私はできるだけ早く私はできる答えることをしようとそれを書きます。

EDIT1: フィードバックをいただきありがとうございます。コードを修正してください。

EDIT2: 私は名前からユーザ名にしてPasswortパスワードに

EDIT 3からのmysqlで列を変更:今、それが動作 。皆さん、助けてくれてありがとう。

+0

少なくとも、あなたが持っているエラーを含めることができます – Akintunde007

+0

あなたはあなたのhtmlフォームを閉じなかった – Akintunde007

+0

何が問題なのですか?ログインできませんか? –

答えて

1

あなたのコードはエラーに満ちている、あなたのフォームがmethod="post"を使用し、あなたのPHPにあなたが$_GETを使用して、パスワードフィールドは、あなたのPHPあなたが$_POST['passwort']を使用してname="PW"を使用しています。

<?php 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 
session_start(); 
$pdo = new PDO('mysql:host=localhost;dbname=sensitivedaten', 'root', ''); 

if (isset($_POST['abschicken'])) { // replaced $_GET['login'] 
    $passwort = $_POST['PW']; // replaced $_POST['passwort']; 
    $username = $_POST['username']; // added username as it was missing 

    $statement = $pdo->prepare("SELECT * FROM user WHERE username = :username"); 
    $result = $statement->execute(array(':username' => $username)); // replaced $statement->execute(array('Name' => $username)); 
    $username = $statement->fetch(); 

    //Überprüfung des Passworts 
    if ($username !== false && password_verify($passwort, $username['Passwort'])) { 
     $_SESSION['userid'] = $username['id']; 
     header('Location: ../Startseite.php'); 

    } else { 
     $errorMessage = "Passwort war ungültig<br>"; 

    } 
} 

?> 
<!DOCTYPE html> 
<html> 

<head> 
    <meta charset="UTF-8"> 
    <title>Log In</title> 
    <link rel="stylesheet" href="../css/CSS.css"> 
</head> 
<body class="body2"> 
<h1><?php echo isset($errorMessage) ? $errorMessage : ''; ?></h1> 
<header> 
    <h1 class="uberschrift"> Bitte Einloggen! 
</header> 
<form name="formular" action=" <?php echo $_SERVER ['PHP_SELF']; ?>" method="post"> 
    <p class="uberschrift">User Name angeben: &nbsp</p>  <input class="moreSpace" type="text" value="" 
                    name="username"> </br> 
    <p class="uberschrift">Passwort angeben: &nbsp </p> <input class="moreSpace" type="password" value="" 
                    name="PW"> </br> 
    <input id="button1" type="submit" name="abschicken"> </br></br></br> 

    <img id="icon-off" alt="power1" src="../img/power1.png"> 
    <ul class="liste3"> 
     <li><a href="registrieren.php"> oder Registrieren </a></li> 

    </ul> 
</form> 
</body> 

</html> 
+0

私はあなたのコードで間違っていなければならないことは分かっていますが、それは私の仕事ではなく、私はエラーメッセージではありません。 – Yuto

+0

何か変更しましたか? – julekgwa

+0

ここにコードを貼り付けてくださいhttps://codeshare.io/5DAymZ – julekgwa

0

パスワード入力の「名前」はpw ..ですが、$ _POST ['PASSWOT']にあります。 ..同じでなければなりません。

+0

はい、私はそれを修正しました。 – Yuto

関連する問題