Php 登录表单:user的值始终等于0,而不是键入的字符串
我有一个带有两个字段的登录表单:用户和密码。由于某些原因,Php 登录表单:user的值始终等于0,而不是键入的字符串,php,html,Php,Html,我有一个带有两个字段的登录表单:用户和密码。由于某些原因,user的值始终等于0,而pass的值被正确传递。我可以使用echo:User:Pass: 我正在修改代码,但不明白为什么会发生这种情况。为什么未正确捕获用户 <?php @session_start(); $error = 0; if (isset($_POST["user"]) && isset($_POST["pass"])) { include_once 'inclu
user
的值始终等于0
,而pass
的值被正确传递。我可以使用echo:User:Pass:
我正在修改代码,但不明白为什么会发生这种情况。为什么未正确捕获用户
<?php
@session_start();
$error = 0;
if (isset($_POST["user"]) && isset($_POST["pass"])) {
include_once 'include/User.php';
$user = $_POST['user'];
$pass = $_POST['pass'];
$error = 0;
$user = User::checkLogin($user, $pass);
if(!is_object($user) && $user == 0){
$error = 1;
if(session_status() === PHP_SESSION_ACTIVE) {
session_unset();
session_destroy();
}
}
if($error == 0){
$_SESSION['loged'] = 1;
$login = TRUE;
$_SESSION['userid'] = $user->id;
$_SESSION['username'] = $user->name." ".$user->surename;
header("Location: index.php?pagina=1");
}
else{
$error = 1;
if(session_status() === PHP_SESSION_ACTIVE) {
session_unset();
session_destroy();
}
}
}
?>
<div class="form_login">
<form action="index.php?pagina=0" method="POST">
<div class="form_login_line">
<div class="form_login_txt">
Username:
</div>
<div class="form_login_input">
<input type="text" name="user" id="user" size="10" value="user"/>
</div>
</div>
<div class="form_login_line">
<div class="form_login_txt">
Password:
</div>
<div class="form_login_input">
<input type="password" name="pass" id="pass" size="10" value="pass"/>
</div>
</div>
<div class="form_login_line">
<div class="form_login_submit">
<input id="input_login_error" type="button" value="Login" onclick="submitForm()"/>
</div>
</div>
</form>
<div id="login_error">The username or password are incorrect or don't have access permissions.<h1>User:<?php echo $user ?>Pass:<?php echo $pass ?></h1></div>
</div>
<?php if($error == 1): ?>
<script>$("#login_error").show();</script>
<?php endif;?>
<script>
page_name("Login");
function submitForm(){
//$("#pass").val(sha1($("#pass").val()));
$('form').prepend('<input type="submit" id="submit5548" style="display: none"/>');
$("#submit5548").click();
}
</script>
用户名:
密码:
用户名或密码不正确或没有访问权限。用户:密码:
$(“#登录错误”).show();
页面名称(“登录”);
函数submitForm(){
//$(“#通过”).val(sha1($(“#通过”).val());
$('form')。前缀(“”);
$(“#提交5548”)。单击();
}
这是因为您使用user::checkLogin覆盖$user
$user = $_POST['user'];
$pass = $_POST['pass'];
$error = 0;
$user = User::checkLogin($user, $pass);
我的建议是使用IDE,他们会通知你这些东西。例如,我在PHP开发中使用Netbeans,它总是通知我变量的“意外赋值”,在这里它会向您声明相同的情况。这是因为您使用user::checkLogin覆盖$user
$user = $_POST['user'];
$pass = $_POST['pass'];
$error = 0;
$user = User::checkLogin($user, $pass);
我的建议是使用IDE,他们会通知你这些东西。例如,我使用Netbeans进行PHP开发,它总是通知我变量的“意外赋值”,在这里,它也会向您说明同样的情况。当您在同一页面上提交表单时,为什么要使用js提交表单?
$user->surename
在我看来像是一个打字错误,应该读作$user->username
,我可能是错的。为什么你在同一页上提交表单时使用js提交表单?$user->surename
在我看来像是一个打字错误,应该读作$user->username
,但我可能是错的。是的,我也在看这个。我只是不确定他们的$user->surename
;似乎是一个可能的输入错误。是的,可能是一个输入错误,然后他的类可能实际上有这个参数(他似乎不是英语母语,所以他可能有错误)。surename
的字母也可以拼出用户名
-它们都包含相同的字母,一旦重新排列;-)我在他们的问题下就那个可能的打字错误发表了评论。可能确实是对的。然后,如果方法/变量不可访问,是否应该弹出错误?编辑:如果您没有设置错误报告(E_ALL),则可能不会。仅当他们正在检查错误时。我只是想确定,就像我说的,理论上人们会认为/写/使用“用户名”这个词来表示“用户名”;-)但正如我在他们问题下留下的评论中所说,我可能错了;我只是想确保他们没有打字错误。有时候我们的手指比我们的大脑工作得快。是的,我也在看这个。我只是不确定他们的$user->surename
;似乎是一个可能的输入错误。是的,可能是一个输入错误,然后他的类可能实际上有这个参数(他似乎不是英语母语,所以他可能有错误)。surename
的字母也可以拼出用户名
-它们都包含相同的字母,一旦重新排列;-)我在他们的问题下就那个可能的打字错误发表了评论。可能确实是对的。然后,如果方法/变量不可访问,是否应该弹出错误?编辑:如果您没有设置错误报告(E_ALL),则可能不会。仅当他们正在检查错误时。我只是想确定,就像我说的,理论上人们会认为/写/使用“用户名”这个词来表示“用户名”;-)但正如我在他们问题下留下的评论中所说,我可能错了;我只是想确保他们没有打字错误。有时我们的手指比我们的大脑工作得快。