2013-04-16 64 views
-3

我使用Wordpress构建我的网站。我正在为学校创建一个登录系统,以登录我的系统查看您的信息。我遇到问题,当用户使用授权登录时,他们无法进入视图产品页面的授权页面。登录和授权页面(会话)问题

请帮忙。

以下是登录码。

session_start(); 
if($_SERVER["REQUEST_METHOD"] == "POST") { 

// School code and password sent from Form 
$myschoolcode = ($_POST['schoolcode']); 
$mypassword = ($_POST['password']); 

$sql = "SELECT school_id FROM schools_info WHERE SchoolCode = '$myschoolcode' and Password = '$mypassword'"; 
$result = mysql_query($sql); 
$row = mysql_fetch_array($result); 
$active = $row['active']; 
$count = mysql_num_rows($result); 

// If result matched $myschoolcode and $mypassword, table row must be 1 row 
if($count == 1) { 
session_register("myschoolcode"); 
$_SESSION['login_school'] = $myschoolcode; 

header("location: ../view-products/"); 
} 
else 
{ 
?> 
    <script type="text/javascript"> 
    alert("Your School Code or Password is incorrect, please reenter"); 
    history.back(); 
    </script> 
    <?php 
} 

} 

以下是视图产品页面代码。

session_start(); 
$school_check = $_SESSION['login_school']; 

$ses_sql = mysql_query("SELECT SchoolCode FROM schools_info WHERE SchoolCode = '$school_check' "); 

$row = mysql_fetch_array($ses_sql); 

$login_session = $row['schoolcode']; 

if(!isset($login_session)) 
{ 
header("location: ../enter-icas/"); 
} 

回答

2

如果我能-1我这样做。你最后的问题是会话,你的首要问题是你正在存储简单的密码?甚至不是一个cruddy MD5?甚至没有mt_rand()?很简单吗? - >大问题!第2)您记录用户输入的数据,你甚至没有过滤,或验证,瞬间将变成一只查询,你认为你的安全,因为你用

“$ please_inject_me_NOW”

您应该使用PDO。看看Php PDO手册。

除了我的咆哮,只是看着你的看法,我不明白你为什么要做$ _SESSION变量的另一个查询?

所有你需要做的就是设置你的会话变量如果凭证匹配你已经完成。

现在在每个视图页面的顶部或在该视图中所有你所要做的范例网页:

if(!isset($_SESSION['LoggedIn'])){ // If session variable 'LoggedIn' is not set then 
     die("Access denied, you must <a href='index.php'><bold>Login</bold></a> to view this page!"); // Die with the message Access Denied, You must Login to view this page! 
} else { // If session variable LoggedIn is set then yyyyaaay! Do your thing man. 
    ......... 
} 

但请阅读我的评论。你必须使用某种密码保护= Bcrypt任何一个?另外不要忘记PDO!

编辑1

而且不要忘了添加在session_start()要实现上面的解决方案之前,(你可能已经知道,虽然)

+0

感谢。我现在明白了。系统处于早期阶段,安全模块将在稍后实施。 – Rapide

+0

好的,那很好,你让我害怕了一会儿!每个人都从某个地方开始,所以不要看不起自己或你的努力!祝你好运先生/妈妈,并一如既往的享受。 –