Php 数据库中未更新密码
我创建了一个名为password\u reset的函数 我的recover_password(恢复密码)页面工作正常,发送电子邮件,并按照我的预期更新名为validation_code的字段 现在,当我收到电子邮件时,它会发送此链接 要重置密码,请访问Php 数据库中未更新密码,php,email,mysqli,Php,Email,Mysqli,我创建了一个名为password\u reset的函数 我的recover_password(恢复密码)页面工作正常,发送电子邮件,并按照我的预期更新名为validation_code的字段 现在,当我收到电子邮件时,它会发送此链接 要重置密码,请访问 http://localhost/cms/account/reset-password.php?email=myemail.net&code=313893625577 现在我有了一个名为reset password.php的页面,正如您在链接中看
http://localhost/cms/account/reset-password.php?email=myemail.net&code=313893625577
现在我有了一个名为reset password.php
的页面,正如您在链接中看到的那样
当你点击它时,它会进入页面
我的html
<?php display_message();?>
<?php password_reset();?>
<form role="form" action="reset-password.php" method="post">
<div class="form-group">
<label>Verification Code</label>
<input class="form-control" type="text" id="verification_code" name="verification_code" value="<?php echo isset($_GET['code']) ? $_GET['code'] : '';?>">
</div>
<div class="form-group">
<label>Email Address</label>
<input class="form-control" type="text" id="email" name="email" value="<?php echo isset($_GET['email']) ? $_GET['email'] : '';?>">
</div>
<div class="form-group">
<label>Password</label>
<input class="form-control" type="text" id="password" name="password" placeholder="Password">
</div>
<div class="form-group">
<label>Confirm New Password</label>
<input class="form-control" type="text" id="confirm_password" name="confirm_password" placeholder="Confirm Password">
</div>
<input type="submit" name="submit" id="btn-login" class="btn btn-custom btn-lg btn-block" value="Reset Password">
<input type="hidden" class="hide" name="token" id="token" value="<?php echo token_generator();?>">
</form>
下面是当你点击邮件中的链接时的样子
在您的函数
密码重置()
中,您正在使用检查
if(isset($\u GET['email'])和&isset($\u GET['code']){
但这永远不会是真的,因为你是用post发送表单的,所以你需要检查
if (isset($_POST['email']) && isset($_POST['code'])) {
在函数中,在函数中,
密码重置()
您正在使用检查
if(isset($\u GET['email'])和&isset($\u GET['code']){
但这永远不会是真的,因为你是用post发送表单的,所以你需要检查
if (isset($_POST['email']) && isset($_POST['code'])) {
进一步了解您的功能。谢谢您的回复,我已经尝试过了,但是得到了相同的结果。错误很明显,您正在通过post发送表单,并请求get参数。您应该使用
更改这两行。我已经对代码进行了编辑,正如您所建议的,表单似乎运行正常,但没有更新pas刀剑或显示设置消息(“您的密码已更新”);或在函数中重定向password\u reset()
您正在检查不存在的POST变量code
。正确的名称是verification\u code
。您应该检查使用var\u dump($\u GET,$\u POST,$\u COOKIE)提交的变量
。感谢您的回复,我已经尝试过了,但是得到了相同的结果错误很明显,您正在通过post发送表单,并请求get参数。您应该使用更改这两行代码。我已经对代码进行了编辑,正如您所建议的那样,表单似乎是如何运行的。它不会更新密码或显示set_消息(“您的密码已更新”);或在函数中重定向password\u reset()
您正在检查不存在的POST变量code
。正确的名称是verification\u code
。您应该检查,哪些变量是使用var\u dump($\u GET,$\u POST,$\u COOKIE);
提交的。
if (isset($_POST['email']) && isset($_POST['code'])) {