PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 8
http://mevius.5ch.net/test/read.cgi/tech/1489506082/
次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
【PHP】下らねぇ質問はここに 9
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 538a-od5V)
2017/12/20(水) 18:00:20.28ID:1xaO/YRR0490デフォルトの名無しさん (ワッチョイ bbe9-hE18)
2018/08/16(木) 14:20:27.81ID:wpZ5Mbd20491デフォルトの名無しさん (オイコラミネオ MM0f-PVJR)
2018/08/16(木) 14:26:51.20ID:Z+yvFL8qM492デフォルトの名無しさん (ワッチョイ fbe9-dg8D)
2018/08/16(木) 15:05:20.08ID:47Wf5WpA0 永遠に噛み合わないんだな
493デフォルトの名無しさん (ワッチョイ ebb3-hE18)
2018/08/16(木) 15:34:33.46ID:IVwSm3Wy0 >>491
> 一番に検討しなくちゃいけないのは、外とのインタフェースをあちらこちらに書かず特定の機構に閉じ込めるということだろ。
このことはだれも否定していない。
> 閉じ込めた中で $_GET と filter_input のどちらを使うかなんてことは本質じゃなく、その時の都合でベストチョイスすればいいだけのこと。
こっちを、スーパーグローバル変数を使用するのはやめようぜ。って言ってる
自前実装だろうが、PHPの仕様だろうが、グローバルな変数ってだけで悪w
> グローバルはいけないんだなんて言ってみても、結局 >>475-476 でしょ。
だから、immutable 版がほしいね。って流れ
> 一番に検討しなくちゃいけないのは、外とのインタフェースをあちらこちらに書かず特定の機構に閉じ込めるということだろ。
このことはだれも否定していない。
> 閉じ込めた中で $_GET と filter_input のどちらを使うかなんてことは本質じゃなく、その時の都合でベストチョイスすればいいだけのこと。
こっちを、スーパーグローバル変数を使用するのはやめようぜ。って言ってる
自前実装だろうが、PHPの仕様だろうが、グローバルな変数ってだけで悪w
> グローバルはいけないんだなんて言ってみても、結局 >>475-476 でしょ。
だから、immutable 版がほしいね。って流れ
494デフォルトの名無しさん (ワッチョイ bbe9-hE18)
2018/08/16(木) 16:04:23.82ID:wpZ5Mbd20495デフォルトの名無しさん (オイコラミネオ MM0f-PVJR)
2018/08/16(木) 16:49:55.61ID:Z+yvFL8qM496デフォルトの名無しさん (ワッチョイ bbe9-hE18)
2018/08/16(木) 17:14:51.55ID:wpZ5Mbd20 来週の木曜0:00AMまではワッチョイ末尾4桁「hE18」はJaneStyle4.00をデフォの設定で使ってる人
すなわちUserAgentを現してる(毎週木曜リセット)
じゃぁどこ見て判断してるのかといえば「b3」で
大雑把に回線が同じHostなんだろうって事を確認して
あとは文体で判断してる(リセットされない)
プログラム板の人なんだからそれぐらいの法則性は自力で見つけて欲しいものだが…
すなわちUserAgentを現してる(毎週木曜リセット)
じゃぁどこ見て判断してるのかといえば「b3」で
大雑把に回線が同じHostなんだろうって事を確認して
あとは文体で判断してる(リセットされない)
プログラム板の人なんだからそれぐらいの法則性は自力で見つけて欲しいものだが…
497デフォルトの名無しさん (ワッチョイ bbe9-hE18)
2018/08/16(木) 17:19:27.02ID:wpZ5Mbd20 ちなみにこんなサービスもある
ttps://afi.click/browser/list/
プログラム板の住人なら
どうやればこのサービスを実現できるか
DB設計から考えてみたらいいんじゃないかな
ttps://afi.click/browser/list/
プログラム板の住人なら
どうやればこのサービスを実現できるか
DB設計から考えてみたらいいんじゃないかな
498デフォルトの名無しさん (オイコラミネオ MM0f-PVJR)
2018/08/16(木) 17:33:27.71ID:Z+yvFL8qM >>496
なるほどありがとう
なるほどありがとう
499デフォルトの名無しさん (ワッチョイ 0fe8-upR2)
2018/08/16(木) 19:24:56.49ID:w2Vsd24V0 他人に根拠希薄にプログラマー失格とか罵っときながらのオチがこれ
500デフォルトの名無しさん (スププ Sdbf-V6hB)
2018/08/16(木) 19:44:09.16ID:qFV5giwld 11レスもしながら出だしの>442の時点で間違ってるのは
オチとは言わず「ボケ」と言うんじゃないかと
たくさんのツッコミが貰えて本望だろう
オチとは言わず「ボケ」と言うんじゃないかと
たくさんのツッコミが貰えて本望だろう
501デフォルトの名無しさん (ワッチョイ ebb3-hE18)
2018/08/16(木) 20:11:17.99ID:IVwSm3Wy0 この話題の最初に書いたとおり、filter_input の使用に関して、スーパーグローバル回避のためって理由がググっても中々ヒットしない。
ある程度コードかけるようになると自明だし、フレームワーク使うようになると filter_input すら使う機会が少なくなるからだと思うけど、量産型初心者が全部 $_POST で育ってくるのでめんどいw
みんなどんどん素敵記事書いて、初心者に広報してくれんかねぇ。
ある程度コードかけるようになると自明だし、フレームワーク使うようになると filter_input すら使う機会が少なくなるからだと思うけど、量産型初心者が全部 $_POST で育ってくるのでめんどいw
みんなどんどん素敵記事書いて、初心者に広報してくれんかねぇ。
502デフォルトの名無しさん (ワッチョイ 6b95-8iSw)
2018/08/16(木) 20:24:00.00ID:S/g/TLeK0 グローバル変数を使わない方がいい理由が分からないって人ってやっばりPHPしか書けない人なのかな?
他の言語では常識な事だけに何が理解できないのかが理解できない
他の言語では常識な事だけに何が理解できないのかが理解できない
503デフォルトの名無しさん (スププ Sdbf-V6hB)
2018/08/16(木) 20:26:09.89ID:qFV5giwld ✕PHPしか書けない
◯PHPすら書けない
PHPerが馬鹿にされる理由がよく分かるよな
◯PHPすら書けない
PHPerが馬鹿にされる理由がよく分かるよな
504デフォルトの名無しさん (ワッチョイ ef17-xQfD)
2018/08/16(木) 20:51:12.43ID:0Ewq9KDZ0 メジャーなフレームワークのコードを読んでみたりはしないのだろうか
全部を確認したわけではないけど流石に$_GET $_POSTを直接ごにょごにょやってるFWは無いと思う
全部を確認したわけではないけど流石に$_GET $_POSTを直接ごにょごにょやってるFWは無いと思う
505デフォルトの名無しさん (ワッチョイ 6b95-8iSw)
2018/08/16(木) 21:00:30.27ID:S/g/TLeK0 ググってみるとteratailに質問してる初心者のやり取りを見つけたからurlを張っとく
https://teratail.com/questions/63786
501の言う量産型初心者が1人でも減ってくれることを願って。。。
https://teratail.com/questions/63786
501の言う量産型初心者が1人でも減ってくれることを願って。。。
506デフォルトの名無しさん (ワッチョイ ebb3-hE18)
2018/08/16(木) 21:21:55.14ID:IVwSm3Wy0507デフォルトの名無しさん (ワッチョイ efd5-PVJR)
2018/08/16(木) 23:22:50.51ID:IQGCIGud0 >>504
laravel 5.6.33 の新規プロジェクト作って grep してみたら、filter_input はヒットしなかったよ。
$_GET やら $_POST、$_SERVER なんかを使ってるコードはたくさんあるが、これが FW 本体なのかは知らないから見てるものが違うかもしれんが。
ついでに手元にあった古い cakephp のコードも grep してみたけど、やはり filter_input は使ってないようだね。
最新だとどうなのかは知らないけど。
どのフレームワークのコードを読んだの?
laravel 5.6.33 の新規プロジェクト作って grep してみたら、filter_input はヒットしなかったよ。
$_GET やら $_POST、$_SERVER なんかを使ってるコードはたくさんあるが、これが FW 本体なのかは知らないから見てるものが違うかもしれんが。
ついでに手元にあった古い cakephp のコードも grep してみたけど、やはり filter_input は使ってないようだね。
最新だとどうなのかは知らないけど。
どのフレームワークのコードを読んだの?
508デフォルトの名無しさん (オイコラミネオ MM0f-B6o8)
2018/08/17(金) 09:37:21.95ID:D+gu2djOM なんで使ってないんだろうな
さすがに何らかの理由があるはずだよな
さすがに何らかの理由があるはずだよな
509デフォルトの名無しさん (ワッチョイ efd5-PVJR)
2018/08/17(金) 10:55:31.64ID:FbY5sXOm0 その辺はいろいろなFWのコードを読んだ >>504 がまず解説してくれると思うけど、
>>493 によればグローバルな変数ってだけで悪らしいし、それについての否定コメントも無いことを見れば共通認識なんだろうから、
この流れから言えば量産型初心者が作ってるってことなんじゃない。
スパーグローバルの差し替えなんて密結合(?)な行儀の悪いこともしてるようだから、ゴミがメジャーになった悲劇的なケースなんだろうかね。
おれはそうは思わないけど。
filter_input は多重配列に弱いし $_GET や $_POST も含めて同じパラメタ名が重複することに気付けなかったりするので必要に応じて自前で QUERY_STRING やら STDIN を読む選択もあるだろうと思ってるから、
FW の利用を含めておれはその時一番都合のいい方法を選択するから気楽なもんだ。
選択肢を絞ることを徹底するというのも品質管理の手法の一つとしてあると思ってるけどね。
何にしても解説を待ちたいね。
>>493 によればグローバルな変数ってだけで悪らしいし、それについての否定コメントも無いことを見れば共通認識なんだろうから、
この流れから言えば量産型初心者が作ってるってことなんじゃない。
スパーグローバルの差し替えなんて密結合(?)な行儀の悪いこともしてるようだから、ゴミがメジャーになった悲劇的なケースなんだろうかね。
おれはそうは思わないけど。
filter_input は多重配列に弱いし $_GET や $_POST も含めて同じパラメタ名が重複することに気付けなかったりするので必要に応じて自前で QUERY_STRING やら STDIN を読む選択もあるだろうと思ってるから、
FW の利用を含めておれはその時一番都合のいい方法を選択するから気楽なもんだ。
選択肢を絞ることを徹底するというのも品質管理の手法の一つとしてあると思ってるけどね。
何にしても解説を待ちたいね。
510デフォルトの名無しさん (ワッチョイ abdb-mZ3i)
2018/08/17(金) 11:20:01.64ID:BAgYE8OH0 グローバル変数とユニットテストについて質問です。
ユニットテストで、NULLバイトチェックのため、$_GETにユーザー入力値(ヌルバイト¥0)を
直接代入してテストしていますが、これはまずいのでしょうか?
public function test_checkNullbyte()
{
$_GET['nullbyte'] = "abc\0xyz";
$this->object->checkNullbyte();
}
ユニットテストで、NULLバイトチェックのため、$_GETにユーザー入力値(ヌルバイト¥0)を
直接代入してテストしていますが、これはまずいのでしょうか?
public function test_checkNullbyte()
{
$_GET['nullbyte'] = "abc\0xyz";
$this->object->checkNullbyte();
}
511デフォルトの名無しさん (ワッチョイ efd5-PVJR)
2018/08/17(金) 12:03:44.89ID:FbY5sXOm0 >>510
そのチェックメソッドが $_GET を参照する作りになってるならいいと思うよ。
そのチェックメソッドが $_GET を参照する作りになってるならいいと思うよ。
512デフォルトの名無しさん (ワッチョイ abdb-mZ3i)
2018/08/17(金) 13:11:10.69ID:BAgYE8OH0513デフォルトの名無しさん (ワッチョイ 9fd0-QxOT)
2018/08/18(土) 15:56:58.30ID:2Bt8PW+v0 JavaScriptを使わず、PHPだけでフォームの戻るボタンって作れるんですか !?
514デフォルトの名無しさん (ワッチョイ 0f81-ipLS)
2018/08/18(土) 16:58:29.16ID:gititOy10 >>513
JavaScriptを使わずと言うことは
<input type="button" value="戻る" onclick="history.back()">
こういうのもだめってことかな?
JavaScriptを使わずと言うことは
<input type="button" value="戻る" onclick="history.back()">
こういうのもだめってことかな?
515513 (ワッチョイ 9fd0-QxOT)
2018/08/18(土) 17:14:55.37ID:2Bt8PW+v0516デフォルトの名無しさん (ワッチョイ 0f81-ipLS)
2018/08/18(土) 17:34:08.27ID:gititOy10 安易だが
ブラウザから返してくる、$_SERVER['HTTP_REFERER']の値を信じて、そこに送り返してあげる
(セットしないブラウザもあるし、嘘も書けるので、オススメはしない)
面倒だが
自分のサイトだけで遷移しているなら、直前のURLをセッションに持たせ、それを参照して戻す
(入力フォームで行ったり来たりする場合は、入力しかけのフォームの値も保持しないと行けなくなる
こういう場合、相当面倒な処理を書かないと行けないと思うが、仕方ないね?)
ブラウザから返してくる、$_SERVER['HTTP_REFERER']の値を信じて、そこに送り返してあげる
(セットしないブラウザもあるし、嘘も書けるので、オススメはしない)
面倒だが
自分のサイトだけで遷移しているなら、直前のURLをセッションに持たせ、それを参照して戻す
(入力フォームで行ったり来たりする場合は、入力しかけのフォームの値も保持しないと行けなくなる
こういう場合、相当面倒な処理を書かないと行けないと思うが、仕方ないね?)
517デフォルトの名無しさん (ワッチョイ 0f81-ipLS)
2018/08/18(土) 17:38:53.55ID:gititOy10 あるいは
フォームでPOSTする要領で直前のURLに遷移すると言う方法もある
その場合はサーバー側で次画面に遷移する際に、
現在の場所をフォームに埋め込む形で出来る
フォームでPOSTする要領で直前のURLに遷移すると言う方法もある
その場合はサーバー側で次画面に遷移する際に、
現在の場所をフォームに埋め込む形で出来る
518513 (ワッチョイ 9fd0-QxOT)
2018/08/18(土) 17:38:54.09ID:2Bt8PW+v0519デフォルトの名無しさん (ワッチョイ 7b7c-mZ3i)
2018/08/18(土) 18:39:50.05ID:6yCMBjdI0 >>508
$_REQUESTとかってwww-form〜専用だろ。
$_REQUESTとかってwww-form〜専用だろ。
520デフォルトの名無しさん (オイコラミネオ MM0f-PVJR)
2018/08/18(土) 19:33:02.59ID:L6WoALkwM >>513
よくあるフォームで、入力➡確認➡完了 みたいな流れの中で 確認から入力に戻るような話?
よくあるフォームで、入力➡確認➡完了 みたいな流れの中で 確認から入力に戻るような話?
521513 (ワッチョイ 9fd0-Mwiu)
2018/08/20(月) 14:51:18.69ID:/k2xBvnt0522デフォルトの名無しさん (ワッチョイ efd5-PVJR)
2018/08/20(月) 16:35:49.23ID:aXzcMKFL0 >>521
そういう遷移ならもっとシンプルに考えた方がいいんじゃね。
submit ボタンに name を設定しておけば、送信時に押されたボタンが分かるよ。
>>520 のような全部の画面は例えば form.php で処理させ、押されたボタンによって画面を出し分けるなんてのが簡単じゃないかな。
確認画面には例えば <button type="submit" name="act" value="back">戻る</button> と <button type="submit" name="act" value="send">送信</button> 置いておく感じ。
入力画面には <button type="submit" name="act" value="check">確認</button> とか。
すると form.php はこんな感じ。
$act=filter_input(INPUT_POST, 'act');
$view=入力画面;
入力値の取得とバリデーション;
if(エラー無し) {
if($act==='check') {
$view=確認画面;
}
elsif($act==='send') {
登録処理;
if(成功) {
$view=完了画面;
}
}
}
$view 表示;
セッション使ってないから、確認画面には入力値を hidden で埋めておく。
入力画面ではエラーメッセージの表示も行う感じ。
そういう遷移ならもっとシンプルに考えた方がいいんじゃね。
submit ボタンに name を設定しておけば、送信時に押されたボタンが分かるよ。
>>520 のような全部の画面は例えば form.php で処理させ、押されたボタンによって画面を出し分けるなんてのが簡単じゃないかな。
確認画面には例えば <button type="submit" name="act" value="back">戻る</button> と <button type="submit" name="act" value="send">送信</button> 置いておく感じ。
入力画面には <button type="submit" name="act" value="check">確認</button> とか。
すると form.php はこんな感じ。
$act=filter_input(INPUT_POST, 'act');
$view=入力画面;
入力値の取得とバリデーション;
if(エラー無し) {
if($act==='check') {
$view=確認画面;
}
elsif($act==='send') {
登録処理;
if(成功) {
$view=完了画面;
}
}
}
$view 表示;
セッション使ってないから、確認画面には入力値を hidden で埋めておく。
入力画面ではエラーメッセージの表示も行う感じ。
523デフォルトの名無しさん (ワッチョイ efd5-PVJR)
2018/08/20(月) 16:45:12.31ID:aXzcMKFL0524513 (ワッチョイ 9fd0-Mwiu)
2018/08/20(月) 17:48:24.04ID:/k2xBvnt0525デフォルトの名無しさん (ワッチョイ 0fb8-O+0A)
2018/08/21(火) 06:38:40.38ID:xkZA2QwA0 hiddenが危険という言葉を鵜呑みにする必要はない
用途による
メールフォームの確認程度なら別にhiddenでいい
そんなの改ざんする意味もなければされたところで問題ないし
最終的に受け取ったデータを通すかはPHPが判断すればいいこと
用途による
メールフォームの確認程度なら別にhiddenでいい
そんなの改ざんする意味もなければされたところで問題ないし
最終的に受け取ったデータを通すかはPHPが判断すればいいこと
526デフォルトの名無しさん (ワッチョイ db8a-Fz0V)
2018/08/21(火) 12:56:33.44ID:RbDl1jHe0 hiddenに限らずチェックはしないとね
さもないと、支払もすんでいない商品を買ったことにされたり
ログイン認証済んでいないのに、内部に入り込まれたりするから
さもないと、支払もすんでいない商品を買ったことにされたり
ログイン認証済んでいないのに、内部に入り込まれたりするから
527デフォルトの名無しさん (ワッチョイ 1fe7-QxOT)
2018/08/22(水) 05:59:35.69ID:sXSBMfza0 質問投下です。
PHP 2chBBSをphp7.0のサーバーにアップして色々と対応させるよう書き換えましたが、これだけが分かりません。
abon.php,92行目あたり
$line = preg_replace("!<a href=\"\.\./test/read\.php/$_POST[bbs]/$_POST[key]/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!e",
"'<a href=\"../test/read.php/$_POST[bbs]/$_POST[key]/'.res_num('$1',$del).'\" target=\"_blank\">>>'.res_num('$2',$del).'</a>'", $line);
php7ではpreg_replaceのe修飾子が廃止されており、preg_replace_callbackを使う事に
なっているようですが、ググってみても、どのように置き換えれば良いのか分かりません。
お知恵をお借りできれば助かります。よろしくお願いします。
PHP 2chBBSをphp7.0のサーバーにアップして色々と対応させるよう書き換えましたが、これだけが分かりません。
abon.php,92行目あたり
$line = preg_replace("!<a href=\"\.\./test/read\.php/$_POST[bbs]/$_POST[key]/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!e",
"'<a href=\"../test/read.php/$_POST[bbs]/$_POST[key]/'.res_num('$1',$del).'\" target=\"_blank\">>>'.res_num('$2',$del).'</a>'", $line);
php7ではpreg_replaceのe修飾子が廃止されており、preg_replace_callbackを使う事に
なっているようですが、ググってみても、どのように置き換えれば良いのか分かりません。
お知恵をお借りできれば助かります。よろしくお願いします。
528デフォルトの名無しさん (ワッチョイ cb65-ipLS)
2018/08/22(水) 07:23:29.30ID:XDj/gPFz0 その部分だけ見ててもすげーやべーコードなのが分かるから手直し以前にゼロから作り直した方がいいよ
つか調べたら最終更新2005年(13年前)でかつこのコードとか本格的にやべーのでもっと新しくてまともなもの探さなきゃダメだよ
つか調べたら最終更新2005年(13年前)でかつこのコードとか本格的にやべーのでもっと新しくてまともなもの探さなきゃダメだよ
529デフォルトの名無しさん (ワッチョイ ef9f-vvAx)
2018/08/22(水) 07:44:33.35ID:PHQZkUhf0 スーパーグローバルのチェックはしてあるんだと思うよ。流石に…w
530527 (ワンミングク MMbf-ycnR)
2018/08/22(水) 08:17:00.54ID:2cdwFvgEM >>528
レスありがとうございます。
これ、ちまちまと手直しして使っておりまして。
このコードは管理機能内の記事削除部分で、管理者しか使えないですし、
第三者が入れないよう認証かけてるのでセキュリティーは多分大丈夫だと思います。
取りあえず使えるようにしたいので手直し出来るのであれば教えて欲しいです。
あと、どういう点がやばいのかご教示いただければ勉強出来るので非常に助かります。
レスありがとうございます。
これ、ちまちまと手直しして使っておりまして。
このコードは管理機能内の記事削除部分で、管理者しか使えないですし、
第三者が入れないよう認証かけてるのでセキュリティーは多分大丈夫だと思います。
取りあえず使えるようにしたいので手直し出来るのであれば教えて欲しいです。
あと、どういう点がやばいのかご教示いただければ勉強出来るので非常に助かります。
531デフォルトの名無しさん (ワッチョイ ef9f-vvAx)
2018/08/22(水) 08:40:59.95ID:PHQZkUhf0 だから、$_POSTをいきなり正規表現の処理に入れてるところがヤバイって言いたいんだと思う。
bbsやkeyに悪意のあるコードを入れてられても、そのままノーチェックで処理を継続していたらヤバイ。
仮にチェック済だとしても、スーパーグローバルを使ってると頭悪そうにみえるしな。
bbsやkeyに悪意のあるコードを入れてられても、そのままノーチェックで処理を継続していたらヤバイ。
仮にチェック済だとしても、スーパーグローバルを使ってると頭悪そうにみえるしな。
532デフォルトの名無しさん (ワッチョイ 0b5b-hE18)
2018/08/22(水) 10:16:38.53ID:mlQDc+9J0 >>527
$line = preg_replace_callback(
"!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!",
'callback_hoge', $line);
function callback_hoge($matches)
{
return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $del). '\" target=\"_blank\">>>' . res_num($matches[2], $del) . '</a>';
}
クロージャ使って書くなら
$line = preg_replace_callback(
"!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!",
function ($matches) {
return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $del). '\" target=\"_blank\">>>' . res_num($matches[2], $del) . '</a>';
},
$line
);
半角スペース2個を全角スペースにして書いてるので注意
$line = preg_replace_callback(
"!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!",
'callback_hoge', $line);
function callback_hoge($matches)
{
return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $del). '\" target=\"_blank\">>>' . res_num($matches[2], $del) . '</a>';
}
クロージャ使って書くなら
$line = preg_replace_callback(
"!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!",
function ($matches) {
return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $del). '\" target=\"_blank\">>>' . res_num($matches[2], $del) . '</a>';
},
$line
);
半角スペース2個を全角スペースにして書いてるので注意
533デフォルトの名無しさん (ワッチョイ 0b5b-hE18)
2018/08/22(水) 10:25:32.15ID:mlQDc+9J0 【補足】
他の人も書いてるけど
たった1行のコードから色々とヤバさが伝わってくる代物なので
他の代替手段を使うことを強くおすすめ
少なくとも $_POST[bbs] じゃなく {$_POST['bbs']}
>>530
JVNにXSSの脆弱性がある事が報告されてる
https://jvn.jp/jp/JVN48774168/index.html
コードをざっと斜め読みしたけど他にも色々と駄目すぎてどこから手を入れるべきかアドバイスできないレベルで酷い
2005年のコードでもきちんと書いてればPHP7でも大体問題なく動くものだけど
このコードだと他にも色々と問題が出ると思う
他の人も書いてるけど
たった1行のコードから色々とヤバさが伝わってくる代物なので
他の代替手段を使うことを強くおすすめ
少なくとも $_POST[bbs] じゃなく {$_POST['bbs']}
>>530
JVNにXSSの脆弱性がある事が報告されてる
https://jvn.jp/jp/JVN48774168/index.html
コードをざっと斜め読みしたけど他にも色々と駄目すぎてどこから手を入れるべきかアドバイスできないレベルで酷い
2005年のコードでもきちんと書いてればPHP7でも大体問題なく動くものだけど
このコードだと他にも色々と問題が出ると思う
534デフォルトの名無しさん (ワッチョイ 0b5b-hE18)
2018/08/22(水) 10:32:57.26ID:mlQDc+9J0 >>532訂正
$delって変数があるの見落としてた
$line = preg_replace_callback(
"!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!",
'callback_hoge', $line);
function callback_hoge($matches)
{
return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $GLOBALS['del']). '\" target=\"_blank\">>>' . res_num($matches[2], $del) . '</a>';
}
クロージャ使うなら
$line = preg_replace_callback(
"!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!",
function ($matches) use ($del) {
return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $del). '\" target=\"_blank\">>>' . res_num($matches[2], $del) . '</a>';
},
$line
);
$delって変数があるの見落としてた
$line = preg_replace_callback(
"!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!",
'callback_hoge', $line);
function callback_hoge($matches)
{
return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $GLOBALS['del']). '\" target=\"_blank\">>>' . res_num($matches[2], $del) . '</a>';
}
クロージャ使うなら
$line = preg_replace_callback(
"!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">>>([\d|\-]+)</a>!",
function ($matches) use ($del) {
return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $del). '\" target=\"_blank\">>>' . res_num($matches[2], $del) . '</a>';
},
$line
);
535デフォルトの名無しさん (ワッチョイ 0fb8-O+0A)
2018/08/22(水) 10:41:30.78ID:jQIraJCs0 エラーを無視するような感じのエラー処理が適当なコードだから
セキュリティもそれなりなのだろうというのが容易に想像出来るんだわ
なんせPHP4時代のコードだし今ほどそのへん考慮されてないからねえ
セキュリティもそれなりなのだろうというのが容易に想像出来るんだわ
なんせPHP4時代のコードだし今ほどそのへん考慮されてないからねえ
536デフォルトの名無しさん (ワッチョイ 0b5b-hE18)
2018/08/22(水) 10:41:35.61ID:mlQDc+9J0 >>529
コード内に出てくる $_POST[bbs](本当は $_POST['bbs'] だが)は
まともにチェックされてないっぽい
unlink("../$_POST[bbs]/...");
みたいなコードが散見されるから
NULLバイト攻撃も素通りだと思う
ヤバすぎ
コード内に出てくる $_POST[bbs](本当は $_POST['bbs'] だが)は
まともにチェックされてないっぽい
unlink("../$_POST[bbs]/...");
みたいなコードが散見されるから
NULLバイト攻撃も素通りだと思う
ヤバすぎ
537デフォルトの名無しさん (オイコラミネオ MM3f-PVJR)
2018/08/22(水) 10:52:29.28ID:OKO5mG4BM538デフォルトの名無しさん (ワッチョイ ef9f-vvAx)
2018/08/22(水) 10:56:49.46ID:PHQZkUhf0539デフォルトの名無しさん (ワッチョイ cb65-ipLS)
2018/08/22(水) 10:58:38.85ID:XDj/gPFz0 OSに処理投げる形式のファイルシステム関数についてはnulバイト攻撃はPHP側で対策されてはいる
https://github.com/php/php-src/blob/master/ext/standard/file.c#L1510
https://github.com/php/php-src/blob/master/Zend/zend_API.h#L1011
が, 何れにせよ救いがたいコードで, 管理者しか使えないから問題ないという発想も正直ヤバい
この状態から>>527の質問のレベルで更にツギハギで直してるっていうんだからセキュリティに関しては想像もしたくないというのが正直なところ
https://github.com/php/php-src/blob/master/ext/standard/file.c#L1510
https://github.com/php/php-src/blob/master/Zend/zend_API.h#L1011
が, 何れにせよ救いがたいコードで, 管理者しか使えないから問題ないという発想も正直ヤバい
この状態から>>527の質問のレベルで更にツギハギで直してるっていうんだからセキュリティに関しては想像もしたくないというのが正直なところ
540デフォルトの名無しさん (ワッチョイ cb65-ipLS)
2018/08/22(水) 11:04:53.85ID:XDj/gPFz0 敢えて繰り返すけど, もっと新しくてまともなもの探さなきゃダメだよ
そうするのがベターなんじゃなくて, そうしなきゃダメ, SHOULDじゃなくてMUSTだよ
そうするのがベターなんじゃなくて, そうしなきゃダメ, SHOULDじゃなくてMUSTだよ
541デフォルトの名無しさん (ワッチョイ 0b5b-hE18)
2018/08/22(水) 11:08:19.17ID:mlQDc+9J0 >>539
かなり昔に対策されたんだな
知らなかったサンクス
$_POST[bbs]でコード内を検索したら
unlink("../$_POST[bbs]/dat/$_POST[key].dat");
こんなコードが出てきたんでびっくりして脊髄反射してしまったww
かなり昔に対策されたんだな
知らなかったサンクス
$_POST[bbs]でコード内を検索したら
unlink("../$_POST[bbs]/dat/$_POST[key].dat");
こんなコードが出てきたんでびっくりして脊髄反射してしまったww
542デフォルトの名無しさん (ワッチョイ cb65-ipLS)
2018/08/22(水) 11:35:44.27ID:XDj/gPFz0 ついでに正規表現パターンにPOSTデータ突っ込むのがどうしても我慢ならなかったから直してみた
$line = preg_replace_callback(
'!<a href="\.\./test/read\.php/(?<bbs>[^/]+)/(?<key>[^/]+)/(?<num>[\d|\-]+)" target="_blank">>>\k<num></a>!',
function ($matches) use ($del) {
$bbs = filter_input(INPUT_POST, 'bbs');
$key = filter_input(INPUT_POST, 'key');
if ($matches['bbs'] !== $bbs || $matches['key'] !== $key) {
return $matches[0];
}
return '<a href="../test/read.php/'.$bbs.'/'.$key.'/'.res_num($matches['num'], $del).'" target="_blank">>>'.res_num($matches['num'], $del).'</a>';
},
$line
);
$line = preg_replace_callback(
'!<a href="\.\./test/read\.php/(?<bbs>[^/]+)/(?<key>[^/]+)/(?<num>[\d|\-]+)" target="_blank">>>\k<num></a>!',
function ($matches) use ($del) {
$bbs = filter_input(INPUT_POST, 'bbs');
$key = filter_input(INPUT_POST, 'key');
if ($matches['bbs'] !== $bbs || $matches['key'] !== $key) {
return $matches[0];
}
return '<a href="../test/read.php/'.$bbs.'/'.$key.'/'.res_num($matches['num'], $del).'" target="_blank">>>'.res_num($matches['num'], $del).'</a>';
},
$line
);
543デフォルトの名無しさん (ワッチョイ 0b98-IWHs)
2018/08/22(水) 11:58:13.96ID:nWdToOU90 Interface用のファイルって基本的にどこに置けばいいの?
それを継承するクラス群と同じディレクトリなのか、
もしくは最初から一箇所(例えばMyApp\Contract等)にまとめていいのか
それを継承するクラス群と同じディレクトリなのか、
もしくは最初から一箇所(例えばMyApp\Contract等)にまとめていいのか
544527 (ワンミングク MMbf-ycnR)
2018/08/22(水) 12:28:34.49ID:2cdwFvgEM >>532
手直し、ありがとうございます。
勉強させてもらいます。
件の掲示板ですが、社内LANで運用されておりまして、前任者より引き継いだものです。
設置はさらに前の前任者(退職)が行ったようです。
お察しの通り、phpのスキルはそれ程高くはありません。
移行を検討するよう進言してみます。
ありがとうございました。
手直し、ありがとうございます。
勉強させてもらいます。
件の掲示板ですが、社内LANで運用されておりまして、前任者より引き継いだものです。
設置はさらに前の前任者(退職)が行ったようです。
お察しの通り、phpのスキルはそれ程高くはありません。
移行を検討するよう進言してみます。
ありがとうございました。
545デフォルトの名無しさん (ワッチョイ ef9f-vvAx)
2018/08/22(水) 13:23:13.49ID:PHQZkUhf0 社内でしかも管理者限定なら急ぐことはないか…
でもコードの品質全てが問題ありそうだから、仲間内で注意喚起はした方がいいな。
JVNで周知されてるのも良い理由になると思う。
でもコードの品質全てが問題ありそうだから、仲間内で注意喚起はした方がいいな。
JVNで周知されてるのも良い理由になると思う。
546デフォルトの名無しさん (ワッチョイ 0b5b-hE18)
2018/08/22(水) 13:39:41.75ID:mlQDc+9J0547デフォルトの名無しさん (ワッチョイ 9fd0-Mwiu)
2018/08/22(水) 15:37:33.16ID:bZebMi5p0 メールヘッダーインジェクションって現バージョンのPHPではどうなんですか?
mail()やmb_send_mail()で対策されたとネット上で見かけたのですが(´・ω・`)
mail()やmb_send_mail()で対策されたとネット上で見かけたのですが(´・ω・`)
548デフォルトの名無しさん (ワッチョイ 0b5b-hE18)
2018/08/22(水) 18:00:41.89ID:mlQDc+9J0 >>547
英語版のPHPマニュアルの改変履歴追ってみると7.2.0での対応で一段落って感じだけど
日本語版には書かれてないな
NULLバイトや改行コードを悪用したインジェクションなら
mail()やmb_send_mail()に渡すデータをバリデーションしてたら7.2.0未満でも問題ない筈だが
英語版のPHPマニュアルの改変履歴追ってみると7.2.0での対応で一段落って感じだけど
日本語版には書かれてないな
NULLバイトや改行コードを悪用したインジェクションなら
mail()やmb_send_mail()に渡すデータをバリデーションしてたら7.2.0未満でも問題ない筈だが
549デフォルトの名無しさん (ワッチョイ 9e9f-bqhm)
2018/08/23(木) 11:42:53.96ID:4kav5HXR0 ttps://blog.ohgaki.net/php-mail-header-injection
550デフォルトの名無しさん (ワッチョイ a5b8-EM0A)
2018/08/25(土) 11:28:42.39ID:9SggU+bE0 例外を投げるとき、Exceptionを投げるのは良くないのでしょうか?
Exception は、すべての例外の基底クラスだからユーザーが投げるのは
良くないという記事を以前に何かで見たので気になります。
ただ、PHPマニュアルでは、普通にExceptionを投げる例が載ってます。
http://php.net/manual/ja/language.exceptions.php
<?php
function inverse($x) {
if (!$x) {
throw new Exception('ゼロによる除算。');
}
return 1/$x;
}
Exception は、すべての例外の基底クラスだからユーザーが投げるのは
良くないという記事を以前に何かで見たので気になります。
ただ、PHPマニュアルでは、普通にExceptionを投げる例が載ってます。
http://php.net/manual/ja/language.exceptions.php
<?php
function inverse($x) {
if (!$x) {
throw new Exception('ゼロによる除算。');
}
return 1/$x;
}
551デフォルトの名無しさん (ワッチョイ ed65-PcWx)
2018/08/25(土) 11:34:28.91ID:804l9SKu0 要するにcatchしたいときにExceptionやらThrowableとするしかなくて, 少なくとも例外は全部漏れなく捕捉してしまうのが問題なわけだ
552デフォルトの名無しさん (ワッチョイ a5b8-EM0A)
2018/08/25(土) 11:45:15.82ID:9SggU+bE0553デフォルトの名無しさん (ワッチョイ 2ad0-wF79)
2018/08/25(土) 14:02:12.59ID:Qb+EA1ap0 最近話題になってたfilter_inputみたいに$_POSTを取得する関数って他にもあるんですか?
http://php.net/manual/ja/ref.filter.php
http://php.net/manual/ja/ref.filter.php
554デフォルトの名無しさん (ワッチョイ 5ed5-ISgX)
2018/08/25(土) 14:31:15.65ID:C8WKBJJ50 >>553
それは $_POST を取ってるわけじゃない。
POSTされたデータを取る手段として $_POST と filter_input がある。
他の標準的な手段として用意されてるものは無いと思うけど、リクエストを自分で処理するという手段はある。
それは $_POST を取ってるわけじゃない。
POSTされたデータを取る手段として $_POST と filter_input がある。
他の標準的な手段として用意されてるものは無いと思うけど、リクエストを自分で処理するという手段はある。
555デフォルトの名無しさん (ワッチョイ 2ad0-wF79)
2018/08/25(土) 15:51:20.36ID:Qb+EA1ap0556デフォルトの名無しさん (アウアウイー Safd-q5ug)
2018/08/25(土) 17:23:47.40ID:/TUnCr22a php://input
557デフォルトの名無しさん (ワッチョイ 2ad0-wF79)
2018/08/26(日) 18:28:50.81ID:TIzdp5nG0 FILTER_SANITIZE_FULL_SPECIAL_CHARS?
htmlspecialchars?
あばばばば(´・ω・`)
htmlspecialchars?
あばばばば(´・ω・`)
558デフォルトの名無しさん (ワッチョイ 9e9f-bqhm)
2018/08/27(月) 00:57:59.28ID:LDnza5oi0 前者は使わなくてもいい。
後者は画面に出すときに必須
後者は画面に出すときに必須
559デフォルトの名無しさん (ワッチョイ 2ad0-wF79)
2018/08/27(月) 15:45:55.66ID:BWUwoBqV0 mail関数で文字化けするのはどういった状況なんだろうか
560デフォルトの名無しさん (ワッチョイ 6681-PcWx)
2018/08/27(月) 15:53:58.45ID:TsaU1TVW0 エンコード関連の設定が間違えているって書いても、
そのくらいは知っているって言われそうだしなあ
そのくらいは知っているって言われそうだしなあ
561デフォルトの名無しさん (ワッチョイ 2ad0-wF79)
2018/08/27(月) 17:28:58.93ID:BWUwoBqV0 PHPを初めて間もないので知らなかったです(´・ω・`)
文字化けが自分で作った環境が原因でおこるのか、
ユーザーの環境によっておこるのか、
それすらも現在進行形で勉強中です。
文字化けが自分で作った環境が原因でおこるのか、
ユーザーの環境によっておこるのか、
それすらも現在進行形で勉強中です。
562デフォルトの名無しさん (ワッチョイ 9e9f-bqhm)
2018/08/28(火) 09:51:44.23ID:Bhr6KAhH0 今時はメールもutf-8にしちゃう方が良い?
サイズはともかく。
サイズはともかく。
563デフォルトの名無しさん (ワッチョイ 5ed5-ISgX)
2018/08/28(火) 10:03:40.00ID:eY+qymJM0 JIS だと扱えない文字が結構あって面倒なんだよね。
氏名を埋め込もうとするだけでもすぐ問題が起こる。
個人的には結構保守的なんで極力 JIS にしたいが、utf8 も仕方ないかなと思うこともある。
氏名を埋め込もうとするだけでもすぐ問題が起こる。
個人的には結構保守的なんで極力 JIS にしたいが、utf8 も仕方ないかなと思うこともある。
564デフォルトの名無しさん (ワッチョイ 9e9f-bqhm)
2018/08/28(火) 12:43:02.68ID:Bhr6KAhH0565559 (ワッチョイ 2ad0-wF79)
2018/08/28(火) 15:49:05.60ID:hBn2GmOT0566デフォルトの名無しさん (ワッチョイ 9e9f-bqhm)
2018/08/28(火) 18:24:33.50ID:Bhr6KAhH0 どちらかと言えば、送信したサーバー側にあると思うよ。
ヘッダをMIMEエンコードしてないとか、
本文をJISと宣言しておいてSJISとか良く見る。
作る側が理解してない。
それを受信すらメールソフトが何とか正しく表示しようと努力して、
それでもダメだった場合に化ける。
あと稀に、ソースからしてそもそも化けてるという
バカが書いたメールもあるw
ヘッダをMIMEエンコードしてないとか、
本文をJISと宣言しておいてSJISとか良く見る。
作る側が理解してない。
それを受信すらメールソフトが何とか正しく表示しようと努力して、
それでもダメだった場合に化ける。
あと稀に、ソースからしてそもそも化けてるという
バカが書いたメールもあるw
567デフォルトの名無しさん (ワッチョイ 6681-PcWx)
2018/08/28(火) 18:32:36.85ID:lp3F9A9k0568デフォルトの名無しさん (ワッチョイ 6681-PcWx)
2018/08/28(火) 18:32:58.74ID:lp3F9A9k0 字化けした
ごめんw
ごめんw
569デフォルトの名無しさん (ワッチョイ ed8a-vl9i)
2018/08/28(火) 20:03:27.33ID:ZdacH0nd0 >>568
も抜け・・・
も抜け・・・
570565 (ワッチョイ 2ad0-wF79)
2018/08/29(水) 16:28:12.93ID:Fy8w4QmX0571デフォルトの名無しさん (ワッチョイ bd5b-vl9i)
2018/08/29(水) 16:47:55.26ID:pmPs3x9R0 >>570
メンテナンス性を考慮すれば定数で定義しとく方が好ましい
”ハードコーディング”でググるんだ
あとPHP5.3未満だという理由でもない限りは
定数の定義はdefine()じゃなくconstでいい
define()にしかできない事をやる時だけdefine()を使う
…というかdefine()にしかできないような定数の定義の仕方は
しない方がいいというか
メンテナンス性を考慮すれば定数で定義しとく方が好ましい
”ハードコーディング”でググるんだ
あとPHP5.3未満だという理由でもない限りは
定数の定義はdefine()じゃなくconstでいい
define()にしかできない事をやる時だけdefine()を使う
…というかdefine()にしかできないような定数の定義の仕方は
しない方がいいというか
572デフォルトの名無しさん (ワッチョイ 9e9f-bqhm)
2018/08/29(水) 17:14:13.88ID:oFL8fPjK0573570 (ワッチョイ 2ad0-wF79)
2018/08/29(水) 18:04:53.37ID:Fy8w4QmX0574デフォルトの名無しさん (ワッチョイ a3d0-J7KC)
2018/08/30(木) 19:30:03.21ID:GwaNatXn0 >>570の$toって直書きすると外部から参照されたりするん?
そこらへん うちも勉強不足だわ
そこらへん うちも勉強不足だわ
575デフォルトの名無しさん (ワッチョイ 0b81-tpL7)
2018/08/30(木) 19:32:18.17ID:Ut/QgXMd0 外部からってどういう意味?
宛先見せないと配達できないでしょ?
そういうことじゃなくて?
宛先見せないと配達できないでしょ?
そういうことじゃなくて?
576デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/08/30(木) 19:44:52.34ID:EWk4rtO80 web公開ディレクトリに置かないのが基本なんだよ。
hdocs/index.html
lib/php/config.ini
hdocs/index.html
lib/php/config.ini
577デフォルトの名無しさん (オイコラミネオ MM21-SMhC)
2018/08/30(木) 20:10:41.63ID:b1WMdnEwM 共用のレンタルサーバーだと、
Permissionを0604にするのもありだな。
最初の0は気にしない。
次の6は自分の読み書き権限
次の0は同居してるユーザーに権限剥奪
最後の4はApacheに読み取り権限
Permissionを0604にするのもありだな。
最初の0は気にしない。
次の6は自分の読み書き権限
次の0は同居してるユーザーに権限剥奪
最後の4はApacheに読み取り権限
578デフォルトの名無しさん (ワッチョイ 0b81-tpL7)
2018/08/30(木) 20:37:32.95ID:Ut/QgXMd0579デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/08/30(木) 20:58:13.62ID:EWk4rtO80 ほとんどの共用レンタルサーバーは、
webユーザーは同一グループに所属するから、
xx0xで引っ掛けて拒否させるんだよ。
最後の4は付けないとApacheが読めない。
https://www.xserver.ne.jp/manual/man_server_permission.php
グループ設計がどうなってるかとか、
PHPの実行ユーザーが誰になるかとか、
事前に確認しないといけないな。
suEXEC、FastCGIなんかで変わってくる場合もあるし。
webユーザーは同一グループに所属するから、
xx0xで引っ掛けて拒否させるんだよ。
最後の4は付けないとApacheが読めない。
https://www.xserver.ne.jp/manual/man_server_permission.php
グループ設計がどうなってるかとか、
PHPの実行ユーザーが誰になるかとか、
事前に確認しないといけないな。
suEXEC、FastCGIなんかで変わってくる場合もあるし。
580デフォルトの名無しさん (ワッチョイ a3d0-J7KC)
2018/09/01(土) 18:28:51.43ID:0yUv0G400 exit()
die()
(´・ω・`)?
die()
(´・ω・`)?
581デフォルトの名無しさん (ワッチョイ 0b81-tpL7)
2018/09/01(土) 18:34:59.89ID:5sir/CBW0 死ねって言われたいのかなあ
582デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/01(土) 19:17:45.13ID:/Rwrc1N80 >>580
ディエはエラーログに残る
ディエはエラーログに残る
583デフォルトの名無しさん (ワッチョイ 1d9f-GNu9)
2018/09/02(日) 10:08:19.04ID:ub6GWDzd0 ど素人です
質問させてください
cakephp3のwebroot以下にある.htaccessで、mod_rewriteの括弧外にrewritecondやrewriteruleが書かれているものを人様のサイトで拝見しました
括弧外に置かれても、機能するものなのでしょうか
質問させてください
cakephp3のwebroot以下にある.htaccessで、mod_rewriteの括弧外にrewritecondやrewriteruleが書かれているものを人様のサイトで拝見しました
括弧外に置かれても、機能するものなのでしょうか
584デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/02(日) 10:25:45.60ID:afimrVjB0 <IfModule mod_rewrite.c>
もしかしてこれ?
もしかしてこれ?
585デフォルトの名無しさん (ワッチョイ 1d9f-J7KC)
2018/09/02(日) 13:32:00.09ID:ub6GWDzd0 そうです
すみません、>>583は携帯から書き込んでいたので正確ではありませんでした
質問するにしても良くなかったですね
===================
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
===================
このようなものなのですが
すみません、>>583は携帯から書き込んでいたので正確ではありませんでした
質問するにしても良くなかったですね
===================
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
===================
このようなものなのですが
586デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/02(日) 15:33:48.84ID:afimrVjB0 それは、そのモジュールが有効化されていたら設定するって意味で、
何のモジュールのディレクティブなのか明確になる以外にメリットない。
だから書かない方が良い。
ifを書かなければ、モジュールが無効なら即500エラーで設定ミスに気付ける。
モジュールが無効なのにエラーにならず、
設定したつもりでいる方が危ないからね。
何のモジュールのディレクティブなのか明確になる以外にメリットない。
だから書かない方が良い。
ifを書かなければ、モジュールが無効なら即500エラーで設定ミスに気付ける。
モジュールが無効なのにエラーにならず、
設定したつもりでいる方が危ないからね。
587デフォルトの名無しさん (ワッチョイ a3d0-J7KC)
2018/09/02(日) 15:42:33.40ID:NagoJ+s80588デフォルトの名無しさん (ワッチョイ 1d9f-J7KC)
2018/09/02(日) 18:59:05.09ID:ub6GWDzd0 >>586
返答ありがとうございます
リファレンスにしていたものが、全てディレクティブを括弧内に書いていたのと
cakephpのインストール直後のプロジェクトに入っていた.htaccessでも
ディレクティブが<ifmodule>で囲まれていたので、
基本的には囲う必要があり、外に出る方がおかしいと思い込みがありました
まさにおっしゃられていた通り、apache2.confを見てみたら
Loadmoduleでmod_rewriteを有効化していたつもりで、実際にはコメントアウトされていたのですが
それにも気付いていませんでした
どうもありがとうございます
返答ありがとうございます
リファレンスにしていたものが、全てディレクティブを括弧内に書いていたのと
cakephpのインストール直後のプロジェクトに入っていた.htaccessでも
ディレクティブが<ifmodule>で囲まれていたので、
基本的には囲う必要があり、外に出る方がおかしいと思い込みがありました
まさにおっしゃられていた通り、apache2.confを見てみたら
Loadmoduleでmod_rewriteを有効化していたつもりで、実際にはコメントアウトされていたのですが
それにも気付いていませんでした
どうもありがとうございます
589デフォルトの名無しさん (ワッチョイ a3d0-J7KC)
2018/09/03(月) 09:54:20.75ID:0wOUtf7+0 読み返してたんだけど>>557の前者って使うことないものなの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 中国政府、国民に再び日本に行かないよう警告。「高市政権が地震頻発で大地震が発生する可能性あると言ってます😤」 [271912485]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【まずは自助】高市早苗「自らの命は自らが守るという原則に従っていただく」 青森の被災地、能登と同じく見捨てられる模様 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★5
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
