2017-11-14 13 views
0

ログインデータをデータベースと比較するPHPスクリプトを使用して、動作中のHTMLログインページを作成しようとしています。 私はこれをしばらくの間稼働させようとしていますが、実際にはうまくいきます。これは私がログインボタンで押したときに私が取得エラーコードです:PHPでデータベースに接続するHTMLログインを作成するにはどうすればよいですか?

Cannot POST /connectivity.php 

私はXAMPPで(leftover_youthと呼ばれる)のデータベースを作成しました。

UserNameID 
userName 
pass 

これは現時点でページ全体のHTMLコードです。

<html> 
    <head lang="en"> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" /> 
     <meta content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui" name="viewport"> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
     <script type="text/javascript" src="scripts/app.js"></script> 
     <link rel="stylesheet" href="css/stylesheet.css"/> 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
     <title>Project Bootstrap</title> 
    </head> 
    <body> 
     <header> 
       <div class="navlogo"> 
        <a href="index.html"> 
         <h1 class="Logo">Leftover Youth</h1> 
        </a> 
        <a href="index.html"> 
         <img class="logoo" src="img/logoo.png" alt="firstimage"> 
        </a> 
       </div> 
     </header> 
     <div> 
     <fieldset style="width:30%"> 
      <legend>LOG-IN HERE</legend> 
      <form method="POST" action="connectivity.php"> User <br> 
       <input type="text" name="user" size="40"><br> Password <br> 
       <input type="password" name="pass" size="40"><br> 
       <input id="button" type="submit" name="submit" value="Log-In"> 
      </form> 
     </fieldset> 
     </div> 
    </body> 
</html> 

PHP:

<?php define('DB_HOST', 'localhost'); 
define('DB_NAME', 'leftover_youth'); 
define('DB_USER','root'); 
define('DB_PASSWORD',''); 

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 

$ID = $_POST['user']; 
$Password = $_POST['pass']; 

function SignIn() 
{ 
session_start(); //starting the session 
if(!empty($_POST['user'])) //checking User data 
{ 
     $query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
     $row = mysql_fetch_array($query) or die(mysql_error()); 
     if(!empty($row['userName']) AND !empty($row['pass'])) 
     { 
      $_SESSION['userName'] = $row['pass']; 
      echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 

     } 
     else 
     { 
       echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY..."; 
     } 
} 
} 
if(isset($_POST['submit'])) { SignIn(); 
} 
?> 
+1

まず、訪問のhttp:// bobby-tables.comとSQLインジェクションとその防止方法について学びましょう。今すぐあなたのコードは本当に脆弱で、あなたのシステムの知識がなくても数秒でデータベース全体を削除できます。 Alwqysは、ユーザ入力を伴う問い合わせに対して準備されたステートメントを使用する!!また、 'mysql_ *'を使うのをやめてください。これは廃止され、PHP7ではサポートされなくなりました。代わりに 'mysqli_ *'または 'PDO_ *'ドライバを使用してください。準備された文をサポートします。また、 'PHP password verify function'のためのgoogle - あなたのデータベースに平文のパスワードを保存しないでください。 – Twinfriends

+0

mysqliと 'prepared statements'の使い方 – Pedram

+1

あなたのプロジェクトでライブをしたいのであれば、あなた自身で作成するのではなく、すでに存在するログインシステムを使うことをお勧めします。ログインシステムは、あなたが本当にそれらを安全にしたいと思っていれば非常に難しい話題です。そして私は、あなたがセキュリティとPHPを最近書く方法について多くのことを知らないことがわかります。それは犯罪ではないので、私は2017年にデータベースにどのように問い合わせるか、準備されたステートメントについて学ぶか、単純に完成したシステムを使うかのどちらかをお勧めします。今はあなたのコード、つまり安全ではない方法で決して生きることはありません。 – Twinfriends

答えて

1

あなたはconnectivity.php

のディレクトリ/パスを確認する必要もポストにして$ ID$パスワードを移動確認

if(isset($_POST['submit'])) { SignIn(); 
$ID = $_POST['user']; 
$Password = $_POST['pass']; 
} 
0

まず第一には、代わりにあなたの問題のいくつかのソリューションがありますmysqli

を使用し、長いバック推奨されませんmysqlの使用を避けます。

MySQLiを持つ方法は次のようになります:データベースクエリを実行するには

$connection = mysqli_connect('localhost', 'username', 'password', 'database'); 

も簡単で、古い方法とほぼ同じである:すべての

// Old way 
$query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
// New way 
$query = mysqli_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
関連する問題