Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $\你不工作了吗_Php - Fatal编程技术网

Php $\你不工作了吗

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_

我使用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_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中的某个地方被更改了……但是它在将值与数据库进行匹配时起作用了