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
}
}
return $form;
}
?>
4. settings.inc.php コード
#mysql サーバー IP とデータベース名
$dbhost = "localhost";
$dbname = "book ";
$dbuser = "admin";
$dbpass = "123456";
?>
------解決策-- - -----------------
関数 check_form は
に変更されます 関数 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>
パブリック静的関数のストリップスラッシュ($param) { if (is_array($param)) { foreach ($param as $k => $v) { $param[$k] = self::stripslashes($v); } $param を返します。 } それ以外 { ストリップスラッシュを返します($param); } <div class="clear"></div>