POST上的未定义变量

时间:2015-06-25 10:30:05

标签: php variables post indexing undefined

我查看了你的页面并修改了用户名和密码的未定义索引,但现在我得到了未定义的变量。我有更多的代码但是为了测试而决定简化它,只是回应它以查看是否有任何变化而它没有。

<?php
if (isset($_POST['submit'])){
$uname = isset($_POST['username']);             
$pass = isset($_POST['password']); 
}

echo $uname;
echo $password;
?>

我明白了:

  

注意:未定义的变量:第7行的C:\ xampp \ htdocs \ 8 \ login.php中的uname

     

注意:未定义的变量:传入C:\ xampp \ htdocs \ 8 \ login.php on   第8行

我真的不明白这里有什么问题。如果需要,这里是我的表格页面html。

<form id="login" method="post" action="login.php">
<div id="loginon">
<label for="username" style="color:#0F0; font-family:Arial, Helvetica, sans-serif;" >Username: &nbsp; &nbsp;</label>
<input type="text" id="username" name="username" />
<br  />
<br  />

<label for="password"  style="color:#0F0; size:auto; font-family:Arial, Helvetica, sans-serif;">Password: &nbsp; &nbsp;</label>
<input type="password" id="password" name="password" /> 
<br />
<br />
<input type="image" src="http://www.clker.com/cliparts/2/G/4/v/K/E/submit-hi.png" border="0" width="180px" height="80px" alt="Submit" />
</div>
</form>
</body>

修改 进一步的问题与此有关,所以我想我可以在这里发布。

if($username == "pikachu" || "cloud") {
    $ucheck = "dobar";
} else {
    $ucheck = "los";
}

if ($password == "123123" || "132132") {
    $pcheck = "topar";
} else {
    $pcheck = "losh";
}

if($ucheck == "dobar" && $pcheck == "topar") {
    echo "Najjaci si!";

}

elseif ($ucheck == "dobar" && $pcheck == "losh") {
    echo "Wimp.";
} elseif ($ucheck == "los" && $pcheck == "topar") {
    echo "Fish.";
}

问题在于,无论我在之前的表格中键入什么,它总是回应出“Najjaci si”。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

由于在逻辑(If)中有变量decleration,因此根本没有设置变量。 试试这个

<?php
if (isset($_POST['submit'])){
  $uname = isset($_POST['username']);             
  $pass = isset($_POST['password']); 

  echo $uname;
  echo $pass;
} else {
  echo "No submit detected!";
}


?>

如果你有一个名为submit的实际元素,它也看起来不像。 尝试添加:

<input type="submit" name="submit" value="Send my form" />

现在,您的表单包含一个名为“submit”的元素,该元素将在提交表单时作为post参数发送。

我自己,需要一个框架,就像这样做:

$username = ( isset($_POST["username"]) && $_POST["username"] != "" ? $_POST["username"] : false );
$password = ( isset($_POST["password"]) && $_POST["password"] != "" ? $_POST["password"] : false );

if( !$username === false && !$password === false )
{
    echo $username . " <br /> " . $password;
} else {
    echo "No! :) ";
}

答案 1 :(得分:1)

isset会检查该变量是set还是not,并在01中传递值。所以在这里你需要做

$uname = isset($_POST['username']) ? $_POST['username'] : '';             
$pass = isset($_POST['password']) ? $_POST['password'] : ''; 
  

注意:未定义的变量:在第8行传递C:\ xampp \ htdocs \ 8 \ login.php

因为你回复了$password而不是$pass

<强>被修改

将其作为

$uname = '';
$pass = '';

if (isset($_POST['submit'])){
$uname = isset($_POST['username']);             
$pass = isset($_POST['password']); 
}

echo $uname;
echo $pass;

答案 2 :(得分:0)

试试这个

格式

<form id="login" method="post" action="login.php">
    <div id="loginon">
        <label for="username" style="color:#0F0; font-family:Arial, Helvetica, sans-serif;" >Username: &nbsp; &nbsp;</label>
        <input type="text" id="username" name="username" />
        <br  />
        <br  />

        <label for="password"  style="color:#0F0; size:auto; font-family:Arial, Helvetica, sans-serif;">Password: &nbsp; &nbsp;</label>
        <input type="password" id="password" name="password" />
        <br />
        <br />
        <input type="submit" name="submit"/>
    </div>
</form>
</body>

在login.php中

<?php
    if (isset($_POST['submit']))
    {
        $uname = $_POST['username'];
        $pass = $_POST['password'];
    }

    echo $uname;
    echo $pass;
?>