我的登錄頁面有問題。我正在將我的密碼從字符串轉換為varbinary(max),我現在的問題是如何比較或驗證我輸入的用于登錄的字符串是否等于表中存儲的數據。例子。我的密碼轉換前的值為12345。通過 轉換后CONVERT(varbinary(max),'12345'),數據現在反映為0x3132333435。如果轉換為 varbinary(max) 0x3132333435,我將如何驗證我在輸入框中輸入的密碼 (12345) 是否與該值相似?我使用 SQL SERVER 2012、XAMPP 和 SQLSRV 進行連接。非常感謝你提前。這是我的login.php<?php session_start(); include 'includes/conn.php'; if (isset($_POST['login'])) { $username = $_POST['username']; $password = $_POST['password']; $sql = "SELECT username,cast(password as varchar(max)) as password FROM usermasterfile WHERE username ='$username'"; include 'query/sqlsrv_query-global.php'; if (sqlsrv_num_rows($query) < 1) { $_SESSION['error'] = 'Cannot find account with the username'; } else { $row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC); if ($password == $row['password']) { $_SESSION['employeeidno'] = $row['employeeidno']; } else{ $_SESSION['error'] = 'Incorrect password'; } } } else{ $_SESSION['error'] = 'Input credentials first'; } header('location: index.php');?>編輯:修復它!SELECT *,cast(password as varchar(max)) as maxpassword FROM usermasterfile WHERE username ='$username'";````
1 回答

皈依舞
TA貢獻1851條經驗 獲得超3個贊
您可以將 varbinary 轉換回 varchar 值作為
SELECT cast(0x3132333435 as varchar(max)) as varchar_value
varchar_value
-------------
12345
因此,請在代碼的比較部分使用上述轉換。
- 1 回答
- 0 關注
- 172 瀏覽
添加回答
舉報
0/150
提交
取消