如何使用 PHP 从上传到本地主机的一个 html 文件重定向到磁盘上的另一个 html 文件?

Posted

技术标签:

【中文标题】如何使用 PHP 从上传到本地主机的一个 html 文件重定向到磁盘上的另一个 html 文件?【英文标题】:How to redirect from one html file uploaded to a localhost to a different html file on disk using PHP? 【发布时间】:2020-03-07 17:14:33 【问题描述】:

我目前有这个非常基本的 html 表单。

<form method="post" action="send.php" >
    <input type="text" size="30" placeholder="Search..." name="search" id="search" autocomplete="on" />
    <input type="button" id="submit" value="Search" size="80" />
</form>

现在,我希望将从 HTML 中的变量获取的参数发送到用 C++ 编写的函数。

<?php
    if(isset($_POST['search']))

        $text=$_POST['search'];

        system("PageRank_Final.exe $text");
    
?>

我已经开始工作了。我可以使用 PHP 从 HTML 执行我的 C++ 程序。现在,在程序执行后,我想重定向到a.html 文件,该文件是从我在 C++ 上的一个函数生成的。

<?php
    if(isset($_POST['search']))

        $text=$_POST['search'];

        system("PageRank_Final.exe $text");
        header("Location: Pagerank.html);
    
?>

添加 header("Location: Pagerank.html); 不会将我重定向到那个 HTML 文件。该文件保存在 xampp 安装文件夹的 htdocs 文件夹中。

我是否错误地使用了header() 函数?

如果我不够清楚,请随时提出问题。

【问题讨论】:

POST 变量以及 GET 变量,必须在将它们作为参数传递给 system() 函数之前进行清理...你永远不知道什么是恶意的用户可以放入search变量。 关于您的问题,请尝试使用这样的完整网址:header("Location: https://www.yoursite.com/Pagerank.html");。此外,请阅读此处的文档:php.net/manual/en/function.system.php 并特别阅读以下句子:“如果 PHP 作为服务器模块运行,则 system() 调用还会尝试在每行输出后自动刷新 Web 服务器的输出缓冲区。如果您需要执行一个命令并将命令中的所有数据直接传回而不受任何干扰,请使用 passthru() 函数。" 【参考方案1】:

您对页面的重定向看起来正确。我也在我的代码中使用header("Location:a.php");,它正在工作。

您可能要检查 system() 调用是否终止。如果没有,您的标头将不会被执行,因为它仍在系统调用中。

【讨论】:

以上是关于如何使用 PHP 从上传到本地主机的一个 html 文件重定向到磁盘上的另一个 html 文件?的主要内容,如果未能解决你的问题,请参考以下文章

win7下配置Apache本地虚拟主机

将本地 blob 图像 url 上传到 php

如何在 cPanel 共享主机上上传 laravel 项目?

PHP 图片上传适用于本地主机,但不适用于 GoDaddy 服务器

使用 php 将数据库从我的实时服务器导出到我的本地主机?

如何在 PHP 中将上传的文件移动到另一台主机