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"];
展开
 我来答
匿名用户
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'];
}    
//你看这样是不是很繁琐呢? 几个变量倒是无所谓,要是大量的变量呢?(真正开发中,一个///程序不可能只是少数几个变量,所以,还是忽略这种错误更正道啊!
//当然,你的代码还是有很多错误的!!!
hwguan
2014-11-27 · TA获得超过1万个赞
知道大有可为答主
回答量:4405
采纳率:0%
帮助的人:4141万
展开全部
应为你没有提交表单
$_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的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式