我的登錄頁面在用於密碼的列類型爲TEXT時用於正常工作。 我已經更新了表內容,並用於密碼上的sql密碼功能,但現在格式爲varchar,頁面將不會進行身份驗證。下面當sql列類型從TEXT更改爲varchar時,無法登錄到php頁面
是有問題的代碼:
<main>
<?php
if(isset($_POST['submit'])){
include 'databaselogin.php';
$username = ucfirst(strtolower($_POST['username']));
$username = mysqli_real_escape_string($mysqli, $username);
$password = $_POST['password'];
$sql = "SELECT *
FROM teams
WHERE name = '$username'";
$result = $mysqli->query($sql) or die($mysqli->error.__LINE__);
if($result->num_rows == 1){
$row = $result->fetch_assoc();
$hash = $row["password"];
if(password_verify($password,$hash)){
session_start();
$_SESSION["username"] = $row["name"];
header("Location: http://www.josephade.com/fyp/dashboard.php");
die();
}
}else{
//Show error incorrect password
include 'error.php';
}
mysqli_close($mysqli);
}
?>
更改它時,列中的散列值是否發生了變化? TEXT的長度和VARCHAR一樣長,足夠長嗎? –
確保列內容未被截斷 –
@ Fred-ii-文本沒有長度,但我確定使用的VARCHAR長度足夠長。 –