$ _SERVER ['PATH_INFO'] ..未定义索引:PATH_INFO

时间:2011-10-19 07:41:59

标签: php forms

我正在使用代码作为标题:

$fullurl=$_SERVER['PATH_INFO'];
    echo '
      <form action="'. $fullurl .'" method="POST">
      <table width="1000" border="1" cellpadding="10" id="navigationBar">
          <tr>
            <td> <a href="/PoliticalForum/Registration.php">Register</a></td>
            <td> <a href="/PoliticalForum/controlPanel.php">Control Panel</a></td>
            <td> <a href="/PoliticalForum/checkEmail.php">Donate</a> </td>
            <td align="right">name:<input name="name" type="text" /></td>
            <td>password:<input name="pass" type="text" /> <input name="login" type="submit" value="Login" /> </td>
          </tr>
       </table>
           </form>
       ';

我在页面文件中包含标题,其中包含一次require。我想要的是fullurl变量获取页面的完整url它是“required_once”,当我点击提交时,我希望它重定向到标题所在的页面..我将url添加到动作形式..

但我得到的是:

Undefined index: PATH_INFO

我尝试使用它们:

explode('/', substr(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH),1));

$_ENV['PATH_INFO'];

但他们也没有工作:(

3 个答案:

答案 0 :(得分:3)

  <form action="" method="POST">

这就是全部

另外,回应原始HTML是没有意义的 使用此代码而不是您的代码

?>
  <form action="" method="POST">
  <table width="1000" border="1" cellpadding="10" id="navigationBar">
      <tr>
        <td> <a href="/PoliticalForum/Registration.php">Register</a></td>
        <td> <a href="/PoliticalForum/controlPanel.php">Control Panel</a></td>
        <td> <a href="/PoliticalForum/checkEmail.php">Donate</a> </td>
        <td align="right">name:<input name="name" type="text" /></td>
        <td>password:<input name="pass" type="text" /> <input name="login" type="submit" value="Login" /> </td>
      </tr>
   </table>
       </form>

答案 1 :(得分:1)

您也可以尝试:

<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<input type="submit" name="form-submit" value="Submit" />

这将导致表单自行提交(当前页面)。使用表单中的变量来检测提交或“常规页面加载”。 E.g。

if (isset($_POST['form-submit'])){
    //do stuff
}

答案 2 :(得分:0)

在较新的环境中,使用 Apache / PHP-FPM ,您需要在 php.ini 中启用以下选项,以避免出现“ 未定义的索引:PATH_INFO

cgi.fix_pathinfo=1