当前位置:编程学习 > php >>

表单中PHP的错误提示: Notice: Undefined index: submit in D:\wamp\www\bbs\add.php on line 9

<?php /* * Created on 2011-6-4 * * To change the template for this generated file go to * Window - Preferences - PHPeclipse - PHP - Code Templates */ include("conn.php"); if ($_POST['submit']) { $sql="insert into message (id,user,title,content,lastdate) values('','$_post[user]','$_post[title]','$_post[content]',now())"; mysql_query($sql); echo "发表成功"; } ?> <form action="add.php" method="post"> 用户:<input type="text" name="user" /><br/> 标题:<input type="text" name="title" /><br/> 内容:<textarea name="content" ></textarea><br/> <input type="submit" name="submit" value="发布留言"/> </form>
答案:楼上的方法可以解决问题,但需要每次都输入,比较麻烦其实这个问题的根本原因是 php.ini 配置问题。

本来 PHP 是不需要事先定义变量的,但有些 php.ini 修改过了。对于这些未定义的变量,会报错!

解决方案:
修改 php.ini 的错误配置,如下:

error_reporting  =  E_ALL & ~E_NOTICE 

修改好以后,重启 Apache  ,就可以不用 isset 来判断了。
其他:应该是你if 下面的大括号的问题吧,你把大括号紧挨那个小括号 你第一次访问add.php使用GET方法访问的 根本没有踢脚 所以没有($_POST['submit']
你应该修改为 if (isset($_POST['submit'])) 不能识别变量名.两种方法
1.把if($_POST['submit'])改成 if (isset($_POST['submit']))
因为刚开始没有获取submit的值.isset是判断submit是否存在
2: 在开头加上 
error_reporting(E_ALL & ~E_NOTICE);
表示提示除去 E_NOTICE 之外的所有错误信息 

上一个:十天学会php语言???
下一个:php自动跳转传值乱码

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,