php - 密码恢复失败后的成功消息

标签 php mysql

我有一个问题

当我按下提交按钮时,它应该显示在changepassword.php?成功消息中,表明更改成功,但它显示“HTTP错误404.0 - 未找到”

这是我的代码:

    <?php 
    include 'php_script/init.php';

    if (empty($_POST) === false){
        $required_fields = array('current_password', 'password', 'password_again');
        foreach($_POST as $key=>$value){
            if (empty($value) && in_array($key, $required_fields) === true){
                $errors[] = 'Trebate ispuniti sva polja';
                break 1;
            }
        }

        if (md5($_POST['current_password']) === $user_data['password']){
            if (trim($_POST['password']) != trim($_POST['password_again'])){
                $errors[] = 'Lozinke se ne poklapaju';
            }else if (strlen($_POST['password']) < 6){
                $errors[] ='Vaša nova lozinka mora sadržavati barem 6 znakova';
            }
        } else{
            $errors[] = 'Vaša trenutna lozinka je netočna';
        }
    }
    ?>




<?php
            if (isset($_GET['success']) && empty($_GET['success'])){
                echo 'Vaša lozinka je promijenjena';
            }else{

                if (empty($_POST) === false && empty($errors) === true){
                    change_password($session_user_id, $_POST['password']);
                    header('Location: changepassword.php?success');
                }else if (empty($errors) === false){
                    echo output_errors($errors);
                }}
            ?>

            <form action="" method="post">
                <ul>
                    <li>Trenutna lozinka:<br><input type="password" name="current_password"/></li>
                    <li>Nova lozinka:<br><input type="password" name="password"/></li>
                    <li>Ponoviti lozinku:<br><input type="password" name="password_again"/></li>
                    <li><input type="submit" value="Promijeni"/></li>
                </ul>
            </form>

谢谢

最佳答案

您提交表单,检查所有信息是否有错误,然后您想要再次重新加载页面以显示错误或“已成功更改”消息。

最后一次重新加载是不必要的。

更改此:

<?php
            if (isset($_GET['success']) && empty($_GET['success'])){
                echo 'Vaša lozinka je promijenjena';
            }else{

                if (empty($_POST) === false && empty($errors) === true){
                    change_password($session_user_id, $_POST['password']);
                    header('Location: changepassword.php?success');
                }else if (empty($errors) === false){
                    echo output_errors($errors);
                }}
            ?>

<?php
                if ( ! empty($_POST) && empty($errors) ){
                   // not empty $_POST means we did some validation
                   // empty $errors, no errors were found while validating
                    change_password($session_user_id, $_POST['password']);
                    echo 'Vaša lozinka je promijenjena';
                }
                if ( ! empty($_POST) && ! empty($errors) ){
                    // not empty $_POST means we did some validation
                    // errrors were found let's display them
                    echo output_errors($errors);
                }
            ?>

关于php - 密码恢复失败后的成功消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28515170/

相关文章:

javascript - 在同一页面上使用ajax将js变量传递给php

php - 从一张表中抓取Mysql数据并为具有特定ID的特定用户显示它

php - 更多关于 PHP OOP - 类中的类

php - 过期重置密码电子邮件 key

c# - 使用数据集的问题

php - 在 WooCommerce 结账时在 "Place Order"按钮下添加文本

mysql - MySql 5.6.26 中 Sequel Pro 或其他非套接字连接被拒绝

mysql - mysql 查询出现异常错误 "delete"

mysql - 每第二次命中获得 "Access denied for user..."

mysql - 为什么这个触发器使更新如此缓慢?