1
我已經生成了一個PHP文件,其中存儲了一個數據庫中的信息。要訪問此人,必須在頁面中使用登錄。.php文件安全使用MAMP
但是,當您使用MAMP時,您如何防止某人通過寫入IP地址和php文件名來訪問該文件,例如123.456.78.00:80/fileone.php。我希望這個fileone.php被隱藏,並且只能通過登錄頁面訪問它。 在此先感謝。
<?php
session_start();
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
mysql_connect("localhost", "root","root") or die(mysql_error()); //Connect to server
mysql_select_db("first_db") or die("Cannot connect to database"); //Connect to database
$query = mysql_query("SELECT * from users WHERE username='$username'"); //Query the users table if there are matching rows equal to $username
$exists = mysql_num_rows($query); //Checks if username exists
$table_users = "";
$table_password = "";
if($exists > 0) //IF there are no returning rows or no existing username
{
while($row = mysql_fetch_assoc($query)) //display all rows from query
{
$table_users = $row['username']; // the first username row is passed on to $table_users, and so on until the query is finished
$table_password = $row['password']; // the first password row is passed on to $table_users, and so on until the query is finished
$table_id = $row['id'];
$page_id = $row['page'];
}
if(($username == $table_users) && ($password == $table_password)) // checks if there are any matching fields
{
if($password == $table_password)
{
$_SESSION['user'] = $username; //set the username in a session. This serves as a global variable
//echo $table_id;
//echo $page_id;
redirect ($page_id); //take the user to the page specified in the users table
}
else
{
echo "Login Failed";
}
}
else
{
Print '<script>alert("1. Incorrect Password!");</script>'; //Prompts the user
Print '<script>window.location.assign("login.php");</script>'; // redirects to login.php
}
}
else
{
Print '<script>alert("Incorrect Username!");</script>'; //Prompts the user
Print '<script>window.location.assign("login.php");</script>'; // redirects to login.php
}
function redirect($page_id)
{
/* Redirect browser */
header('Location: ' . $page_id);
/* Make sure that code below does not get executed when we redirect. */
exit;
}
?>
我附上了我的checklogin.php。登錄頁面本身除登錄按鈕外沒有太多內容,然後將用戶重定向到此頁面。我已經設置了用戶名和密碼,但這是爲了檢查用戶是否存在於數據庫中,然後確保他們在登錄後被重定向到他們的個人頁面。因此,我意識到我需要一些當用戶登錄和註銷時會觸發的東西。你的工作代碼如何識別用戶何時離開,或者已經停止了20分鐘。謝謝 – Rus84
我編輯了答案,希望我幫你好! @ Rus84 – CrazzyMarc
是的,這是非常有幫助的,你在底部解釋的部分是完全正確的。這是我的問題,他們可以輸入URL並仍然讀取文件,因此解決方案非常棒。我只有3個用戶,他們的用戶ID很簡單1,2和3.通過構建配置文件,你的意思是什麼?我的所有用戶都擁有相同的編輯權限等。如果我沒有配置文件,我該怎麼辦?用戶ID存儲在數據庫中,而checklogin.php只是確保用戶名和密碼相匹配。謝謝你的幫助。 – Rus84