繁体   English   中英

PHP提交表单(适用于小型Web应用程序)在一页上起作用,但在另一页上(空的$ _POST数组)不起作用吗?

[英]PHP submit form (for mini web-app) works one page, but doesn't on other (empty $_POST array)?

对于我的迷你网络应用程序,我做了注册表格和登录表格。 他们看起来一样。 两种形式之间的区别是输入字段的名称。

<!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['user'] $_POST['*anyothername*'] ,将$_POST['pass']更改$_POST['*anyothername*']print_r($_POST)显示'user'的值和“通过”(这种行为对我来说是不合逻辑的)。

用户名“ 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())。

解决了这个问题。 其他一些文件的代码很糟糕:) Apache的配置被其他人弄乱了:)

Aitch,谢谢您的帮助:D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM