質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

2379閲覧

PHPの配列からシングルコーテーションを削除

ssk

総合スコア332

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/04/07 04:44

編集2017/04/07 04:49

formDataを利用してajaxでリクエストを投げています。

PHP

1//リクエスト先のPHPでformDataの値を受け取っています。 2$dal07s = filter_input(INPUT_POST, 'dal07s', FILTER_DEFAULT , FILTER_REQUIRE_ARRAY);

PHP

1$str = json_encode($dal07s); 2debug($str); 3 4//出力結果 5'["1,2,3,4"]'

"が入ることによって
SQLで検索する時に意図した結果を得ることができません。

①javascript側でシングルコーテーションを外す
②PHP側でシングルコーテーションを外す

いずれかの処理が必要かと思っています。

どのように実装するのがいいでしょうか?
※できれば②の方法だと助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/04/07 05:19

var_dump($dal07s) ではどのようになりますか?
guest

回答2

0

クオートがSQLクエリに影響を与えているということは、SQLインジェクションと呼ばれる大変危険なセキュリティホールができてしまっていると思われます。

できればちゃんとした本を買って勉強すべきですが、とりあえずは "プリペアドステートメント" で調べてみてください。

自身で特殊文字を取り除いたりエスケープすることは危険を伴うため、可能な限り避けてください。

投稿2017/04/07 05:21

編集2017/04/07 05:26
miyahan

総合スコア3095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssk

2017/04/09 02:57

ありがとうございます。 参考サイトのご提示、助かります。 今回はCakePHPでの実装だったため、あまり意識していませんでした。 しっかり目を通しておきます。
guest

0

ベストアンサー

受け取ったものに手を加えると整合性が合わないですが大丈夫ですか?
とはいえfilterで処理する方法としてはこんな感じ

PHP

1<form method="post"> 2<input type="text" name="dal07s[]" value="test1"> 3<input type="text" name="dal07s[]" value="test&amp;test"> 4<input type="text" name="dal07s[]" value="test&quot;test"> 5<input type="text" name="dal07s[]" value="test&#39;test"> 6<input type="submit" value="go"> 7</form> 8<?PHP 9$dal07s = filter_input(INPUT_POST, 'dal07s', FILTER_SANITIZE_STRING , ["flags"=>FILTER_REQUIRE_ARRAY]); 10print_r($dal07s); 11?>

※ちなみにポスト後にブラウザでソースを確認してください

投稿2017/04/07 06:00

編集2017/04/07 06:03
yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssk

2017/04/09 02:55

filterで処理する方法 を教えていただき、ありがとうございます。 こちらで対応することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問