PHP如何还检查是否活动



我的代码有问题。或者说不知道如何实施我想要拥有的东西。我想;另外,在此代码中,检查用户名是否在活动列中具有1个。如果是这样,请继续登录保护页面else返回登录页面。

<?php
session_start(); 
function validateUser(){
session_regenerate_id (); 
$_SESSION['valid'] = 1;
$_SESSION['username'] = $username;
}
$username = $_POST['username'];
$password = > $_POST['password'];
require('config.inc.php'); 
$db = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass); 
$stmt = $db->prepare("SELECT password_hash FROM users WHERE username =:username");
$stmt->bindParam(':username', $username, PDO::PARAM_STR,32);
$stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC);
$db=null;
$dbhash = $result['password_hash'];
if ($dbhash == crypt($password, $dbhash)){
validateUser();    
header('Location: ../main.php');
}else{
header('Location: ../index.php?invalidcreds=1');
die();
}
?>

那么你们的想法?我已经尝试了一切,但无法正常工作。

我也想拥有一个管理栏号/0或YES/1,以便我可以保护页面中的某些链接或文本。但首先是第一件事。

您可以在DB中添加is_active列,然后使用:

SELECT is_active, password_hash FROM users where username=:username

在您的PHP中只使用:

if($result['is_active'])
{
    //Send to restricted login
}
else
{
    //Send to normal login
}

另外,就像我在评论中所说的那样,当您初始化密码变量时,您会有一个流浪的>。这可能是您的代码不起作用的原因。

好吧,这是代码,它可以完美。>只是错字对不起。感谢BUN的超级简单代码。

这看起来还可以吗?或只是完全错误。我有点不确定是否代码,或者这是要走的路!?

<?php
session_start();
function validateUser(){
    session_regenerate_id (); //this is a security measure
    $_SESSION['valid'] = 1;
    $_SESSION['username'] = $username;
}
$username = $_POST['username'];
$password = $_POST['password'];
require('config.inc.php');
$db = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
$stmt = $db->prepare("SELECT active, password_hash FROM users WHERE username = :username");
$stmt->bindParam(':username', $username, PDO::PARAM_STR, 32);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$db =null;
if($result['active']){
    $dbhash = $result['password_hash'];
if ($dbhash == crypt($password, $dbhash))
    validateUser();
    header('Location: ../main.php');
}
else{
    header('Location: ../index.php?invalidcreds=1');
    die();
}
?>

,但是现在,如果我也想做一个管理列并尝试在此处实施它,我该怎么做?我知道还需要在其他地方添加更多代码。没什么漂亮或先进的。这只是一个简单的登录。我应该将目光投向私人/公共课程的任何建议(我已经尝试过,但我在代码中迷失了)

最新更新