>我有一个相当基本的登录页面。我正在开发一个原型,同时学习PHP的来龙去脉。
在我的MySql数据库中,它看起来像这样:用户ID,用户名,密码,人才,客户。人才和客户都是二元的,只有一个可以是真的。
所以我要做的是,如果人才= 1,就把它们发送到index.php,如果客户= 1,就把它们送到招聘人员.php。
我 90% 确定我已经掌握了基础知识,但由于我添加了额外的 if 来检查人才和客户,它破坏了我的脚本:)
最后,我需要在每个页面上进行此检查,以确保客户不会访问人才页面,反之亦然。
我走在正确的轨道上吗?
我当前的脚本是这样做的:
<?php
include("resource/config.php");
if($_SERVER["REQUEST_METHOD"] == "POST")
{
// username and password sent from Form
$myusername=addslashes($_POST['username']);
$mypassword=addslashes($_POST['password']);
$sql="SELECT UserID, talent, customer FROM useradmin WHERE username='$myusername' and passcode='$mypassword'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$active=$row['active'];
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if ($row['talent']==1) {
if ($count==1) {
$_SESSION['login_user']=$myusername;
header("location: index.php");
}
else {
$error="Your Email or Password is invalid";
}
}
elseif ($row['customer']==1) {
if ($count==1) {
$_SESSION['login_user']=$myusername;
header("location: recruiter.php");
}
else {
$error="Your Email or Password is invalid";
}
}
else {
$error="Your Login Name or Password is invalid";
}
}
?>
此外,在每个页面的顶部,我都有这个,以确保只有登录用户才能访问它。
<?php
session_start();
include('config.php');
$user_check=$_SESSION['login_user'];
$ses_sql=mysql_query("select username from useradmin where username='$user_check' ");
$row=mysql_fetch_array($ses_sql);
$login_session=$row['username'];
if(!isset($login_session)) {
header("Location: login.php");
}
?>
你不能只做这样的比较:
if (['talent']==1)
您可能想像这样进行比较:
if ($row['talent']==1)
从本质上讲,您正在做的是将具有单个talent
元素的数组与1
进行比较。
它应该是if ($row['talent']==1)
和elseif ($row['customer']==1)