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)中尝试了此查询?