本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

PHP 无法传递干净 URL 上的问号

发布于2024-11-04 23:23     阅读(500)     评论(0)     点赞(5)     收藏(4)


我需要一些关于代码的帮助,因为我在 if 语句中遇到了 get pass 问题。我正在使用干净的 URL 来创建一个函数,就像create_newsletter.php?template=new我在同一页面上时一样。

当我尝试这个时:

if(isset($_POST['submit']))
{

    sleep(2)
    header("Location: http://example.com/newsletters/create_newsletter.php?template=new");

    if(isset($_GET['template'])
    {
        echo "hello robert now you are working on the template";
    }
}

这行代码不会通过:

if(isset($_GET['template'])

完整代码如下:

<?php

$template = "";

if(isset($_GET['template']))
{
    $template = $_GET['template'];
}


if(isset($_POST['submit']))
{
    sleep(2)
    $messagename = $_POST['messagename'];
    $subject = $_POST['subject'];
    header("Location: http://example.com/newsletters/create_newsletter.php?template=new");

    if(isset($_GET['template'])
    {
        echo "hello robert now you are working on the template";
    }
}
?>

<form method="post">
    <input type="text" name="messagename" value="">
    <input type="text" name="subject" value="">

    <input type="submit" name="submit" name="submit" class="btn btn-primary" value="Next Step">
</form>

我不知道在使用时如何才能通过 if 语句header("Location:)。我也尝试过if ($template),但没有通过。

我想要做的是连接到我的 php 页面create_newsletter.php。我想在调用的文本框中输入我的全名messagename,并在文本框中输入主题,subject然后单击按钮。当我单击按钮时,我想重定向到,create_newsletter.php?template=new因为我想禁用两个文本框控件messagenamesubject然后添加 iframe 以允许我访问另一个 php 页面,这样我就可以在屏幕中间编写新闻稿。

您能否给我举个例子,说明当我单击提交按钮将我重定向到哪个位置时,可以使用哪种最佳方式传递 if 语句,create_newsletter.php?template=new以便我可以禁用这些控件并添加 iframe?

谢谢。


解决方案


您正在检查条件if(isset($_GET['template'])内部if(isset($_POST['submit'])),但重定向不会发送发布请求。

这应该有效:

if(isset($_POST['submit']))
{
    sleep(2)
    $messagename = $_POST['messagename'];
    $subject = $_POST['subject'];
    header("Location: http://example.com/newsletters/create_newsletter.php?template=new");

}

if(isset($_GET['template'])
{
    echo "hello robert now you are working on the template";
}

但是如果您需要在重定向中发出 POST 请求,则需要打印<form>并在客户端提交,或者在下面的示例中使用 $_SESSION:

session_start();
if(isset($_POST['submit']))
{
    sleep(2)
    $_SESSION['messagename'] = $_POST['messagename'];
    $_SESSION['subject'] = $_POST['subject'];
    header("Location: http://example.com/newsletters/create_newsletter.php?template=new");

}

if(isset($_GET['template'])
{
    // $_SESSION['messagename'] and $_SESSION['subject'] are available here
    echo "hello robert now you are working on the template";
}



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/535601/c421821617b68f52f1cc/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)