2017-02-10 16 views
-2

私はそれは、 ユーザー名とパスワードだけでなく、として、ログインから登録ユーザを制限する必要があるとします特定の登録ユーザのログインを制限するにはどうすればいいですか?

  • ユーザーvoting_status='a'が、voting_status='b'場合、ユーザーは
  • その ユーザ名とパスワードでログインできるようにする場合それはユーザのログインを制限し、エコー"you're not allowed to login"他のユーザ名/パスワードが間違っている必要があります。

しかし、私はコーディングの初心者であるので、私はそれについてどうなるかわかりません。本当に助けが必要です。これは今まで私がやってきたことです。

<?php 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'university portal'); 
define('DB_USER','root'); 
define('DB_PASSWORD','password007'); 

$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 for user profile page 
    if(!empty($_POST['UserName'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
    { 
     $query = mysql_query("SELECT Username, Password, voting_staus 
           FROM voters 
          where Username = '$_POST[UserName]', 
           Password = '$_POST[password]' 
           voting_status = 'a' ") 
        or die(mysql_error()); 

     $row = mysql_fetch_array($query) or die(mysql_error()); 

     if(!empty($row['Username']) AND !empty($row['Password'])){ 
      if($row['voting_status']){ 
       $_SESSION['Username'] = $row['Password']; 
       echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 

      } 
     } 
     elseif($row[voting_status]=='b') { 
      echo "You are not allow to Login Here"; 
     } else { 
      echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY..."; 
     } 
    } 
} 

if(isset($_POST['submit'])) { 
    SignIn(); 
} 

?> 
+0

[mysql_'](http://stackoverflow.com/questions/12859942/why-shouldnt-use-mysql-functions-in- php) データベース拡張子を新コード ** [キツンは世界のどこかで絞殺されている](http://bb.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg)* *これは廃止され、何年も続いており、PHP7でこれまでになくなっています。 PHPを学んでいるだけなら、 'PDO'や' mysqli'データベースの拡張機能や準備した文を学ぶことができます。 [ここから開始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

+0

あなたのスクリプトは[SQL Injection Attack]の危険にさらされています(http://stackoverflow.com/questions/60174/how -in-prevent-sql-injection-in-php) [Little Bobby Tables](http://bobby-tables.com/)に何が起こったかを見てください。 [入力をエスケープしている場合は、安全でない!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) [準備されたパラメータ化されたステートメント](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

+0

'voters'テーブルにカラムを追加して、ユーザがログインすることを許可されているかどうかを表示し、' if(!empty($ row ['IsAllowed'] )) ' – crowchirp

答えて

0

してください、私は条件で、どこで、クエリの削除の変更を行い、voting_statusを削除し、これらの変更

if(!empty($_POST['UserName'])&& !empty($_POST['password'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
    { 
     $query = mysql_query("SELECT Username, Password, voting_staus 
           FROM voters 
          where Username = '$_POST[UserName]' and 
           Password = '$_POST[password]' 
           ") 

そしてこの

 if($row['voting_status'] == 'a'){ // change by mo 
      $_SESSION['Username'] = $row['Password']; 
      echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 

を変更しました。クエリのステータスに間違ったスペルを使用しています

+0

ステータスの綴りを確認してください。 –

+0

@Riggs –

+0

で述べたことを考慮してください。あなたの変更はエラーではありませんが、「成功したログインをユーザープロファイルページに」表示しませんでした。 –

関連する問題