POST 上的未定义变量
Undefined variable on POST
我查看了您的页面并修复了用户名和密码的未定义索引,但现在我得到了未定义的变量。我有更多的代码,但为了测试而决定简化它,只是回显它以查看是否有任何变化,而它没有。
<?php
if (isset($_POST['submit'])){
$uname = isset($_POST['username']);
$pass = isset($_POST['password']);
}
echo $uname;
echo $password;
?>
我明白了:
Notice: Undefined variable: uname in C:\xampp\htdocs\login.php on line 7
Notice: Undefined variable: pass in C:\xampp\htdocs\login.php on
line 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: </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: </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>
编辑:
进一步的问题与此有关,所以我想我可以在这里 post 它。
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"。有什么想法吗?
isset
将检查变量是 set
或 not
并在 0
或 1
中传递值。所以在这里你需要做
$uname = isset($_POST['username']) ? $_POST['username'] : '';
$pass = isset($_POST['password']) ? $_POST['password'] : '';
Notice: Undefined variable: pass in C:\xampp\htdocs\login.php on line 8
这是因为你回显的是 $password
而不是 $pass
已编辑
按照
做
$uname = '';
$pass = '';
if (isset($_POST['submit'])){
$uname = isset($_POST['username']);
$pass = isset($_POST['password']);
}
echo $uname;
echo $pass;
由于逻辑 (If) 中有变量减速,因此有可能根本没有设置变量。
试试这个
<?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! :) ";
}
试试这个
形式
<form id="login" method="post" action="login.php">
<div id="loginon">
<label for="username" style="color:#0F0; font-family:Arial, Helvetica, sans-serif;" >Username: </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: </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;
?>
我查看了您的页面并修复了用户名和密码的未定义索引,但现在我得到了未定义的变量。我有更多的代码,但为了测试而决定简化它,只是回显它以查看是否有任何变化,而它没有。
<?php
if (isset($_POST['submit'])){
$uname = isset($_POST['username']);
$pass = isset($_POST['password']);
}
echo $uname;
echo $password;
?>
我明白了:
Notice: Undefined variable: uname in C:\xampp\htdocs\login.php on line 7
Notice: Undefined variable: pass in C:\xampp\htdocs\login.php on line 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: </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: </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>
编辑: 进一步的问题与此有关,所以我想我可以在这里 post 它。
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"。有什么想法吗?
isset
将检查变量是 set
或 not
并在 0
或 1
中传递值。所以在这里你需要做
$uname = isset($_POST['username']) ? $_POST['username'] : '';
$pass = isset($_POST['password']) ? $_POST['password'] : '';
Notice: Undefined variable: pass in C:\xampp\htdocs\login.php on line 8
这是因为你回显的是 $password
而不是 $pass
已编辑
按照
做$uname = '';
$pass = '';
if (isset($_POST['submit'])){
$uname = isset($_POST['username']);
$pass = isset($_POST['password']);
}
echo $uname;
echo $pass;
由于逻辑 (If) 中有变量减速,因此有可能根本没有设置变量。 试试这个
<?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! :) ";
}
试试这个
形式
<form id="login" method="post" action="login.php">
<div id="loginon">
<label for="username" style="color:#0F0; font-family:Arial, Helvetica, sans-serif;" >Username: </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: </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;
?>