刚学php,在往mysql插入数据时的问题

sxjccj 2011-10-02 07:07:15
<form name="adduser" action="dealadduser.php" method="POST"
添加管理员<br>
姓 名: <input type="text" name="username"></br>
密 码:<input type="password" name="password"></br>
<input type="submit" value="添加">
<input type="reset" value="取消">
</form>
<?php
mysql_connect("localhost","root","");
mysql_select_db("soft");
mysql_query("set character set gbk");
$sql="insert into user('username' ,'password') values ('$_POST[username]','$_POST[password])";
$result=mysql_query($sql);

?>
虽然这个烂的狠,但遇到了问题啊~在第13行出现: Undefined index: username in E:\wamp\www\adduser.php on line 13
Undefined index: password in E:\wamp\www\adduser.php on line 13
希望会的告诉下
...全文
52 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxjccj 2011-10-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ohmygirl 的回复:]
引用 5 楼 sxjccj 的回复:

引用 4 楼 ohmygirl 的回复:
额,原因见newnew说的,你这里是不管有没有提交表单都会执行插入数据库的代码段,提交表单之前,$_POST[‘username’]和$_POST['password']是未定义的,所以会出现这样的错误提示。
更改方法newnew也告诉你了,判断是否提交表单,提交表单的话再执行代码块。

$usernam……
[/Quote]
管用了啊!!!太高兴了,谢谢
sxjccj 2011-10-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 phpnewnew 的回复:]
旧版本的时候是靠谱的 PHP的新版本就不靠谱了。
这是一个提示 也并非一个错误.所以从代码的良好习惯上来说 做一个判断然后再继续操作才是正确的,这也是为什么PHP会出现这样一个提示。



引用 5 楼 sxjccj 的回复:

引用 4 楼 ohmygirl 的回复:
额,原因见newnew说的,你这里是不管有没有提交表单都会执行插入数据库的代码段,提交表单之前,$_POST[‘……
[/Quote]
谢谢了啊
黄袍披身 2011-10-02
  • 打赏
  • 举报
回复
旧版本的时候是靠谱的 PHP的新版本就不靠谱了。
这是一个提示 也并非一个错误.所以从代码的良好习惯上来说 做一个判断然后再继续操作才是正确的,这也是为什么PHP会出现这样一个提示。


[Quote=引用 5 楼 sxjccj 的回复:]

引用 4 楼 ohmygirl 的回复:
额,原因见newnew说的,你这里是不管有没有提交表单都会执行插入数据库的代码段,提交表单之前,$_POST[‘username’]和$_POST['password']是未定义的,所以会出现这样的错误提示。
更改方法newnew也告诉你了,判断是否提交表单,提交表单的话再执行代码块。

$username=$_POST['username'];……
[/Quote]
ohmygirl 2011-10-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sxjccj 的回复:]

引用 4 楼 ohmygirl 的回复:
额,原因见newnew说的,你这里是不管有没有提交表单都会执行插入数据库的代码段,提交表单之前,$_POST[‘username’]和$_POST['password']是未定义的,所以会出现这样的错误提示。
更改方法newnew也告诉你了,判断是否提交表单,提交表单的话再执行代码块。

$username=$_POST['username'];……
[/Quote]
还是那个问题。表单提交之前$_POST['username']和$_POST['password']肯定是未定义的。
所以要判断是不是提交表单了。

把你的那段php代码放到
if(isset($_POST['submit']))
{

}
里边去,这样,提交表单的话才会执行这个代码快,自然不会提醒没有定义的错误了

也就是像这样:

if(isset($_POST['submit']))
{
mysql_connect("localhost","root","");
mysql_select_db("soft");
mysql_query("set character set gbk");
$sql="insert into user('username' ,'password') values ('$_POST[username]','$_POST[password])";
$result=mysql_query($sql);
}
sxjccj 2011-10-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ohmygirl 的回复:]
额,原因见newnew说的,你这里是不管有没有提交表单都会执行插入数据库的代码段,提交表单之前,$_POST[‘username’]和$_POST['password']是未定义的,所以会出现这样的错误提示。
更改方法newnew也告诉你了,判断是否提交表单,提交表单的话再执行代码块。
[/Quote]
$username=$_POST['username'];
$password=$_POST['password'];
$sql="insert into user('username' ,'password') values ('$username','$password')";
为什么这么还是提示没定义啊,我百度的,不靠谱啊
ohmygirl 2011-10-02
  • 打赏
  • 举报
回复
额,原因见newnew说的,你这里是不管有没有提交表单都会执行插入数据库的代码段,提交表单之前,$_POST[‘username’]和$_POST['password']是未定义的,所以会出现这样的错误提示。
更改方法newnew也告诉你了,判断是否提交表单,提交表单的话再执行代码块。
改一下昵称 2011-10-02
  • 打赏
  • 举报
回复

原因 $_POST[username],$_POST[password]未定义,也就是表单传送未成功,确定你的传送对象就是本页,文件名没错

$_POST['username']
username 是字符串型,最好要加引号区分
fengnuan 2011-10-02
  • 打赏
  • 举报
回复
不懂的飘过
黄袍披身 2011-10-02
  • 打赏
  • 举报
回复
这是个提示 也就是说这两个变量没有定义。

你这是提交给自身吗?确认你的文件名就是dealadduser.php

然后

<?php
mysql_connect("localhost","root","");
mysql_select_db("soft");
mysql_query("set character set gbk");
$sql="insert into user('username' ,'password') values ('$_POST[username]','$_POST[password])";
$result=mysql_query($sql);

?>

添加
if (isset($_POST['username'])&&(isset($_POST['password']))){
$Username=$_POST['username'];
$Psswd=$_POST['password'];
}else{
exit();
}

然后 sql
$sql="insert into user('username' ,'password') values ('".$Username."','".$Psswd."')";

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧