繁体   English   中英

POST上的未定义变量

[英]Undefined variable on POST

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

<?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

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

我真的不明白这里有什么不对。 如果需要,这里是我的表单页面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”。 有任何想法吗?

由于在逻辑(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! :) ";
}

isset将检查变量setnot和在传递值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;

尝试这个

通知

<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;
?>

暂无
暂无

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

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