我的登录页面有问题。我正在将我的密码从字符串转换为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 关注
- 148 浏览
添加回答
举报
0/150
提交
取消