0

我有一个 html 文件,基本上是一个简单的形式: 目的是提交一个在 PHP 文件('alternative.php')上运行一段代码的值参见 html 代码示例:

<form name="input" action="alternative.php" method="POST">

Area: <input type="text" name="area"><br><br>
<input type="submit"><br>

</form><br><br> 

这运行顺利

现在我有了第二个 PHP 文件('alternative2.php'),这个文件需要自动链接到表单中输入的数据。替代方案 2 的 php 代码摘录:

<?php

require_once 'header.php';

/** Create HTTP POST */
$accomm = 'ACCOMM';
$region = '';

foreach ($result->area as $entry) {
$region = $entry->attributes()->area_name;
break;
}

$page = '10';

Alternative.php 和alternative2.php 都需要header.php。

header.php 的摘录:

<?php

/** Create HTTP POST */

$country =  'Australia';
$area =  htmlspecialchars($_POST["area"]);
$seek = '<parameters> 
<row><param>COUNTRY</param><value>'. $country .'</value></row> 
<row><param>AREA</param><value>'. $area .'</value></row>
</parameters>';

Currently it returns "Notice: Undefined index: area in C:\xampp\htdocs...." when I run it.

我该怎么做?

谢谢

4

3 回答 3

1

在使用它们之前检查 $_POST 值是否存在......

if (isset($_POST["area"])){
   //do stuff
}
于 2013-10-28T20:14:14.747 回答
1

基本上它与您的表单实际提交到哪个文件有关。如果您的表单仅提交给您,alternative.php那么您不会收到POST第二页的信息。在我看来(基于我从您的代码中看到的)最简单和合乎逻辑的选择是将功能合并alternative.phpalternative2.php一个页面中,或者使用会话来存储POST信息,然后这两个页面都可以使用。如果您要使用会话,您将执行如下所示的操作。

从处理表单输入的文件开始(alternative.php我想)并添加

session_start();

到该文件的顶部。然后,在您获得表单信息的任何代码块中,添加以下行:

$_SESSION['area'] = $_POST['area'];

现在您的信息已被存储,并可根据请求提供。

然后在你的 head.php 文件中,通过$_SESSION变量访问信息。

<?php

/** Start Session */
session_start();

/** Create HTTP POST */

$country =  'Australia';
$area =  htmlspecialchars($_SESSION['area']); //Access your session variable.


$seek = '<parameters> 
<row><param>COUNTRY</param><value>'. $country .'</value></row> 
<row><param>AREA</param><value>'. $area .'</value></row>
</parameters>';
?>
于 2013-10-29T15:19:56.503 回答
1

错误提示$_POST["area"]未定义,如果您没有从表单中到达 Alternative2,那么这就是您看到此内容的原因;如果您想从其他地方(例如直接)到达 Alternative2,或者如果变量的值在多个页面上必须相同,那么您可能需要考虑使用Sessions

于 2013-10-28T20:12:49.617 回答