菜鸟求救----注册界面的问题

LuckyNT 2006-02-26 04:58:03
reg.php

<form name="form1" method="post" action="judge.php">
<div align="center">
<table width="200" border="0">
<tr>
<td width="83">用户名:</td>
<td width="107"> <input name="name" type="text" size="15" maxlength="8"></td>
</tr>
<tr>
<td>密码:</td>
<td><input name="pass" type="text" size="15" maxlength="8"></td>
</tr>
<tr>
<td><div align="center">
<input type="submit" name="Submit" value="提交">
</div></td>
<td><div align="center">
<input type="reset" name="Submit2" value="重置">
</div></td>
</tr>
</table>
</div>
</form>

judge.php

<?
include("config.php");
$link=mysql_connect($hostname,$db_user,$db_pass) or die("Connect Failed");
mysql_select_db($db_name);
if(!$_POST['name']=="" && !$_POST['pass']==""){
echo "Record inserted";
mysql_query("insert into user (name,password) values ('$_POST['name']','$_POST['pass']')");
}else
echo "Wrong"
mysql_close($link)
?>
执行后表中没新增纪录
如果换成mysql_query("insert into user (name,password) values ($name,$pass)");就能执行成功
请问这是为什么?是不是mysql_query("insert into user (name,password) values ('$_POST['name']','$_POST['pass']')");这句没写对?
...全文
249 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LuckyNT 2006-02-27
  • 打赏
  • 举报
回复
只是随便写的,主要就是想知道 $_POST['pass'] 这类变量应该怎么放在insert into 中
但是现在还是有点晕乎乎的
marsrandy 2006-02-27
  • 打赏
  • 举报
回复
楼上正解

看楼主的代码,如果两个注册的用户名相同咋办办?
pswdf 2006-02-27
  • 打赏
  • 举报
回复
要引号也可以,可以用.连接起来嘛
loswing 2006-02-27
  • 打赏
  • 举报
回复
写程序不要偷懒
function filter_post($post='',$type='num',$trim_tag='yes'){
//处理特殊的字符,去空格
//
}
//好的习惯会哦
$name = filter_post($_POST[name],'char','yes');
$pass= filter_post($_POST[pass],'char','yes');

//用连接符号'.'让你程序在没有php编辑器的情况下也很好阅读
mysql_query("insert into user (name,password)
values ('".$name."','".$pass."')");
xuzuning 2006-02-27
  • 打赏
  • 举报
回复
mysql_query("insert into user (name,password) values ('$_POST[name]','$_POST[pass]')");

当关联数组的元素出现在双引号中时,关联键是不需要引号的,否则你应该用{}将数组元素括起

这一点在手册中有详细的说明
aniude 2006-02-27
  • 打赏
  • 举报
回复
例如在插入之前,你可以
$pass = $_POST['pass'];
这样就可以避免以上问题的发生
dreadknightll 2006-02-26
  • 打赏
  • 举报
回复
像 $_POST['pass'] 这类变量是不能直接放进双引号的
要么像我那样用连接符要么像patchclass那样转换成一个那种形式的变量
dreadknightll 2006-02-26
  • 打赏
  • 举报
回复
就是这个问题
mysql_query("insert into user (name,password) values ('$_POST['name']','$_POST['pass']')");
应改为
mysql_query("insert into user (name,password) values ('".$_POST['name']."','".$_POST['pass']."')");
patchclass 2006-02-26
  • 打赏
  • 举报
回复
insert into user (name,password) values ($name,$pass)
需要
insert into user (name,password) values ('$name','$pass')
的吧
LuckyNT 2006-02-26
  • 打赏
  • 举报
回复
上面说错了.应该是
$name=$_POST['name'];
$pass=$_POST['pass'];后mysql_query("insert into user (name,password) values ($name,$pass)");能执行成功.
不知道是不是$_POST['name']与$_POST['pass']不能用在insert into 中?
LuckyNT 2006-02-26
  • 打赏
  • 举报
回复
顶一下,别沉了^_^

21,891

社区成员

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

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