【发布时间】:2012-11-02 05:53:08
【问题描述】:
我遇到这个问题已经有一段时间了,这是我的表单的代码:
<form action="site/Main.php" method="post">
<p><label for="user" style="text-indent:415px;">User</label> <input type="text" name="user" /></p>
<p><label for="password">Password</label> <input type="password" name="password" /></p>
<p class="submit"><input type="submit" value="log in" /></p>
</form>
此表单位于我的 admin.php 页面,我想将变量“user”和“password”传递给我的 site/main.php 页面,但是,当我尝试访问变量时,php 告诉我他们这样做了不存在,这是我在我的 site/main.php 页面上的代码:
<?php
if(isset($_POST)){
if($_POST["user"] == "Project" && $_POST["password"] == "Project2012"){
echo "Welcome!";
} else{
echo "Wrong username or password!";
}
}
?>
我不断收到以下错误:
(!) 注意:未定义索引:第 10 行 C:\wamp\www\site\Main.php 中的用户
知道为什么 $_POST 变量似乎没有发送到我的主页吗?
非常感谢您提前提供的帮助!
【问题讨论】:
-
首先——var_dump($_POST);
-
其次,不要只是盲目地访问数组元素。
if(isset($_POST['user'])然后if($_POST['user'] == 'Project'). -
我不知道您的问题的答案,但请注意
isset($_POST)始终是true。如果没有发布任何内容,$_POST 是一个空数组,但它仍然存在。但是,空数组的计算结果为false,所以if($_POST)会做你想做的事情。 -
@octern:更好的是,
if ($_SERVER['REQUEST_METHOD'] == 'POST')。为什么要检查可能存在或不存在的变量/值,当您可以做到这一点并且每次都 100% 准确时。 -
@MarcB 你是对的,作为一个政策问题,最好测试你正在测试的东西,而不是测试由于一个怪癖而碰巧是同一件事的东西语言。
标签: php forms variables post send