2014-11-14 237 views
-2

因此,我试图建立一个安全的主页,检查您是否通过获取用户在登录页面上输入的文本并检查它们是否正确来登录(所以您不能做www.website.com/home.php绕过登录)建立登录安全的PHP脚本

<body onload="OpenPhp()"> 
<form name="GetLogin" action="GetIfLoggedIn.php"> 
</body> 

的脚本是:

<script> 
function OpenPhp(){ 
document.GetLogin.submit(); 
} 
</script> 

php脚本应该包括用户名和密码登录脚本并重新检查瓦尔他们

<?php include "Login.php"; 
    if($Username === "*****" and $Password === "******"){ 

// Return To Page 

}else{ 
    //Go Back To Login Page 
} 

?> 

但是,包含语句使主页无法访问。每次我到主页时,它都会将我发回index.html页面。

有没有更好的方法来保护网页?如果是这样,请告诉我或解释为什么这不起作用,

+0

100%有语法错误在包含PHP页面。 – SaidbakR 2014-11-14 21:14:56

+2

为安全起见,绝不要依赖javascript。用户总是可以关闭它。 – 2014-11-14 21:15:05

+1

@sємsєм包含的PHP页面工作正常如果没有此脚本 – 2014-11-14 21:18:22

回答

3

为了保护网页,我鼓励您使用会话。

您使用一个脚本(让我们称之为login.php)允许用户登录。如果登录正确,则将用户名存储为会话变量。

在您的安全页面中,您只需检查用户名是否在会话中设置。

在所有脚本中,您需要执行session_start();以使$ _SESSION超全局变量可用。

用于注销,则可以使用session_destroy();

例子只是破坏了用户会话:

的login.php:

session_start(); 

function isValidLogin($username_, $password_) 
{ 
    if($username_=='sam' && $password_=='secret') 
    return true; 
    return false; 
} 

if(isValidLogin($username, password)) 
{ 
    $_SESSION['username']=$username; 
} 

your_secured_pa​​ge.php:

session_start(); 

if(isset($_SESSION['username')) 
{ 
    // display page 
} 
else 
{ 
    // redirect to login.php 
} 

logout.ph p

session_destroy(); 

另一个教程我发现: http://www.formget.com/login-form-in-php/

+0

这似乎是我需要的。你能澄清什么是有限登录()是? – 2014-11-14 21:38:35

+0

isValidLogin($ username,$ password)是检查登录是否正确(例如通过查询数据库)的任何函数。 名称“isValidLogin”只是一个占位符 – 2014-11-14 21:44:20

+0

函数是否必须返回True才能通过? – 2014-11-14 21:54:57