2017-03-03 46 views
1

我想弄清楚如何在登錄後顯示用戶信息。我不確定是否應該創建一個可以根據會話顯示用戶信息的單個php文件,還是應該爲不同的用戶創建不同的文件。我也無法抓住標題。如何在php中顯示用戶信息?

,這裏是我的login.php中的代碼

<?php 
session_start(); 

require 'dbh.php'; 


$username = $_POST['uname']; 

$password = $_POST['pwd']; 


$sql = "SELECT * FROM registeredusers WHERE UserName = '$username'"; 

$result = mysqli_query($connection,$sql); 

$row = mysqli_fetch_assoc($result); 


$hashed_Password = $row['Password']; 

$Dehash = password_verify($password,$hashed_Password); 



if($Dehash == 0){ 

echo "username or password is incorrect"; 

exit(); 


} else{ 




$sql = "SELECT * FROM registeredusers WHERE UserName='$username' AND Password='$hashed_Password'"; 

$result = mysqli_query($connection,$sql); 



if (!$row=mysqli_fetch_assoc($result)){ 


echo "Your User Name or Password is incorrect"; 

} 

else { 

$userid = $row['id']; 

$_SESSION['UserName'] = $row['UserName']; 


header("Location: userhomepage.php?user_id=".$userid); 

} 


} 

?> 

下面的代碼重定向到userhomepage.php和用戶ID是在URL可以有人還告訴我,我該如何抓住從URL中的用戶ID?我只在一週前開始在PHP中編寫代碼,所以如果我們對我有任何指導,那將是非常棒的。

+1

**警告**:編寫您自己的訪問控制層並不容易,並且有很多機會使其嚴重錯誤。請不要在[Laravel](http://laravel.com/)等任何現代開發框架(http://codegeekz.com/best-php-frameworks-for-developers/)上編寫自己的認證系統,內置了強大的[認證系統](https://laravel.com/docs/5.4/authentication)。 – tadman

+0

[Little Bobby](http://bobby-tables.com/)說*** [你的腳本存在SQL注入攻擊風險。](http://stackoverflow.com/questions/60174/how-can- ***)瞭解[MySQLi](http://php.net/manual)[準備](http://en.wikipedia.org/wiki/Prepared_statement)聲明/en/mysqli.quickstart.prepared-statements.php)。即使[轉義字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! [不相信它]?(http://stackoverflow.com/q/38297105/1011527) –

回答

0

我不確定我是否應該創建一個可以根據會話顯示用戶信息的單個php文件,還是應該爲不同的用戶創建不同的文件。

您應該創建一個基於會話顯示用戶信息的頁面......您不希望每次用戶註冊時都手動創建一個新頁面!

我怎麼抓住用戶ID從URL

回聲$ _GET [ 「user_ID的」];

+0

我試過$ _GET [「id」]我一直得到相同的錯誤未定義索引:編號 –

+0

必須是「user_id」不是「id」,它必須與URL中的參數匹配 –