2017-01-04 6 views
-1

私のコードに問題があります。送信ボタンをクリックしても何も起こりません。 私は前に別のプロジェクトでコードを使用しましたが、うまくいきます。 問題がなぜ私のPHPログインページが動作しません

HTMLフォームです私は知らない。

login.php

<form role="form" action="login.php" method="POST" class="login-form"> 
    <div class="form-group"> 
     <label class="sr-only" for="form-username">Username</label> 
     <input type="text" name="username" placeholder="Username..." class="form-username form-control" id="form-username"> 
    </div> 
    <div class="form-group"> 
     <label class="sr-only" for="form-password">Password</label> 
     <input type="password" name="password" placeholder="Password..." class="form-password form-control" id="form-password"> 
    </div> 
    <div class="form-group"> 
     <input id="check" type="checkbox" class="check" checked> 
     <label for="check"><span class="icon"></span> Keep me Signed in</label> 
    </div> 
     <button type="submit" name="login_submit" class="btn">Sign in!</button> 
</form> 

config.phpファイル

<?php 
define('DBHOST', 'localhost'); 
define('DBNAME', 'projectdb'); 
define('DBUSER', 'root'); 
define('DBPASS', ''); 
define('DBCONNSTRING','mysql:host=localhost;dbname=projectdb'); // the connection string 
?> 

<?php 
if (isset($_POST['login_submit'])) { 
    $id = $_POST["username"]; 
    $pass = $_POST["password"]; 

    try { 
     require_once('config.php'); 
     $pdo = new PDO(DBCONNSTRING,DBUSER,DBPASS); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Exception handling Mode 
     $sql="SELECT * FROM login WHERE username='$id' AND password='$pass'"; 
     $result=$pdo->query($sql); 
     $count=$result->rowCount(); 

     if ($count=="0") { 
      echo "invalid username and/or password"; 
      echo '<p> <a href="index.html"> GO TO HOME PAGE </a> </p>'; 
     } else { 
      setcookie("UserName", $id,time()+60*60*24); 
      echo "check cookie " .$_COOKIE["id"]; 
      session_start(); 
      $_SESSION["id"] = $id; 
      $_SESSION["loginTime"] = time(); 
      header('Location: StudentHome.html'); 
     } 
    } catch (PDOException $e) { 
     echo "Connection Error! <br>".$e->getMessage(); 
    } 
} 
?> 
+1

データベースまたはプレーンテキストにハッシュされたパスワードを格納していますか? –

+0

送信ボタンをクリックするとどうなりますか?ページがリダイレクト、リフレッシュ、または何も起こらない –

+0

パスワードをプレーンテキストとして保存しています。ボタンをクリックすると、何も起こりません。 – user2950439

答えて

0

最初のデバッグを使用してHTML例としてFireBug。間違ったことがたくさんあることがわかります。

いくつかのもの:

session_start()は間違った場所にあります。ファイルの始まりに配置する必要があります。 「すべてのファイルが必要です」

<?php session_start() 

?> 

ボタンはonclickイベントに最適で、javascriptで送信します。あなたがjavascriptのチェックをしていない場合は、<input type='submit' name='login_submit'>を使用してください。

input_filter()を使用して保存します。あなたのコードはすぐに注入することができます。もっと読むことができますivorysmoker MySQL injection and some stuff

$id = $_POST["username"]; 
$pass = $_POST["password"]; 

フォームAttribut role dosntが存在します。私が間違っている時は訂正してください。

あなたのフォームアクションパスは正しいですか?あなたのファイルは同じディレクトリにありますか?

なぜあなたはCookieとセッションを使用するのですか?

+0

はまだ動作しません – user2950439

関連する問題