初学php,照书上敲的下面代码,可是运行的时候即使用户名和密码都写上了,按登陆时,跳出来的还是用户名密码不能为空的提示栏
<?php
if(isset($_POST['Submit']) && $_POST['Submit']=="登陆"){
$user=$_POST['user'];
$pass=$_POST['pass'];
if(empty($user) || empty($pass)){
echo "<script>alert('用户名或密码不能为空');</script>";
}else{
echo "输入的用户名为:$user 密码为:$pass";
}
}
?>
<?php
if(isset($_POST['Submit']) && $_POST['Submit']=="登陆"){
$user=$_POST['user'];
$pass=$_POST['pass'];
if(empty($user) || empty($pass)){
echo "<script>alert('用户名或密码不能为空');</script>";
}else{
echo "输入的用户名为:$user 密码为:$pass";
}
}
?>
下面应该是原来的
<form id="form1" name="form1" method="post" action="">
<label>
<input type="text" name="user" id="user"/>
</label>
</form>
<form id="form2" name="form2" method="post" action="">
<label>
<input type="password" name="pass" id="pass"/>
</label>
</form>
<form id="form3" name="form3" method="post" action="">
<label>
<input type="submit" name="Submit" value="登陆" />
</label>
</form>
后来我好像把上面的删了好多成了下面这样
<input type="text" name="user" id="user"/>
<input type="password" name="pass" id="pass"/>
<input type="submit" name="Submit" value="登陆" />
然后就莫名其妙的好了
<input type="text" name="user" id="user"/>
<input type="password" name="pass" id="pass"/>
<input type="submit" name="Submit" value="登陆" />
</form>
<form id="form2" name="form2" method="post" action="">
<label>
<input type="text" name="user" id="user"/>
</label>
</form>
<form id="form3" name="form3" method="post" action="">
<label>
<input type="password" name="pass" id="pass"/>
</label>
</form>
<form id="form1" name="form1" method="post" action="">
<label>
<input type="submit" name="Submit" value="登陆" />
</label>
</form>
这是我现在改出来的,运行正确的
form id="form1" name="form1" method="post" action="">
<input type="text" name="user" id="user"/>
<input type="password" name="pass" id="pass"/>
<input type="submit" name="Submit" value="登陆" />
</form>
不知道为毛改成这样就是对的了,求解!!!!!!!!!!!
你原来提交的表单
form id="form1" name="form1" method="post" action="">
<label>
<input type="submit" name="Submit" value="登陆" />
</label>
</form>
只有 submit 里面没有user pass
你原先写了3个form分别包含user pass submit 这是完全错误的。
form id="form1" name="form1" method="post" action="">
<input type="text" name="user" id="user"/>
<input type="password" name="pass" id="pass"/>
<input type="submit" name="Submit" value="登陆" />
</form>
这才是正确的。
<?php
if(isset($_POST['Submit']) && $_POST['Submit']=="登陆"){
$user=$_POST['user'];
$pass=$_POST['pass'];
if(empty($user) || empty($pass)){
echo "<script>alert('用户名或密码不能为空');</script>";
}else{
echo "输入的用户名为:$user 密码为:$pass";
}
}
?>
如果有横多表单在一块,这个最近指的是上面最后一个或者下面第一个跟着的表单??
也就是说下面这段代码中的$_POST['']) 永远只跟离他最近的表单才产生联系??
不对。
是你提交的那个表单。你点击了那个表单的提交按钮,哪个表单就会提交。跟距离没有一毛钱关系的。form id="form1" name="form1" method="post" action="">
<input type="text" name="user" id="user"/>
<input type="password" name="pass" id="pass"/>
<input type="submit" name="Submit" value="登陆" />
</form>
这是一个整体 但你点击提交按钮后 这个表单会提交,$_POST 就跟他挂钩了,你再有其他很多很多表单也没用,因为那些表单没有提交啊。
<label>
<input type="submit" name="Submit" value="登陆" />
</label>
</form>
不是最近,注意红色部分,<form></form> 成对出现的。即为一组表单。你的里面没有user/pass 提交后自然就是空的。
以上说的都懂了
但我还想问,如果其他表单有类似$_POST['Submit']提交功,它的动作是提交表单,可以把 Submit换成其他名字就好了,是不?
随便什么名字都行?
form id="form1" name="form1" method="post" action="">
<input type="hidden" name="mode" value="back"/>
<input type="text" name="user" id="user"/>
<input type="password" name="pass" id="pass"/>
<input type="submit" name="Submit" value="登陆" />
</form><form id="form1" name="form1" method="post" action="">
<input type="hidden" name="mode" value="confirm"/>
<input type="text" name="user" id="user"/>
<input type="password" name="pass" id="pass"/>
<input type="submit" name="Submit" value="登陆" />
</form>你也可以这样 根据$_POST['mode'] 的值进行区分(这是用一个php处理)。
if($_POST['mode'] == 'back'){
.....
}
if($_POST['mode'] == 'confirm'){
.....
}
<form id="form1" name="form1" method="post" action="">
<input type="text" name="user" id="user"/>
<input type="password" name="pass" id="pass"/>
<input type="submit" name="Submit" value="登陆" />
<input type="submit" name="Submit1" value="提交" /> </form>
<?php
if(isset($_POST['Submit']) && $_POST['Submit']=="登陆"){
if(isset($_POST['Submit1']) && $_POST['Submit1']=="提交"){
print_r($_POST);看看post数组中有哪些数据,是不是有$_POST['user']和$_POST['pass'],没有的就看看是不是表单哪里出问题了。
<?php if(isset($_POST['user'])){
echo "<javascript>alert("+$_POST['user']+" "+$_POST['pass']+");</javascript>";
}else{?>
<form id="form1" name="form1" method="post" action="">
<input type="text" name="user" id="user"/>
<input type="password" name="pass" id="pass"/>
<input type="submit" name="Submit" value="登陆" />
<input type="submit" name="Submit1" value="提交" /> </form>
<?php }?>
一个表单里只能有一个 <input type="submit" name="Submit" value="登陆" />????为什么不能<form id="form1" name="form1" method="post" action="">
<input type="submit" name="Submit" value="登陆" />
<input type="submit" name="Submit1" value="提交" /> </form>
<?php if(isset($_POST['Submit']) && $_POST['Submit']=="登陆"){.......}
if(isset($_POST['Submit1']) && $_POST['Submit1']=="提交"){......} ?>