Php 确认帐户不工作
因此,我试图创建一个帐户的确认,但它完全不工作 这是登录页面,它应该检查帐户何时被激活,但即使该值在数据库中被确认,它也总是显示它未被激活,因此它总是显示未激活的消息Php 确认帐户不工作,php,mysql,mysqli,Php,Mysql,Mysqli,因此,我试图创建一个帐户的确认,但它完全不工作 这是登录页面,它应该检查帐户何时被激活,但即使该值在数据库中被确认,它也总是显示它未被激活,因此它总是显示未激活的消息 if(isset($_POST['login_button'])) { $userName = $_POST['username']; $userPass = $_POST['password']; $hashedPass = hash('whirlpool', $userPass); $query = "SELECT Im
if(isset($_POST['login_button']))
{
$userName = $_POST['username'];
$userPass = $_POST['password'];
$hashedPass = hash('whirlpool', $userPass);
$query = "SELECT Ime FROM Igraci WHERE Ime = '$userName' AND Lozinka = '$hashedPass'";
$stmt = mysqli_prepare($con, $query) or die(mysqli_error($con));
mysqli_stmt_bind_param($stmt, "ss", $userName, $hashedPass);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_array($result);
while($conf = mysqli_fetch_assoc(query))
{
$aktiviran = $conf['Confirmed'];
}
if($row)
{
if($aktiviran == 1)
{
$session = md5($userName.$hashedPass);
mysqli_query($con, "UPDATE Igraci SET session = '$session' WHERE Ime = '$userName' AND Lozinka = '$hashedPass'");
setcookie("username", $_POST['username'], time()+3600*24);
setcookie("authorization","ok");
header( "Location:welcome.php");
exit();
}
else
{
echo '
<div class="transbox" position = "center">
<center><p>Ovaj racun nije aktiviran, molimo da ga aktivirate.</p>
<p>Ukoliko niste primili email proverite junk folder ili ponovo zatrazite aktivaciju racuna.</p>
</center>
</div>
';
}
}
if(设置($\u POST['login\u button']))
{
$userName=$_POST['userName'];
$userPass=$\u POST['password'];
$hashedPass=hash('whirlpool',$userPass);
$query=“从Igraci中选择Ime,其中Ime='$userName'和Lozinka='$hashedPass';
$stmt=mysqli_prepare($con,$query)或die(mysqli_error($con));
mysqli_stmt_bind_param($stmt,“ss”,$userName,$hashedPass);
mysqli_stmt_execute($stmt);
$result=mysqli\u stmt\u get\u result($stmt);
$row=mysqli\u fetch\u数组($result);
而($conf=mysqli\u fetch\u assoc(查询))
{
$aktiviran=$conf['confirm'];
}
如果($行)
{
如果($aktiviran==1)
{
$session=md5($userName.$hashedPass);
mysqli_查询($con,“更新Igraci集会话=“$session”,其中Ime=“$userName”和Lozinka=“$hashedPass”);
setcookie(“用户名”$\u POST['username'],time()+3600*24);
setcookie(“授权”、“确定”);
标题(“位置:welcome.php”);
退出();
}
其他的
{
回声'
Ovaj racun nije aktiviran,molimo da ga aktivirate
Ukoliko niste primili电子邮件垃圾邮件文件夹ili ponovo zatrazite aktivaciju racuna
';
}
}
试着这样做:
if($row) {
if($row[number of the column 'Confirmed']==1) {
// do the stuff
} else {
// do the other stuff
}
}
这样,您就不需要while()和fetch_assoc()(返回null)使用var_dump($aktiviran)可以得到什么;在if之前?我得到null,这意味着什么?我认为问题在于从数据库中获取$aktiviran,当我将其设置为$aktiviran==0时,它可以。我真的不理解列的这个部分编号我应该放在那里什么?实际上,您可以使用行名称和行号:
$row[“confirm”]==1
。尝试执行变量转储($row)
并验证字段的计数
和num\u行
。我做了var\u转储,返回空值,只是重新查看问题,它至少应该返回“Ime”:从Igraci选择Ime,其中Ime='$userName'和Lozinka='$hashedPass'
。出现“确认”问题是因为您没有选择它,只有“Ime”行。But您也没有从该行获得任何返回。您是否直接在数据库(命令行或PHPMyAdmin)中尝试了此查询?