我查看了你的页面并修改了用户名和密码的未定义索引,但现在我得到了未定义的变量。我有更多的代码但是为了测试而决定简化它,只是回应它以查看是否有任何变化而它没有。
<?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: </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>
修改 进一步的问题与此有关,所以我想我可以在这里发布。
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”。有什么想法吗?
答案 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
,并在0
或1
中传递值。所以在这里你需要做
$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: </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;
?>