入力フォームでデータ連携(SQL)する場合のシンプルな記述方法
-
いつもお世話になっております。
現在、色々な方からご指導頂き(http://ja.forums.wordpress.org/topic/11236?replies=6#post-40931)下記の動作を確認することができました。
本当にありがとうございます。- 入力ページを開いたとき、登録済みの内容を呼び出す
- 入力ページで内容を更新または新規登録できる
- 登録する内容は、ワードプレスとは別のデータベース(memberdb)テーブル(member)を使用する
現在、下記2つの内容が気になっています。
1.固定ページに記載する内容を最小限に抑える方法はありますか? (例えば、SQLが記載されているphpの内容は外部ファイルを呼び出すなど) 2.セキュリティ的に問題がありそうな点がありますか? (例えば、入力フォームにSQL文を直接記載してデータベースのデータを抜き取られるなど) ※自身でわかる範囲で対策を行ったつもりです。
もしあるようであれば、どのようにすればよいのかご指導頂けないでしょうか?
よろしくお願いします。<?php mysql_connect('localhost', 'root', '') or die(mysql_error()); mysql_select_db('memberdb'); mysql_query('SET NAMES UTF8'); $sql=sprintf("SELECT * FROM member WHERE user_id = %s",user_id); $recordSet = mysql_query($sql); $data = mysql_fetch_assoc($recordSet); ?> <form id="form" method="post" action='<?php echo get_permalink();?>'> <table> <label for="cname">名前*</label> <input type="text" id="cname" name="cname" value="<?php print(htmlspecialchars( $data['cname'], ENT_QUOTES )); ?>" /> <label for="user_id"></label> <input type="text" id="user_id" name="user_id" value="<?php print(htmlspecialchars( $data['user_id'], ENT_QUOTES )); ?>" /> <input type="submit" value="送信" /> </table> </form> <?php if($_POST['cname']){ mysql_connect('localhost', 'root', '') or die(mysql_error()); mysql_select_db('memberdb'); mysql_query('SET NAMES UTF8'); $sql2 = sprintf("INSERT INTO company VALUES ('$_POST[user_id]','$_POST[cname]') ON DUPLICATE KEY UPDATE cname = '$_POST[cname]'"); $recordSet = mysql_query($sql2); $data = mysql_fetch_assoc($recordSet); }; ?>
4件の返信を表示中 - 1 - 4件目 (全4件中)
4件の返信を表示中 - 1 - 4件目 (全4件中)
- トピック「入力フォームでデータ連携(SQL)する場合のシンプルな記述方法」には新たに返信することはできません。