2017-02-01 8 views
0

ログインシステムを設定しようとしていますが、そのページはユーザーとパスワードの検証を行っていません。私はデータベースに接続していることは分かっていますが、各ステートメントの後には結果が表示されません。 私は、ログインフォーム(login.php)とデータベースへのログイン(process.php)の2つのファイルを持っています。私はそれに役立つことを願っていますこれを使用することができますPHPとMySQLを使用してログインシステムを設定する方法は?

<!DOCTYPE html> 
<html> 
<head> 
<link rel="stylesheet" type="text/css" href="style.css"> 

<title>Login Page</title> 
</head> 

<body> 
<div> 
<form action="process.php" method="POST"> 
<p> 
<label>Username:</label> 
<input type="text" id="user" name="user"> 
</p> 
<p> 
<label>Password:</label> 
<input type="password" id="pass" name="pass"> 
</p> 
<p> 
<label>Username:</label> 
<input type="submit" id="btn" value="Login"> 
</p> 
</form> 
</div> 
</body> 
</html> 


Process.php 
<?php 
    //Get values from login.php file 
    $username = $_POST['user']; 
    $password = $_POST['pass']; 

    //Stop SQL injection 
/* $username = stripcslashes($username); 
    $password = stripcslashes($password); 
    $username = mysql_real_escape_string($username); 
    $password = mysql_real_escape_string($password);*/ 

    //Connect to the server and select database 
$domainsn = 'mysql:host=localhost;dbname=login'; 
$username = 'root'; 
$password = 'costarica'; 

try { 
    $db = new PDO ($domainsn, $username, $password); 
    echo "Connected"; 

} catch (Exception $e) { 
    $error_message = $e->getMessage(); 
    echo "Coudn't connect due to $error_message"; 
} 

    $query = "SELECT * FROM users WHERE username = '$username' AND password ='$password'"; 
    $result = $db->query($query); 
    //echo "$result"; 


    foreach ($result as $results) { 
    echo "$results"; 
    echo $users['id']; 

    if ($results['username'] == $username && $results['password'] == $password) { 
     echo "Login success!!! Welcome ".$results['username']; 
    } else { 
      echo "failed try {} catch ($e) {}"; 

    } 
    } 
?>`enter code here` 
+0

*ユーザーとパスワードの検証は行っていません* - 出力は何ですか?任意のエラー?空白ページ?それにもかかわらず、私はなぜforeach($結果としての$結果){'が最初の結果を得るのが最善でないのだろうか?クエリを発生させます。 –

+0

[PHPでのログインシステムの作成](http://stackoverflow.com/questions/11314373/creating-a-login-system-in-php) –

+1

**重複している可能性があります**警告**:書き込み独自のアクセス制御レイヤーは容易ではなく、深刻な間違いを犯す機会がたくさんあります。 [適切に値をエスケープしていない](http://bobby-tables.com/php)のため、これには多くの危険な[SQLインジェクションの脆弱性](http://bobby-tables.com/)があります。このコードでは、誰でもあなたのサイトから何かを得ることができます。 **あなた自身の認証システムを書いてはいけません**。 [Laravel](http://laravel.com/)のような[開発フレームワーク](http://codegeekz.com/best-php-frameworks-for-developers/)には、[認証システム](https: /laravel.com/docs/5.3/authentication)ビルトイン。 – tadman

答えて

0

は、ここに私のコードです。

$query = "SELECT * FROM users WHERE username = '".$username."' AND password ='".$password."' "; 
$result = $db->query($query); 

if($result->num_rows>0){ 
// User exists 
}else{ 
// User not exists. 
} 
+0

PHP文字列では、[さまざまな補間オプション](http://php.net/manual/en/language.types.string.php)が可能です。連結に切り替えても何も変わらず、問題は解決しません。 – tadman

関連する問題