我已经编写了一个php用户登录脚本,虽然我已经设法使注册页面正常工作(从而排除了common.php文件的内容是一个问题),并在mySQL中检查了数据库正在填充,但我似乎无法使登录本身发布任何内容,而不是不成功。
我肯定是在数据库中输入用户名和密码。有人能看出我哪里出了问题,或者建议我如何检查哪里出了问题吗?
表jmp_users的结构如下:
jmp_userID / init(11) / auto_increment
jmp_username / varchar(30) / utf8_unicode_ci
jmp_password / varchar(40) / utf8_unicode_ci
salt / char(16) / utf8_unicode_ci
我的login.php页面是:
<?php
require("common.php");
$submitted_username = '';
if(!empty($_POST))
{
$query = "
SELECT
jmp_userID,
jmp_username,
jmp_password,
salt
FROM jmp_users
WHERE
jmp_username = :username
";
$query_params = array(
':username' => $_POST['jmp_username']
);
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$login_ok = false;
$row = $stmt->fetch();
if($row)
{
$check_password = hash('sha256', $_POST['jmp_password'] . $row['salt']);
for($round = 0; $round < 65536; $round++)
{
$check_password = hash('sha256', $check_password . $row['salt']);
}
if($check_password === $row['jmp_password'])
{
$login_ok = true;
}
}
if($login_ok)
{
unset($row['salt']);
unset($row['jmp_password']);
$_SESSION['user'] = $row;
header("Location: private.php");
die("Redirecting to: private.php");
}
else
{
print("Login Failed.");
$submitted_username = htmlentities($_POST['jmp_username'], ENT_QUOTES, 'UTF-8');
}
}
?>
<h1>Login</h1>
<form action="login.php" method="post">
Username:<br />
<input type="text" name="username" value="<?php echo $submitted_username; ?>" />
<br /><br />
Password:<br />
<input type="password" name="password" value="" />
<br /><br />
<input type="submit" value="Login" />
</form>
<a href="register.php">Register</a>
由于您使用SHA256(带有十六进制值,不是原始值),您需要64个字符来存储密码的哈希值(您只有40个字符)。
顺便说一句:我认为重新哈希密码65536次是不必要的,而且会浪费CPU。此外,通常所有密码都使用一个salt字符串。
我使用Volley、php、MYSQL和共享首选项创建了我的登录应用程序。登录和注册活动成功,但登录成功后页面不会转到其他活动。这是一个意图还是另一个问题?请救命! 登录activity:
我已经创建了一个登录名。html页面和登录名。php脚本。在脚本中,它将首先获得我们输入的用户名和密码,然后使用数据库检查用户名或密码是否存在,如果用户有效,则它将检查他的部门id,并使用部门权限打开他们的页面,但问题是无论他们的部门是什么,都会一直打开管理页面。请帮我做这件事。 这是我的login.html代码 登录。php脚本
问题内容: 通过ajax提交登录表单时,我只是遇到一些问题,我主要是PHP开发人员,在PHP中我并不经常使用Jquery + Ajax。 目前,如果我在提交表单后检查firebug POST数据,它的确会获取已添加到表单的用户名和密码,但是无论是否添加了错误的用户名和密码,或者是否添加了错误的页面,页面都只会重新加载它们是正确的,并且没有创建会话。 形式如下: 这是Ajax / Jquery: 这
我正在用android编程。当我使用(LoginActivity)成功登录时,下一步是加载MainActivity,这个MainActivity是一个导航抽屉活动,但我遇到了这个错误: 致命异常:主进程:com.example.administrador.vicon,PID:32149java.lang.运行时异常:无法启动活动ComponentInfo{com.example.administr
我需要用PHP和SQlite做一个登录表单。注册有效,我可以选择所有创建的用户并回显它们。当我试图检查用户名和密码(我通过$u POST获得的)是否匹配时:它回显我现在已登录。但当我输入错误的user/pw时,它会回显“invalid”-字符串,但也有以下错误: 第17行是我得到if($row['username']的地方... 这是我的代码: 这里怎么了?
本文向大家介绍php+MySQL实现登录时验证登录名和密码是否正确,包括了php+MySQL实现登录时验证登录名和密码是否正确的使用技巧和注意事项,需要的朋友参考一下 直入主题,先看php校验登录名和密码是否正确的代码: 效果图: 以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。