【问题标题】:Pass global post between pages在页面之间传递全局帖子
【发布时间】:2018-04-03 06:56:07
【问题描述】:

考虑下面的代码,让我知道如何在 PHP 中使用全局帖子。 虽然我通过在两个地方复制代码来运行此代码,但我需要访问已经编写的代码。

我有一个文件abc.php

if (isset($_POST['test'])) {
    return 'hello test1';
} elseif(isset($_POST['test2'])){
    return 'hello test2';
} else {
    return "test3";
}

现在我有另一个文件efg.php

if (isset($_GET['hello'])) {
    //Here, I need content from abc.php 
}
/* More code... */

如何将 POST 从一个页面传递到另一个页面?

【问题讨论】:

  • 欢迎来到 Stack Overflow!提问时请更具体一点:您的实际问题是什么? / 您期望什么? / 您会遇到什么错误? 如需帮助,请查看“How to ask
  • 这是一个低质量的问题。试图清除意图。

标签: php post global-variables


【解决方案1】:
include "abc.php"; 
require "abc.php"; 
require_once "abc.php"; 

所有这些都将在 PHP 中工作,以将 abc.php 带入另一个文件!确保使用正确的路径。

也许

$file = $_SERVER['DOCUMENT_ROOT'] . "/folder/abc.php"; 
if(file_exists($file) !== false){
 require $file; 
}

取决于您如何设置!

在 abc.php 上使用 echo 而不是 return

【讨论】:

    【解决方案2】:

    你不应该在全局范围内使用return,但实际上你可以像这样得到返回值:

    if (isset($_GET['hello'])) {
        $value = include 'abc.php';
    }
    

    在官方文档中了解更多关于return的信息:http://php.net/manual/en/function.return.php

    【讨论】:

    • 只有您的回复似乎与我的查询相关。但是还有一个问题,即 abc.php 具有基于检查 $_POST 的 if 条件。因此,让我知道如何在按照您描述的方式进行检查时检查该情况。
    • 我刚刚注意到您在问题中混合了 GET 和 POST 变量,真的是这样吗(您实际上可以将 GET 参数发送到 POST 请求)?我不知道你的 php 脚本接收什么以及如何接收,也许可以解释一下你需要什么。
    • 实际上 abc.php 是用于从数据库中获取数据的文件。我用于 ajax 调用的这个文件。但是知道我想在 efg.php 文件中调用相同的代码。这个文件需要从数据库中获取相同的数据数据,但这次是在运行时,所以没有 ajax。
    • @Abhi PHP 不知道也不关心 AJAX 调用,但是如果不是从您的 AJAX 调用发送,您的 $_POST 变量来自哪里?注意阻止您手动覆盖这些变量,但如果您需要多种方式来使用该文件,也许您应该更改您的设计并且根本不要在脚本中使用$_POST。有很多解决方案。
    【解决方案3】:

    我假设您需要在脚本中请求另一个 PHP 页面,并使用 POST 方法将测试数据传递给它。

    最简单的方法是使用cURL

    // full URL to your PHP script
    $url = 'http://example.com/abc.php';
    
    // what post fields?
    $fields = array(
       'test' => '1st Value',
       'test2' => '2nd Value',
    );
    
    // encode your post data
    $postvars = http_build_query($fields);
    
    // open connection
    $ch = curl_init();
    
    // set the url, number of POST vars, POST data
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($fields));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
    
    // execute post
    $result = curl_exec($ch);
    
    // close connection
    curl_close($ch);
    

    功劳归于: https://stackoverflow.com/a/1217836/266076

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多