php利用表单的网页之间参数传递,帮忙看一下代码哪里的问题,谢谢。
01.php<formmethod="post"action="indexin.php"name="boad"><center><p>account:<inputtype...
01.php
<form method="post" action="indexin.php" name="boad">
<center>
<p> account: <input type="text" name="user" id="field1"></p>
<p> password:<input type="password" name="passwd" id="field2"> </p>
</center>
<center><input type="submit" value="登入">
<a href="register.html" target="_self">加入</a></center>
</p>
</form>
02.php
<?php
$name=$_POST["user"];
$pwd=$_POST["passwd"];
if($name && $pwd)
{
$query=mysql_query("SELECT * FROM account where usr='$name' and pwd='$pwd'");
if($rows=mysql_fetch_array($query))
{
header("refresh:0;url=indexin.php");
exit;
}
else
{
echo "<script language=javascript>alert('用户名或者密码错误');history.back();</script>";
}
}
?>
错误提示:
Notice: Undefined index: user in D:\Temp\WWW\indexin.php on
line 21
Notice: Undefined index: passwd in
D:\Temp\WWW\indexin.php on line 22
对应的两排:
$name=$_POST["user"];
$pwd=$_POST["passwd"]; 展开
<form method="post" action="indexin.php" name="boad">
<center>
<p> account: <input type="text" name="user" id="field1"></p>
<p> password:<input type="password" name="passwd" id="field2"> </p>
</center>
<center><input type="submit" value="登入">
<a href="register.html" target="_self">加入</a></center>
</p>
</form>
02.php
<?php
$name=$_POST["user"];
$pwd=$_POST["passwd"];
if($name && $pwd)
{
$query=mysql_query("SELECT * FROM account where usr='$name' and pwd='$pwd'");
if($rows=mysql_fetch_array($query))
{
header("refresh:0;url=indexin.php");
exit;
}
else
{
echo "<script language=javascript>alert('用户名或者密码错误');history.back();</script>";
}
}
?>
错误提示:
Notice: Undefined index: user in D:\Temp\WWW\indexin.php on
line 21
Notice: Undefined index: passwd in
D:\Temp\WWW\indexin.php on line 22
对应的两排:
$name=$_POST["user"];
$pwd=$_POST["passwd"]; 展开
2014-11-27
展开全部
Notice: Undefined index错误可以忽略, 只是一个通知而已, 意思是变量没有定义, 这种错误不影响程序的运行!
当然,显示在那里也不好看, 那么要隐藏这种错误, 有以下几种方法!
第一种: 在php文件的最开始加上
error_reporting(E_ALL ^ E_NOTICE);
第二种, 修改php的配置文件php.ini
找到error_reporting这个选项, 把他的值改成:E_ALL & ~E_NOTICE
也就是像下面这样
error_reporting = E_ALL & ~E_NOTICE
然后保存,重启服务器!
追问
如果要定义的话应该定义在哪里呢?
追答
不要去定义,也没人去定义!
按照我上面的方法去忽略这个错误就可以了!
如果你非得说不屏蔽这种错误, 非得定义的话, 那是很繁琐的,比如:
$a = '';
$a = date('Y');
//就是给变量在赋值之前, 先赋一个空值, 或者如果是接受表单等等的get变量和post变量, //那么就先判断一下该变量是否已经设置,如下:
$user = '';
if ( isset( $_POST['user'] ) ) {
$user = $_POST['user'];
}
//你看这样是不是很繁琐呢? 几个变量倒是无所谓,要是大量的变量呢?(真正开发中,一个///程序不可能只是少数几个变量,所以,还是忽略这种错误更正道啊!
//当然,你的代码还是有很多错误的!!!
展开全部
应为你没有提交表单
$_POST里面user和passwd这两个变量还是空的
if($name && $pwd) 这句应该先对 $_POST里面的user,passwd检验存在性
再赋值
$name=$_POST["user"];
$pwd=$_POST["passwd"];
$_POST里面user和passwd这两个变量还是空的
if($name && $pwd) 这句应该先对 $_POST里面的user,passwd检验存在性
再赋值
$name=$_POST["user"];
$pwd=$_POST["passwd"];
追问
if($name && $pwd) 这个句子应该就能够检验吧。它的意思是
如果 $name && $pwd 都不为空,然后再执行接来下的表达式吧。
追答
赋值
$name=$_POST["user"];
$pwd=$_POST["passwd"];
之前
$_POST["user"]; 不存在,所以要报错
如果不想看到报错,应该先用if条件 检验$_POST["user"]
不存在就不赋值,那么也就不会报错
你是赋值后再检验,$_POST["user"]不存在,却要用它去给别的变量赋值,PHP是要报Notice的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询