Php $\你不工作了吗
我使用id在表中创建了更新密码的更新代码。这是我使用Php $\你不工作了吗,php,Php,我使用id在表中创建了更新密码的更新代码。这是我使用$\u GET获取id的url,但它不起作用 http://www.example.com/en/resetPaSS.php?id=1&token=779d2aa48de104db46d66e29de576aac 守则: if(isset($_POST['sub'])) { $pass_hash = PassHash::hash($_POST['pass']); $sql = "UPDATE user SET password='$pass_
$\u GET
获取id的url,但它不起作用
http://www.example.com/en/resetPaSS.php?id=1&token=779d2aa48de104db46d66e29de576aac
守则:
if(isset($_POST['sub']))
{
$pass_hash = PassHash::hash($_POST['pass']);
$sql = "UPDATE user SET password='$pass_hash' WHERE id='$_GET[id]'";
$resu = mysqli_query($link,$sql);
//echo $sql;
if(!$resu)
{
$error="Unable to change Password. Try Again!";
}
else
{
echo"changed";
}
}
我也echo$sql
,它显示updateuserset password='$2a$10$bed9ad8e6cb910e0f1f12uxjldzl79f5hvriIIaizez9088rre9。'其中id='
也尝试了$\u请求
,但仍然不起作用
编辑:
我使用此url重置要发送给使用创建的用户的密码
http://www.example.com/en/resetPaSS.php?id=$id&token=$token
尝试以下操作:
$sql = "UPDATE user SET password='$pass_hash' WHERE id='" . mysqli_real_escape_string($_GET['id']) . "'";
试试这个:
$sql = "UPDATE user SET password='$pass_hash' WHERE id='" . mysqli_real_escape_string($_GET['id']) . "'";
如果您知道,该id是数字,请执行以下操作:
$id = intval($_GET['id']);
$sql = "UPDATE user SET password='$pass_hash' WHERE id='$id';";
如果您知道,该id是数字,请执行以下操作:
$id = intval($_GET['id']);
$sql = "UPDATE user SET password='$pass_hash' WHERE id='$id';";
如果使用表单,则id不在操作url中。您还可以使用隐藏的输入字段发布id 必须使用prepared语句来防止sql注入:
$sql = "UPDATE user SET password='?' WHERE id=?";
$stmt = $link->prepare($sql);
/* bind parameters */
$stmt->bind_param("si", $pass_hash, $_GET['id']);
/* execute query */
$stmt->execute();
编辑
通过单击链接,您将进入您的页面,其中有一个表单。您必须编辑表单或操作url的id,通过执行以下步骤使脚本正常工作
创建一个名为id的变量,如下所示:
$id = isset($_GET['id']) ? $_GET['id'] : $_POST['id'];
还要将隐藏字段添加到表单中:
<input type="hidden" name="id" value="<?php echo $id; ?>">
如果使用表单,则id不在操作url中。您还可以使用隐藏的输入字段发布id 必须使用prepared语句来防止sql注入:
$sql = "UPDATE user SET password='?' WHERE id=?";
$stmt = $link->prepare($sql);
/* bind parameters */
$stmt->bind_param("si", $pass_hash, $_GET['id']);
/* execute query */
$stmt->execute();
编辑
通过单击链接,您将进入您的页面,其中有一个表单。您必须编辑表单或操作url的id,通过执行以下步骤使脚本正常工作
创建一个名为id的变量,如下所示:
$id = isset($_GET['id']) ? $_GET['id'] : $_POST['id'];
还要将隐藏字段添加到表单中:
<input type="hidden" name="id" value="<?php echo $id; ?>">
一个简单的
echo$\u GET[“id”]
显示了什么?此外,您还有POST值-它们是否已设置?它们来自哪里,表单提交?:@luiges90,除非您对安全性有任何线索^ ^没有用于密码重置的url@Pekka웃如果你把这个var\u导出($\u POST);变量导出($\u GET);模具()代码>在代码开头,您是否收到了正确的参数?一个简单的echo$\u GET[“id”]
显示了什么?此外,您还有POST值-它们是否已设置?它们来自哪里,表单提交?:@luiges90,除非您对安全性有任何线索^ ^没有用于密码重置的url@Pekka웃如果你把这个var\u导出($\u POST);变量导出($\u GET);模具()代码>在代码开头,您是否收到正确的参数?否,不。使用事先准备好的陈述。不要手动创建SQL语句。这是一条很容易遵守的规则,没有理由违反它。是的,它可能在这个非常简单的情况下工作。这仍然是非常糟糕的建议。(这也不能解决OP的问题。)不,不要。使用事先准备好的陈述。不要手动创建SQL语句。这是一条很容易遵守的规则,没有理由违反它。是的,它可能在这个非常简单的情况下工作。这仍然是非常糟糕的建议。(这也不能解决OP的问题。)你如何发布数据?仅使用url无法发布数据。但我在相同的select query中使用了$\u get[id]
。然后y不适用于此更新查询,如果我echo$\u get[id]
它回显了值,但混淆了y不使用updateoh..不,不…我使用了此url重置密码。当用户单击“忘记密码”时,他会输入他的电子邮件,并且发送到他的电子邮件的url类似于http://www.example.com/en/resetPaSS.php?id=1&token=779d2aa48de104db46d66e29de576aac
当用户来到页面,代码首先检查时间是否少于24小时,id,表中的令牌退出,如果是,则表单显示给他们…然后用户提交表单进行更新..但是更新中的问题正如您所知,我知道,这就是为什么您必须将id添加到表单或操作url中,因为提交时没有id。那不可能。。。。如果是这样的话,$\u GET['id']
在代码中的某个地方被更改了。是的…但是它在将值与数据库匹配时工作..混乱如何发布数据?仅使用url无法发布数据。但我在相同的select query中使用了$\u get[id]
。然后y不适用于此更新查询,如果我echo$\u get[id]
它回显了值,但混淆了y不使用updateoh..不,不…我使用了此url重置密码。当用户单击“忘记密码”时,他会输入他的电子邮件,并且发送到他的电子邮件的url类似于http://www.example.com/en/resetPaSS.php?id=1&token=779d2aa48de104db46d66e29de576aac
当用户来到页面,代码首先检查时间是否少于24小时,id,表中的令牌退出,如果是,则表单显示给他们…然后用户提交表单进行更新..但是更新中的问题正如您所知,我知道,这就是为什么您必须将id添加到表单或操作url中,因为提交时没有id。那不可能。。。。如果是这样的话,$\u GET['id']
在code.ya中的某个地方被更改了……但是它在将值与数据库进行匹配时起作用了