首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向功能在提交两次表单后不能正常工作

问重定向功能在提交两次表单后不能正常工作
EN

Stack Overflow用户
提问于 2017-12-07 04:24:52
回答 2查看 133关注 0票数 1

我做了一个表单验证,其中服务器检查提交的数据。如果数据通过验证,然后重定向到上一页,否则会弹出一个模式框,告诉用户用户名/密码错误。

问题是,在用户重新提交表单后,redierct函数就不能工作了。它只在用户第一次成功地输入这些字段时才能工作。有人能帮我吗?

html代码:

代码语言:javascript
复制
<div id="formInfo">
    <form method="post" action="<?PHP echo $_SERVER['PHP_SELF'];?>">
        <span class="title">Sign in to urmajesty.net</span><br><br>

        <div id="input_container">
            <input type="text" name="username" placeholder="username"><img src="Images/icons/user.png" id="input_img"><br><br>
        </div>

        <div id="psw_container">
             <input type="password" name="psw" placeholder="password"><img src="Images/icons/key.png" id="key_img"><br><br>
        </div>

        <div id="checkbox">
            <input type="checkbox" name="RememberUsername" value="Yes"><span class="checkboxtxt">Remember my username</span>
        </div><br><br>

        <div id="Forget">
            <a href="#"><span class="forget1">Forget Password</span></a><a href="#"><span class="forget2">Forget Username</span></a>
        </div>

        <input type="submit" class="button" value="SIGN IN"><br><br>

        <div id="hispan"><p class="hip"><span class="hi">New to urmajesty.net?</span></p></div><br>

             <input class='disable_me' name="referer" type="hidden" value="<?php echo urlencode($_SERVER['HTTP_REFERER'])?> " />
             <button type="button" class="button" id="btn">CREATE ACCOUNT</button>
    </form>
</div>

<div id='modal_box'>
    <div class='modal_content'>
         <span class='close'>&times;</span><p>username/password is wrong. Please try again!</p>
    </div>
</div>

的php代码:

代码语言:javascript
复制
if($_SERVER["REQUEST_METHOD"]=="POST"){
    $validation=Login();
    if($validation==false){
        echo"<script>
        var modal_box=document.getElementById('modal_box');
        modal_box.style.display='block';    
        modal_box.style.backgroundColor='rgba(0,0,0,0.4)';
        var close=document.getElementsByClassName('close')[0];
        close.onclick=function(){
            modal_box.style.display='none';
        }
        window.onclick=function(event){
            if(event.target==modal_box){
                modal_box.style.display='none';
            }
        }
        </script>";
    }
    else{
        if(!empty($_POST['referer']) && !is_array($_POST['referer'])){
            header("Location: ".urldecode($_POST['referer']));
            exit();
        }
    }
}
?>
EN

回答 2

Stack Overflow用户

发布于 2017-12-07 04:33:02

使用javascript重定向。

代码语言:javascript
复制
if(!empty($_POST['referer']) && !is_array($_POST['referer'])){ ?>
    //header("Location: ".urldecode($_POST['referer']));
    <script>
        window.location.href = "<?=$_POST['referer']?>";
    </script>
 <?php
    exit();
 } ?>
票数 0
EN

Stack Overflow用户

发布于 2017-12-07 04:36:05

除了使用header()重定向之外,还可以使用元刷新方法或JS window.location方法。

代码语言:javascript
复制
  <script>
     window.location = "<?=$_POST['referer']?>"
  </script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47687566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档