ホームページ  >  記事  >  バックエンド開発  >  PHP会員管理に新規登録したユーザーが正しく保存できない問題の解決方法

PHP会員管理に新規登録したユーザーが正しく保存できない問題の解決方法

WBOY
WBOYオリジナル
2016-06-13 13:37:391050ブラウズ

php メンバーシップ管理に登録された新規ユーザーが正しく保存されません
1. 処理コードは次のとおりです:
include("dbconnect.inc.php");
include(" function.inc.php");
#magic_quotes_gpc が php 設定に設定されていない場合、フィルター文字列が実行されます。
$form = check_form($_POST["edit"]);
$form["reg_time"] = date("Y-m-d H:i:s");
$form["pass"] = md5($form["pass"]);
extract($form);
$sql = "ユーザーに挿入( ユーザー名,パスワード,性別,メール,電話番号,ウェブ,誕生日,インター,イントロ, 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");
?>
問題は主に 5 行目です
$form = check_form($_POST["edit"]);
試してみます はい、プログラムがこの行まで実行されるとエラーが発生しますが、この行の前に「#」を追加すると、保存が成功したことを示すメッセージが表示されますが、フィールドは 2 つだけです。 6 行目と 7 行目。次のようにアドバイスをお願いします。 上記のインクルードに使用されるコード。
2. dbconnect.inc.php コード
include("settings.inc.php");
#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 コード
 に変更されます
関数 check_form($form) {
  if(!get_magic_quotes_gpc()) {
    foreach($form as $i=>$v) {
       $form[$i] = ラッシュを追加します($v);
    }
  }
  $form を返します。
}
<br><font color="#e78608">------解決策---------</font><br>check_form が再帰的である場合<br>
PHPコード

    パブリック静的関数のストリップスラッシュ($param)
    {
        if (is_array($param))
        {
            foreach ($param as $k => $v)
            {
                $param[$k] = self::stripslashes($v);
            }
            $param を返します。
        }
        それ以外
        {
            ストリップスラッシュを返します($param);
        }
    <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。