首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php会员管理中注册新用户不能正确存储解决办法

2012-04-15 
php会员管理中注册新用户不能正确存储1、处理代码如下:?phpinclude(dbconnect.inc.php)include(functi

php会员管理中注册新用户不能正确存储
1、处理代码如下:
<?php
include("dbconnect.inc.php");
include("functions.inc.php");
#如果php配置中,magic_quotes_gpc没有被设置,则执行过滤字符串。
$form = check_form($_POST["edit"]);
$form["reg_time"] = date("Y-m-d H:i:s");
$form["pass"] = md5($form["pass"]);
extract($form);
$sql = "insert into users( username,password,sex,mail,tel,web,birthday,inter,intro,reg_time) ";
#这里{}符号是代表在字符串中引用当前环境的变量
$sql .= " values('{$name}',";
$sql .= " '{$pass}',";
$sql .= " '{$sex}',";
$sql .= " '{$mail}', ";
$sql .= " '{$tel}', ";
$sql .= " '{$web}', ";
$sql .= " '{$birthday}', ";
$sql .= " '{$inter}', ";
$sql .= " '{$intro}', ";
$sql .= " '{$reg_time}') ";

$res = mysql_query($sql);
if(!$res) {
die("数据库出错,请返回重试。");
}

header("Location:msg.php?m=register_success");
?>
主要是出问题在第五行
$form = check_form($_POST["edit"]);
我试了,程序运行到这一行就会出错,但又不报错,如果在这一行前加‘#’,则提示存储成功,但只有6、7行的两个字段,请各位大虾不吝赐教,以下为以上包含使用的代码。
2、dbconnect.inc.php代码
<?php
include("settings.inc.php");
#connect to db
$con = mysql_connect($dbhost,$dbuser,$dbpass);
if(!$con) die("mysql error:".mysql_error());
mysql_select_db($dbname,$con);
?>
3、functions.inc.php代码
<?php
function check_form($form) {
if(!get_magic_quotes_gpc()) {
for($i=0;$i<count($form);$i++) {
$form[$i] = addslashes($form[$i]);
}
}
return $form;
}
?>
4、settings.inc.php代码
<?php
#mysql服务器IP及数据库名
$dbhost = "localhost";
$dbname = "book";
$dbuser = "admin";
$dbpass = "123456";
?>


[解决办法]
函数check_form改为

PHP code
function check_form($form) {  if(!get_magic_quotes_gpc()) {    foreach($form as $i=>$v) {       $form[$i] = addslashes($v);    }  }  return $form;}
[解决办法]
check_form要是个递归吧
PHP code
    public static function stripslashes($param)    {        if (is_array($param))        {            foreach ($param as $k => $v)            {                $param[$k] = self::stripslashes($v);            }            return $param;        }        else        {            return stripslashes($param);        }    } 

热点排行