2017-04-26 7 views
0

こんにちは私のPHPプログラム内でif文を使用しようとすると、いくつかの問題がありました。私はチュートリアルを見て、本当に理解できませんでした。私が間違っているところを理解する。PHP if文をログインページで使用する

私は自分のコンピューターサイエンスプロジェクトのログインシステムを作っていて、ユーザー名とパスワードを検証して別のページに移動するか、エラーメッセージを表示したいと考えています。私のコードは最高だとは思っていますが、初心者だけです。

<?php 


    $username = "username"; 

    $password = "password"; 

    $hostname = "localhost"; 



    error_reporting(E_ALL); ini_set('display_errors', 1); 



//connection to phpmyadmin 

    $dbhandle = mysqli_connect($hostname, $username, $password, '1012405') or die("Unable to connect to MySQL"); 






$sqlLogin = "SELECT * FROM users WHERE email='".$_POST['email']."' 
AND password='".$_POST['email']."' 
"; 
     $log = mysqli_query($dbhandle,$sqlLogin) or die("Unable to insert to login"); 

     if $sqlLogin > 0{ 
      header('Refresh: 3; url=stockInputForBusiness.html'); 
}  else{ 
      echo"Incorrect Credentials"; 
} 



?> 
+0

ifステートメントがないかっこ '()' – Akintunde007

+0

'$ sqlLogin> 0'は実行できません。ヒント、 '$ sqlLogin'の起源を確認してください – Akintunde007

+1

あなたは自分のhtmlフォームからあなたのデータベースに直接投稿することは決してありません。単純な検索、保存/更新、削除のいずれか。 – Akintunde007

答えて

0

あなたのコードにはたくさんのことがありますが、それを見つけ出して一つずつ解決してください。最高のことは試してやっています。ここに参考に使用できるログインスクリプトのコードです。

 if(isset($_POST['submit'])) 
     { 
     $email= $_POST['email']; 
     $password= $_POST['password']; 
     $email = addslashes($email); 
$password = addslashes($password); 
$email = mysqli_real_escape_string($link, $email); 
$password = mysqli_real_escape_string($link, $password); 

     $seladmin ="SELECT id,UserName,Password FROM login WHERE email='$email' && Password='$password'"; 
     $SelRecAdmin = mysqli_query($link,$seladmin); 

     $row = mysqli_fetch_array($SelRecAdmin); 

     $tot_num_row=mysqli_num_rows($SelRecAdmin); 
     if($tot_num_row >0) 
     { 
      // echo"sucess"; 
     } 
     else 
     { 
     // echo"unsucess"; 
     } 
+1

準備されたステートメントを使用してください。クエリがSQLインジェクションを受けやすいです。または、クエリで渡す前にコンテンツを少なくともエスケープする必要がある場合。 –

+0

ありがとう@NiekvanderMaaden –

+0

'mysqli_real_escape_string()'と 'addslashes()'を削除して、代わりにプリペアドステートメントをプレースホルダで利用する必要があります。また、パスワードをハッシュする必要があることにも注意してください( 'password_hash()')。 – Qirel