PHP提交表单(适用于迷你网络应用程序)可以在一个页面上运行,但不在其他页面上(空的$ _POST数组)?

时间:2015-02-07 23:14:15

标签: php forms

对于我的迷你网络应用程序,我制作了一个注册表和登录表。他们看起来一样。两个表单之间的差异是输入字段的名称。

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Login</title>
    <link rel="stylesheet" href="css/style.css">
    <!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>
<body>
<section class="container">
    <div class="login">
        <h1>Prijava za intervju</h1>
        <form method="POST" action="logovanje.php">

            <p><input type="text" name="user" placeholder="Korisnicko ime"></p>
            <p><input type="text" name="pass" placeholder="Password"></p>

            <p class="submit"><input type="submit" name="commit" value="Prijava"></p>

        </form>
    </div>


</body>
</html>

这是PHP简单登录代码

<?php

require_once('databaseClass.php');

//---------------------------------------------------------------------
function logovanje()
{
    *body of function*

}
//---------------------------------------------------------------------

print_r($_POST);//for testing
if (isset($_POST['user']) && isset($_POST['pass']))
{
    if ($_POST['user'] !== '' && $_POST['pass'] !== '')
    {
        logovanje();
    }
    else
    {
        echo <<<END
*html page to echo if user and pass are empty*
END;

    }

}
else
{
    echo <<<END
*html page to echo if user and pass are not set*
END;
}

问题是每次提交表单时,$_POST数组都是空的。这很奇怪。

如果我将$_POST['user']更改为$_POST['*anyothername*']而将$_POST['pass']更改为$_POST['*anyothername*'],则print_r($_POST)会显示'user'和'pass'的值(此行为不合逻辑对我来说。

用户名'test6'和密码'test6'的示例:

Array ( [user] => test6 [pass] => test6 [commit] => Prijava )

PHP代码是:

print_r($_POST);//for testing
if (isset($_POST['username111']) && isset($_POST['password222']))
{

如果我设置正确的代码(应该是这样):

print_r($_POST);//for testing
if (isset($_POST['user']) && isset($_POST['pass']))
{

然后print_r($_POST)返回空数组:

Array ( )

这让我很困惑。当PHP开始执行时,为什么$_POST数组为空?

具有相同结构的文件,用于注册工作没有任何问题(唯一的区别是注册文件有函数register()而不是logovanje())。

1 个答案:

答案 0 :(得分:0)

解决了这个问题。其他一些文件有错误的代码:) Apache的配置被别人/其他人搞砸了:))

Aitch,谢谢你的帮助:D