- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个注册页面,在将数据插入数据库之前,我需要检查它是否已经存在,但我生成的 SQL 请求末尾缺少一个 '。
SELECT * from users where firstname = 'Bob' and lastname = 'Smith' and
username = 'bobsmith' and email = 'bob@test.co.uk' and password = 'testing1
密码后不显示'。
这是我的 PHP 代码:
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$query1 = "SELECT * from users where firstname = '" .
$firstname .
"' and lastname = '" .
$lastname .
"' and username = '" .
$username .
"' and email = '" .
$email .
"' and password = '" . $password;
echo "<BR>Running query ... <BR>" . $query1;
$result1 = mysqli_query($cxn,$query1);
$numrows1 = mysqli_affected_rows($cxn);
我尝试在密码末尾添加引号,例如 。 $密码。 '";
但是,这会使下面的其余代码变灰,因此它无法工作。我该如何解决这个问题?
更新:我知道这不是最安全的方法,但它适用于大学作业,这就是我们应该这样做的方法。
最佳答案
这是使用 MySQLi 准备好的语句执行查询的一种方法:
$username = $_POST['username'];
$password = $_POST['password'];
$cxn= mysqli_connect($host, $user, $password, $database);
/* check connection */
if (!$cxn) {
echo mysqli_connect_error();
exit();
}
/* prepare the query */
$stmt = mysqli_prepare($cxn, "SELECT * FROM users WHERE username = ?"); // assuming username is unique
$stmt->bind_param('s', $username);
/* execute prepared statement */
$result = $stmt->execute();
$stmt->store_result();
/* get the user info */
$user = $result->fetch_assoc();
如果您使用PHP 的 built-in functions 为了处理密码安全性,您可以使用password_verify($password, $user['stored_hash'])
将存储的密码与$password
进行比较。 确保正确设置散列密码的数据库。
如果您使用的 PHP 版本低于 5.5,您可以使用 password_hash()
compatibility pack 。
没有必要escape passwords 或在散列之前对它们使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。
关于php - 选择查询检查表单数据是否已存在于数据库 MySQL/PHP 中的小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062550/
我一直在开发一个 .NET 字符串格式化库来协助应用程序的本地化。它称为 SmartFormat 并在 GitHub 上开源. 它试图解决的问题之一是 Grammatical Numbers .这也称
leetcode关于单数II的题目是: 给定一个整数数组,除一个元素外,每个元素出现三次。找到那一个。笔记:您的算法应该具有线性运行时复杂度。你能在不使用额外内存的情况下实现它吗? 其实我已经从网站上
我想知道创建/命名模型的首选方法是什么? 我的应用程序有一个“用户”模型,其中包含用于创建、获取、更新(等)用户记录的所有相关业务逻辑。 在我的一些 Controller 中,我可能想要获取多个“用户
在我的 Mysql 数据库中,我有一个术语列表,例如(首字母大写,大多数时候是复数) Hairdressers Restaurants Beauty Salons Fournitures For Re
如果我决定为我的所有路线名称使用复数形式,但某些资源仅作为一个东西存在,您是否将其保持为单数(更直观)或尊重使用复数的决定并保持这种方式? 我们正在用 PHP 为我们的客户门户网站设计一个新的 API
我可能在做一些愚蠢的事情,但是...... 应用/模型/user.rb: class User 然后,当我导航到 /users/123/totem/new 时,出现错误: ActionView::
您能否澄清一些 Matplotlib 术语: “subplots”(或“subplot”?)这个词是“axes”的同义词吗? “轴”和“轴”的单数/复数是什么? 最佳答案 这确实是一个令人困惑的问题。
我有一个 profile我的应用程序中的模型。我想允许用户通过 /profile 查看他们自己的个人资料,所以我创建了这条路线: resource :profile, :only => :show 我
我是一名优秀的程序员,十分优秀!