php在一个页面上处理多个表单处理
我已经经历过类似的问题,我想我已经实现了所有的想法。 我在登录页面两种形式,一种为管理员登录名和一个员工登录php在一个页面上处理多个表单处理
第一张表单按钮名称=“登陆”
第二种形式有一个按钮名为“Login2身份”
管理员登录正常工作。这是它的代码
if (isset($_POST['login']))
{ $username = mysqli_real_escape_string($con,$_POST['username']);
$pwd = md5($_POST['password']);
if (isset($username) == true && isset($pwd) == true){
$login = login($username, $pwd);
var_dump($login);
if($login != null) {
$_SESSION ['user_id'] = $login ['buss_id'];
$_SESSION ['usernameholder'] = $login ['username'];
ob_start();
if ($login['level'] =='1')
{?>
<script>
window.location.href = "sadmin/index.php";
</script> <?php }
else if($login['level'] =='2') { ?>
<script>
window.location.href = "user_admin/index.php";
</script>
<?php } else if($login['level'] =='3') { ?>
<script>
window.location.href = "reps/index.php";
</script>
<?php
} /* end of login levels. */
} /* /if $login !=null */
} /* /if $login = login */
} /*/if isset el $_POST */
和功能登录本
function login($username, $password)
{ $db_host="localhost";
$db_username="root";
$db_password="";
$db_name="dbname";
$con=mysqli_connect($db_host, $db_username,$db_password, $db_name);
$qry = "SELECT * FROM `businesses` WHERE `username` = '$username' AND `password` = '$password' AND `active` = 1 LIMIT 1";
$sql = mysqli_query($con,$qry);
while($row = mysqli_fetch_array($sql))
{
return $row;
} }
我所做的是简单地复制粘贴登录码和作出这样$ USERNAME2
$名称pwd2等...
并将功能中的查询更改为此
$qry2 = "SELECT * FROM `employees` WHERE `username` = '$username2' AND `password` = '$password2' AND `active` = 1 LIMIT 1";
正如你可能已经注意到我做了var_dump($ login),所以我做了var_dump($ login2)并且一直返回一个NULL值。我的代码有什么问题?
我要添加对任何人想看看它
if (isset($_POST['login2']))
{ $username2 = mysqli_real_escape_string($con,$_POST['username2']);
$pwd2 = md5($_POST['password2']);
if (isset($username2) == true && isset($pwd2) == true){
$login2 = login_employee($username2, $pwd2);
var_dump($login2);
if($login2 != null) {
$_SESSION ['works_for'] = $login2 ['buss_id_fk'];
$_SESSION ['emp_id'] = $login2 ['emp_id'];
$_SESSION ['user_name'] = $login2 ['username'];
ob_start();
if ($login_employee['level'] =='1')
{?>
<script>
window.location.href = "sadmin/index.php";
</script> <?php }
else if($login_employee['level'] =='2') { ?>
<script>
window.location.href = "user_admin/index.php";
</script>
<?php } else if($login_employee['level'] =='3') { ?>
<script>
window.location.href = "reps/index.php";
</script>
<?php
} /* end of login levels. */
} /* /if $login !=null */
} /* /if $login = login */
} /*/if isset el $_POST */
的Login2身份代码,这是功能login_employee码
function login_employee($username2, $password2)
{ $db_host="localhost";
$db_username="root";
$db_password="";
$db_name="leadapp";
$con=mysqli_connect($db_host, $db_username,$db_password, $db_name);
$qry2 = "SELECT * FROM `employees` WHERE `username` = '$username2' AND `password` = '$password2' AND `active` = 1 LIMIT 1";
$sql2 = mysqli_query($con,$qry2);
while($row2 = mysqli_fetch_array($sql2))
{
return $row2;
} }
?>
让我们login_employee功能的一些debag
function login_employee($username2, $password2)
{ $db_host="localhost";
$db_username="root";
$db_password="";
$db_name="leadapp";
$con=mysqli_connect($db_host, $db_username,$db_password, $db_name);
var_dump($username2); var_dump($password2);
$qry2 = "SELECT * FROM `employees` WHERE `username` = '$username2' AND `password` = '$password2' AND `active` = 1 LIMIT 1";
$sql2 = mysqli_query($con,$qry2);
var_dump(mysqli_fetch_array($sql2));
while($row2 = mysqli_fetch_array($sql2))
{
return $row2;
} }
?>
所以前两个变种转储你的名字和密码,办理入住手续后,如果该值真的分贝员工
如果后续代码var_dump(mysqli_fetch_array( $ SQL2));不要返回你的数据库行 - 这意味着你有空,因为在数据库中没有匹配行
这就是让我疯狂的东西,它返回NULL。该表存在,就像持有管理员的表一样。它是相同的代码,相同的数据库,只有不同的表,并且这两个表确实存在。 管理员在表业务。 https://gyazo.com/ebe0c65d4b8b77304d39d61b6460e456 – Mar1ak
var_dump($ qry2)在这里粘贴pls和phpmyadmin中的查询结果副本 – bxN5
好吧,现在我们正在某个地方,这就是我所得到的。 string(126)“SELECT * FROM'employees' WHERE'username' ='tr'AND'password' ='c4ca4238a0b923820dcc509a6f75849b'AND'active' = 1 LIMIT 1” 它选择正确的哈希密码,但在最后,任何想法为什么? – Mar1ak
你重命名函数登录($用户名,$密码)...? – bxN5
是的,我做了login_employee($ username2,$ password2) – Mar1ak
难以猜测,更好的显示非工作代码 – bxN5