Php 为什么$\u POST数组为空?

Php 为什么$\u POST数组为空?,php,post,Php,Post,我有以下代码: <?php define('ENVIRONMENT', 'tests'); $_POST['id']='AccountPagesView.a_book/45'; $_POST['old_value']='1'; $_POST['value']='2'; header("Location: http://localhost/index.php/welcome/update_record"); ?> 你不能。重定向将始终导致通过G

我有以下代码:

<?php
    define('ENVIRONMENT', 'tests');
    $_POST['id']='AccountPagesView.a_book/45';
    $_POST['old_value']='1';
    $_POST['value']='2';
    header("Location: http://localhost/index.php/welcome/update_record");
?>

你不能。重定向将始终导致通过GET加载目标页面


但是,您可以使用会话来存储这些值。调用
session_start(),并使用超全局数组
$\u SESSION
而不是
$\u POST

您不能这样做。重定向将始终导致通过GET加载目标页面


但是,您可以使用会话来存储这些值。调用
session_start(),并使用超全局数组
$\u SESSION
而不是
$\u POST

$\u POST
仅当通过
POST
方法发送请求时才存在,这意味着已发送表单


您可以改用
$\u SESSION

$\u POST
仅当请求通过
POST
方法发送时才存在,这意味着已发送表单


您可以使用$\u会话

这是应该使用$\u会话的主要原因之一。有关说明,请参见其他问题:


这是应该使用$\u会话的主要原因之一。有关说明,请参见其他问题:


如果您绝对不想使用
$\u SESSION
,我相信这就是您需要在不使用JS的情况下将POST值从一个PHP脚本发送到另一个PHP脚本的原因,尽管这是您应该使用的

$ch = curl_init();
$data = array('id' => 'AccountPagesView.a_book/45', 'old_value' => '1', 'value' => '2',);

curl_setopt($ch, CURLOPT_URL, 'http://path-to/other.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);

我相信,如果您绝对不想使用
$\u SESSION
,那么在不使用JS的情况下,您需要将POST值从一个PHP脚本发送到另一个PHP脚本,而这正是您需要使用的

$ch = curl_init();
$data = array('id' => 'AccountPagesView.a_book/45', 'old_value' => '1', 'value' => '2',);

curl_setopt($ch, CURLOPT_URL, 'http://path-to/other.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
两个答案。 如果以下各项不起作用:

<?php
    define('ENVIRONMENT', 'tests');
    $_POST['id']='AccountPagesView.a_book/45';
    $_POST['old_value']='1';
    $_POST['value']='2';
    require("/index.php/welcome/update_record");
?>

(我对页面URL有点目瞪口呆。)

然后:

当你坚持发帖时(这是你发帖的权利),你可以:

<html>
  <head>
  </head>
  <body>
    <form action="/index.php/welcome/update_record" method="post">
      <input type="hidden" name="id" value="AccountPagesView.a_book/45">
      <input type="hidden" name="old_value" value="1">
      <input type="hidden" name="value" value="2">
      <input type="hidden" name="ENVIRONMENT" value="tests">
    </form>
    <script type="text/javascript">
       document.forms[0].submit();
    </script>
  </body>
</html>

document.forms[0]。提交();
环境的定义需要以某种方式解决

如果目标脚本使用$\u请求,即$\u POST+$\u GET(i.o.$\u POST),那么您将执行一个HTTP GET URL:
…-?id=…&old\u value=1&value=2
,这将是最简单的解决方案。

两个答案。 如果以下各项不起作用:

<?php
    define('ENVIRONMENT', 'tests');
    $_POST['id']='AccountPagesView.a_book/45';
    $_POST['old_value']='1';
    $_POST['value']='2';
    require("/index.php/welcome/update_record");
?>

(我对页面URL有点目瞪口呆。)

然后:

当你坚持发帖时(这是你发帖的权利),你可以:

<html>
  <head>
  </head>
  <body>
    <form action="/index.php/welcome/update_record" method="post">
      <input type="hidden" name="id" value="AccountPagesView.a_book/45">
      <input type="hidden" name="old_value" value="1">
      <input type="hidden" name="value" value="2">
      <input type="hidden" name="ENVIRONMENT" value="tests">
    </form>
    <script type="text/javascript">
       document.forms[0].submit();
    </script>
  </body>
</html>

document.forms[0]。提交();
环境的定义需要以某种方式解决



如果目标脚本使用$\u请求,即$\u POST+$\u GET(i.o.$\u POST),那么您可以执行HTTP GET URL:
…-?id=…&old\u value=1&value=2
,这将是最简单的解决方案。

您的意思是覆盖参数,而不是覆盖当前Web服务器中的更新脚本?然后不要使用URL,使用文件系统路径来执行此操作。请问,是否有任何方法可以将$\u POST数组发送到另一个没有表单的脚本中?可能是JS,或者其他意思?是的,有。不过请不要发表垃圾评论。好的,对不起,但我很困惑。你能描述一下这个意思吗?不,你必须先强化你的问题。解释为什么您需要特定的数据传输,无法使用目前给出的答案,以及两个应用程序部分如何连接。否则你的问题太宽泛了使用编辑链接。-要获得更高质量的答案,请通过包含完整而简洁的内容等方式编写一个脚本。您的意思是覆盖参数,而不是从当前Web服务器中删除更新脚本吗?然后不要使用URL,使用文件系统路径来执行此操作。请问,是否有任何方法可以将$\u POST数组发送到另一个没有表单的脚本中?可能是JS,或者其他意思?是的,有。不过请不要发表垃圾评论。好的,对不起,但我很困惑。你能描述一下这个意思吗?不,你必须先强化你的问题。解释为什么您需要特定的数据传输,无法使用目前给出的答案,以及两个应用程序部分如何连接。否则你的问题太宽泛了使用编辑链接。-要获得更高质量的答案,请写一篇完整而简洁的文章,等等。请问,有没有办法将$\u POST数组发送到另一个没有表单的脚本中?可能是JS,或者其他意思?请问,有没有办法将$\u POST数组发送到另一个没有表单的脚本中?可能是JS,或者其他意思?请问,有没有办法将$\u POST数组发送到另一个没有表单的脚本中?可能是JS,或者其他意思?请问,有没有办法将$\u POST数组发送到另一个没有表单的脚本中?可能是JS,或者其他意思?请问,有没有办法将$\u POST数组发送到另一个没有表单的脚本中?可能是JS,或者其他意思?如果你想让它重定向,你需要创建一个表单(可能只有隐藏字段),然后通过JavaScript提交。请问,有没有办法将$\u POST数组发送到另一个没有表单的脚本中?可能是JS,或者其他的意思?如果你想要它被重定向,你需要创建一个表单(可能只有隐藏的字段),然后通过JavaScript提交它。