2016-02-12 80 views
0

所以即時嘗試創建一個賬戶確認,但它不工作。賬戶確認無法正常工作

這是登錄頁面,它應該檢查帳戶何時被激活,但即使在數據庫中確認該值總是顯示它未被激活,因此它總是顯示未激活的消息。

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> 
     '; 

    } 
} 
+0

你用的var_dump得到什麼( $ aktiviran);在if之前? – Tdelang

+0

我得到null,這是什麼意思? 我認爲問題是從數據庫中獲取$ aktiviran,當我把它設置爲像$ aktiviran == 0它確定 – Nathaniel

回答

0

嘗試這樣的:

if($row) { 
    if($row[number of the column 'Confirmed']==1) { 
     // do the stuff 
    } else { 
     // do the other stuff 
    } 
} 

這樣你就不需要同時()和FETCH_ASSOC()(即返回null)

+0

我真的不明白這部分 列的數字我應該放在那裏? – Nathaniel

+0

實際上,你可以使用行名和行號:'$ row [「Confirmed」] == 1'。 –

+0

不行,再次行不通 – Nathaniel