ホームページ >バックエンド開発 >PHPチュートリアル >php会员管理中注册新用户不能正确存储解决办法

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

WBOY
WBOYオリジナル
2016-06-13 10:12:56863ブラウズ

php会员管理中注册新用户不能正确存储
1、处理代码如下:
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代码
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代码
function check_form($form) {
if(!get_magic_quotes_gpc()) {
for($i=0;$i $form[$i] = addslashes($form[$i]);
}
}
return $form;
}
?>
4、settings.inc.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;}<br><font color="#e78608">------解决方案--------------------</font><br>check_form要是个递归吧<br>
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);        }    }<div class="clear">
                 
              
              
        
            </div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。