teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

エスケープする方法を追記

2017/01/27 06:30

投稿

kunai
kunai

スコア5405

answer CHANGED
@@ -3,4 +3,20 @@
3
3
  echo "no is ".$no;
4
4
  echo "_GET is ".var_export($_GET, true);
5
5
  ```
6
- とかして値が渡っているか見てみたらよいのでは。
6
+ とかして値が渡っているか見てみたらよいのでは。
7
+
8
+ 追記
9
+ クエリストリングから来た文字をそのままSQLクエリに使う事はセキュリティ上問題があるので、以下のような形ではどうでしょうか。
10
+
11
+ ```PHP
12
+ $no = urldecode($_GET["no"]);
13
+ $query = sprintf("SELECT COUNT(*) AS count FROM test
14
+ WHERE keyword='%s'",
15
+ mysql_real_escape_string($no));
16
+ $result = mysql_query($query);
17
+ ```
18
+
19
+ ※ただ、mysql_query等のmysql_系functionはPHP5.5.0で非推奨になっており、PHP7では使えません。
20
+ 出来ればmysqli_系functionを使われた方が、今後の為に良いかと思います。
21
+ http://php.net/manual/ja/function.mysql-query.php
22
+ http://php.net/manual/ja/mysqli.query.php