【问题标题】:php redirecting to a page with alert dialogphp重定向到带有警报对话框的页面
【发布时间】:2016-11-26 05:47:05
【问题描述】:

如果注册成功,我需要显示来自 php 的警告对话框。以及我想重定向到另一个页面。我的 php 代码在这里:

 if($conn->query($sql)===TRUE){
            echo "<script>alert('Registration Successfull');</script>";
            header('Location: index.php');
            exit();
    }

但我收到一条警告消息:

警告:无法修改标头信息 - 标头已由 (输出开始于 /home/bdacademichelp/public_html/medcino.com/signup_back.php:19)在 /home/bdacademichelp/public_html/medcino.com/signup_back.php 上线 20

第 19 行是显示警报消息的回显行

【问题讨论】:

    标签: javascript php


    【解决方案1】:

    您可以在警报中打印消息并重定向如下:

    echo "<script>alert('Success');document.location='index.php'</script>";
    

    在您的代码中,您已经以 echo 的形式发送了一些内容,因此之后您不能使用标头。

    【讨论】:

    • 如果有用,请给出真实的。
    【解决方案2】:

    使用 javascript 警报会延迟重定向,直到用户单击“确定”。您可能想要做的是在订阅成功后在 index.php 中显示警报。传递此信息有几种不同的方式,但最常见的方式是在会话中传递成功消息。

    // page1.php

    <?php
    
    
    session_start();
    if($conn->query($sql)===TRUE){
                $_SESSION['message'] = "Registration successful";
                header('Location: index.php');
                exit();
    }
    
    session_write_close ();
    ?>
    

    // index.php

    <?php
    
    session_start();
    
    if (isset($_SESSION['message'])) {
        $show_message = $_SESSION['message'];
        $_SESSION['message'] = null;
    }
    session_write_close ();
    
    // ...
    
    if (isset($show_message)) {
    echo "<script>alert('{$show_message}');</script>";
    }
    

    其他替代方法是在 URL 中传递数据,例如 index.php?message=Registration%20Successful 或在 cookie 中传递消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 2021-11-10
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多