[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 12/08 18:17 / Filesize : 160 KB / Number-of Response : 672
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はID出して書き込みやがれ 131



1 名前:nobodyさん mailto:sage [2013/11/10(日) 15:46:09.34 ID:???]
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 130
kohada.2ch.net/test/read.cgi/php/1379566039/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

283 名前:nobodyさん [2013/11/19(火) 12:53:02.64 ID:hKBGRur1]
>>282
fuelphp.jp/docs/1.6/general/security.html#sql

284 名前:nobodyさん mailto:sage [2013/11/19(火) 13:15:30.92 ID:???]
>>283
ダメではないか

285 名前:nobodyさん mailto:sage [2013/11/19(火) 13:17:38.96 ID:???]
私JKで試したわけぢゃないけどーprepare+bindXxxって
query+quoteに比べて処理工数が多いだけに遅そうだしー
ただでさえ遅いFWの速度をあげるには仕方ないのでゎ

286 名前:nobodyさん mailto:sage [2013/11/19(火) 13:21:29.56 ID:???]
>>285
そんなんボトルネックにならん

287 名前:nobodyさん mailto:sage [2013/11/19(火) 13:23:36.67 ID:???]
ちっちゃいのが積み重なると大きくなるけどね

288 名前:nobodyさん mailto:sage [2013/11/19(火) 13:24:21.74 ID:???]
>>284
一昔前の文字コードやエスケープ処理での脆弱性を知らないんだろうし

シングルバイト系の人は知らない人多いし

289 名前:nobodyさん [2013/11/19(火) 13:37:06.01 ID:hKBGRur1]
>>284 >> 288
だめなの?
fuelphpてSQLインジェクション防げないんだ…
これはオワコンだわ

290 名前:nobodyさん mailto:sage [2013/11/19(火) 13:49:33.19 ID:???]
>>289
基本的には防げてるし、新たに発見された脆弱性も継続して修正されてる。
fuelphp.com/security-advisories

「プリペアードステートメントを使ってないからSQLインジェクションの脆弱性がある」というのはFUD。
とはいえ、プリペアードステートメント使えやとは思うけどね。

291 名前:nobodyさん mailto:sage [2013/11/19(火) 13:57:50.15 ID:???]
SQLインジェクションは、Prepare使わないと防げないわけではない。
そもそもでいえば、インジェクション防止の機構じゃねーし。
SQLの機構じゃなくて、ライブラリのラッパなので、仕様によっては
使っていても問題ないというわけではない。



292 名前:nobodyさん mailto:sage [2013/11/19(火) 13:58:01.02 ID:???]
>>285
クエリを実行するとき、データベースサーバでは、
1. 構文解析
2. 実行計画立案
3. クエリ実行
の処理が必要で、prepareでは1または1&2が行われる。(構文のみで実行計画を立てて固定する場合と、3で渡された
パラメータをもとに実行計画を立てる場合がある)
一方、exec queryでは毎回1〜3が行われる。
なので、同じ処理をパラメータを変えながら複数回実行する場合、プリペアードステートメントを使った方が速い場合がある。

293 名前:nobodyさん mailto:sage [2013/11/19(火) 14:08:35.69 ID:???]
レスありがとうございます
>>268
PHPが何なのか解らず、単にネットプログラムの質問スレで質問させて頂きました

>>269
大手企業サイトなので厳しいですね

ど素人ながら、ログインボタンのURLとかPCでログイン後のURLとか試したんですが、無理でした

294 名前:nobodyさん mailto:sage [2013/11/19(火) 14:12:15.36 ID:???]
>>293
> 大手企業サイトなので厳しいですね
大手こそ対応してくれそうなもんだが。
「○○のサイトって、ガラケーのフルブラウザだとログインもできない糞サイトだわ」
とかネットで言われると困るだろうし。

295 名前:nobodyさん mailto:sage [2013/11/19(火) 14:15:18.76 ID:???]
>>289
そこそこ有名なPHPのフレームワークにそんな基本的な脆弱性があるなら、大垣氏あたりが騒いでるよ。

296 名前:nobodyさん mailto:sage [2013/11/19(火) 14:48:00.13 ID:???]
>>295
もちろん知ってる。>>284>>288を皮肉ったんだよ、

297 名前:nobodyさん mailto:sage [2013/11/19(火) 15:30:48.92 ID:???]
>>288の話ってPHPの脆弱性の話じゃないだろ、常識だろ?

298 名前:nobodyさん mailto:sage [2013/11/19(火) 15:39:16.53 ID:???]
gihyo.jp/dev/serial/01/php-security/0042

299 名前:nobodyさん mailto:sage [2013/11/19(火) 15:49:48.19 ID:???]
>>295
quoteだけでは防げない問題を見つけてつぶしていってくれてるんだよ。

300 名前:nobodyさん mailto:sage [2013/11/19(火) 15:55:45.62 ID:???]
www.tokumaru.org/d/20100701.html

昔のMySQLみたいなprepareがクライアントサイドで処理とかゴミな実装されてると
prepareのほうが脆弱性の巣窟になりかねない。

この場合、徳丸氏や大垣氏が騒ぐから問題はいつか解決される

301 名前:nobodyさん mailto:sage [2013/11/19(火) 16:05:50.48 ID:???]
今htmlフォームのradio,cheakbox,selectを使ってphpにポストしています
ポストしたデータ類はdbやcsvに書き込んだり保存したりするわけでもなく
switch($_POST["color"])
{
case "red":return imageColorAllocateAlpha($i,200,200,200,$alpha);break;
~~~~~~
default:return imagecolorallocate($i,255,255,255,$alpha);break;
}
で最終的に変な物が飛んできてもdefaultで処理されると思うんですがセキュリティ的にこれ$_POSTを正規表現やstrlenで弾くべきですか?



302 名前:nobodyさん mailto:sage [2013/11/19(火) 16:09:44.47 ID:???]
>>301
大丈夫

303 名前:nobodyさん mailto:sage [2013/11/19(火) 16:12:49.08 ID:???]
>>302
ありがとうございます。。

304 名前:nobodyさん mailto:sage [2013/11/19(火) 16:17:55.45 ID:???]
>>301
一応、問題ない。
ただ、不正な値をエラーとして弾くと、ログから変な操作をする奴を突き止めやすい。

305 名前:nobodyさん mailto:sage [2013/11/19(火) 17:47:12.58 ID:???]
自分はpost値をひと通りチェックして処理入る前に
想定外のものがあったらexitして真っ白にして不気味感を演出したり
headerでbad requestあたりを返すと思う

306 名前:nobodyさん mailto:sage [2013/11/19(火) 18:06:18.79 ID:???]
俺は大抵302でヤフーにお任せするわ

307 名前:nobodyさん mailto:sage [2013/11/19(火) 20:51:48.38 ID:???]
headerにbad request(400)なんてあるんだね。
余談だが、404にすべきページをエラーページに飛ばしてたら
ソフト404とかで注意されたよ。

308 名前:nobodyさん mailto:sage [2013/11/19(火) 20:54:19.28 ID:???]
>>307
ステータスを404にしないからだな

309 名前:nobodyさん mailto:sage [2013/11/19(火) 21:10:38.01 ID:???]
うわー自前で正規表現やらintvalだの使ってvalidationしてたけどfilterなんてあったのか

310 名前:nobodyさん mailto:sage [2013/11/19(火) 21:14:07.64 ID:???]
<?php
header("HTTP/1.0 404 Not Found");
header("Location: www.example.com/error/");

こんな感じにしたら、なぜか、最初のヘッダーは無視されて、
結局、302でのリダイレクトになっちゃうから404を出すのは諦めたんだけど。
404出してから更にエラーページに遷移するのは無理っぽい。
fiddlerでステータスコードを確認した限りの話だが。

311 名前:nobodyさん mailto:sage [2013/11/19(火) 21:14:29.22 ID:???]
>>309
FilterとCtypeは重要



312 名前:nobodyさん mailto:sage [2013/11/19(火) 21:15:39.77 ID:???]
>>310
そりゃだめだろ
リダイレクト先で404出さないと

313 名前:nobodyさん mailto:sage [2013/11/19(火) 21:17:35.20 ID:???]
>>310
それおかしいだろ
リダイレクト先のそのURLで404を返すようにしなさいよ

314 名前:nobodyさん mailto:sage [2013/11/19(火) 21:18:06.73 ID:???]
リロードしてなかったのごめんね

315 名前:310 [2013/11/19(火) 21:37:04.47 ID:XtFCM7Hl]
まじですか・・・。
いや、エラーページは200を返す普通のページにしてたんだけど。
もちろん、存在しないページ用の404ページ(ヘッダー404)は別に用意してるんだけど。
つーか、むしろエラーページに飛ばさないで、素直に404ページに飛ばせばいいのか。

316 名前:310 [2013/11/19(火) 21:42:44.27 ID:XtFCM7Hl]
普通、エラーページも404ヘッダーを出すものなのですか?

317 名前:nobodyさん mailto:sage [2013/11/19(火) 21:49:59.72 ID:???]
エラーページで404が必要なときは404

厳密には200を返す必要があるときはない

318 名前:nobodyさん mailto:sage [2013/11/19(火) 21:54:36.62 ID:???]
404 FOT FOUNDとかechoしておいて200返してるのはかなりかっこ悪いとは思う

319 名前:310 [2013/11/19(火) 22:48:57.12 ID:9JiWXD43]
レスありがとうございます。
どうも頭が混乱してしまいました。
こうすれば大丈夫でしょうか?

POSTパラメーターが不正 → エラーページ
(200ステータス: echo ”リクエストが不正です”)

GETパラメーターが不正か不存在 → 404ページ
(404ステータス: echo ”ページが存在しません”)

GETパラメーターの場合に、エラーページに飛ばしていたのが、
ソフト404の原因だと思うのです。

320 名前:nobodyさん mailto:sage [2013/11/19(火) 23:00:34.26 ID:???]
>>319
RFC2616か、WikipediaのHTTPステータスコードでもいいから読んで
どういう時にどれを使えばいいか分かるから

321 名前:nobodyさん mailto:sage [2013/11/19(火) 23:04:02.90 ID:???]
パラメーターの問題じゃない
hoge.phpというファイルは存在しているんだから404を返すのは不自然



322 名前:310 [2013/11/19(火) 23:29:26.30 ID:9JiWXD43]
>>320
ご指摘に従い、HTTPステータスコード等について調べてみます。

>>321
mod_rewriteで、GETパラメーターを静的URLに書き換えてリンクとして活用しているのですが、
この場合もhoge.phpは存在するとみなされるのでしょうか?
(例)ttp:example.com/hoge/2013/11/29
9999とか不正な値がきたら、404に飛ばせばいいかなと思ったのですが。

わかりづらい説明ですみません。

323 名前:nobodyさん mailto:sage [2013/11/19(火) 23:44:52.18 ID:???]
mod_rewriteでやってもアプリケーション側で弾かない限り
実質的にはhoge.php?y=2013&m=11&d=29みたいな感じで見れると思うけど
hoge.phpが存在するというのを表向きに知られたくないのなら好きにすればいいんじゃね
目的とか実装によりけりだよそのへんは

324 名前:nobodyさん mailto:sage [2013/11/19(火) 23:51:53.10 ID:???]
>>322
ファイルがあろうがなかろうが、そのURLを存在させたくなければ404でよい

> (例)ttp:example.com/hoge/2013/11/29
> 9999とか不正な値がきたら、404に飛ばせばいいかなと思ったのですが。
404が適切。

325 名前:nobodyさん mailto:sage [2013/11/19(火) 23:59:01.39 ID:???]
ブログ記事を表示するページのurlが
example.com/post/ブログ記事のid
だとして、存在しないidだったときは404返してたんだけど間違ってる?

326 名前:310 [2013/11/20(水) 00:10:19.19 ID:VLPy2k85]
>>323 >>324
(例)ttp:example.com/hoge/2013/11/29
結論として、このurlの不正な値の場合に、200のエラーページに飛ばしていたのがソフト404の原因ですよね。

ご指摘くださったことを参考に、もう一度、ページの構成と遷移、
ステータスコードの関係について検証したいと思います。
ありがとうございました。

327 名前:nobodyさん mailto:sage [2013/11/20(水) 00:31:49.62 ID:???]
>>325
あってる

328 名前:nobodyさん mailto:sage [2013/11/20(水) 07:53:07.64 ID:???]
訳もわからず404や403を返しちゃうのは恥ずかしいよね。
自分で書いてるスクリプトなのにw
400と500のどちらかを返すだけの方が無難だよねw

329 名前:nobodyさん mailto:sage [2013/11/20(水) 08:01:27.90 ID:???]
>>328
君は存在してることが恥ずかしい

330 名前:nobodyさん mailto:sage [2013/11/20(水) 09:35:19.42 ID:???]
>>328
httpステータスコードでググってこい

331 名前:nobodyさん [2013/11/20(水) 11:28:24.00 ID:35fCUlou]
通常、ファイルが存在しない場合に備えて、.htaccessに次の様な設定をすると思います。
ErrorDocument 404 /error/404.php(404ヘッダーを出力)

ここから質問です。
次のURLのid値が不正な場合、404となるよう、同様に、/error/404.php に遷移できますか?
ttp://example.com/post/id

header('Location: ttp://example.com/error/404.php');
post.phpで出すこのヘッダーは302ですが、遷移すれば、結果として404扱いになるのでしょうか?



332 名前:nobodyさん mailto:sage [2013/11/20(水) 11:33:09.19 ID:???]
その 404.php は何を返すの?

333 名前:331 [2013/11/20(水) 11:36:20.51 ID:35fCUlou]
>>332
オリジナルに作成した、いわゆる404ページです。

もしかしたら、(404ヘッダーを出力) という部分は間違いかもです。

334 名前:nobodyさん mailto:sage [2013/11/20(水) 11:57:47.58 ID:???]
UAがリダイレクトを許可する設定なら404
そうでないなら302
不安ならPHP側で処理に合わせてheaderとresponse返すようにすればおk

335 名前:nobodyさん mailto:sage [2013/11/20(水) 12:22:36.67 ID:???]
>>331
Locationは「リソースの別の場所を案内する」ために用いられるもの
「リソースが見つからない」場合の挙動は定義されていない
各ベンダーの実装は404とLocationを一緒に出すと無視される
よって include('error/404.php'); 等とするしかない

336 名前:331 [2013/11/20(水) 12:41:10.58 ID:35fCUlou]
>>334 >>335
ありがとうございます。
header("HTTP/1.0 404 Not Found");
このヘッダー出力だけで、自動で遷移する、ErrorDocument 404 と
同様の効果があると良いのですが、どうも無理なようですね。

<?php
//idチェック処理後不正な場合
header("HTTP/1.0 404 Not Found");
include('error/404.php');
exit;

やはり、こうして読み込むしかないということですね。
ありがとうございました。

337 名前:nobodyさん mailto:sage [2013/11/20(水) 12:43:47.50 ID:???]
404.php側でヘッダに404を出せよというだけじゃね?w

338 名前:nobodyさん mailto:sage [2013/11/20(水) 12:48:58.33 ID:???]
>>337
ソフト404エラーでググれ

339 名前:nobodyさん mailto:sage [2013/11/20(水) 17:14:42.69 ID:???]
>>337
だよね

>>338


340 名前:nobodyさん mailto:sage [2013/11/20(水) 17:32:58.48 ID:???]
>>337
404.phpに移動していいならそれでいいね。
ただ、.htaccessにErrorDocument設定をしたのと同じ振る舞いを希望するなら、その手じゃ駄目なんじゃ。

341 名前:nobodyさん mailto:sage [2013/11/20(水) 17:55:26.35 ID:???]
変な質問ですみません。

最近転職してPHPを触るようになったのですが、Linux上のvimで開発しています。
開発時にインデントをある程度入れると思うのですが、普通はどのようにインデントを
入れるのが正しいソースの書き方なんでしょうか?

今触っているソースは特に改行やTABインデントがなく、そのまま1行でずっと
書かれてあり可読性としてどうなのかなと思いつつも、そういうルールかもしれないと思い
自分も特にインデント等を入れずに開発しているのですが。。

わかりにくい書き方で申し訳ありませんが、どなたか教えて頂けないでしょうか



342 名前:nobodyさん mailto:sage [2013/11/20(水) 17:57:19.88 ID:???]
難読化してんのかね?
整形して編集してリリース時にまた改行消す、とかでいいんじゃ?

343 名前:nobodyさん mailto:sage [2013/11/20(水) 17:58:27.74 ID:???]
コーディング規約ないならご自由に
後で自分が追うことになっても苦労しない程度にね

344 名前:nobodyさん mailto:sage [2013/11/20(水) 18:00:00.26 ID:???]
>>337 >>339
次の文は正しい?それとも間違い?
『転送元で302を出しても、転送先で404を出せば「ソフト404」にならない』

345 名前:nobodyさん mailto:sage [2013/11/20(水) 18:00:42.18 ID:???]
>>341
インデント、改行の入れ方はいろいろある
www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html
ja.phptherightway.com/
のコーディングスタイル
いろいろあってどれが正しいとかはないが、会社やプロダクトでどうなっているか次第

一行に書くのがルールですって言われたら会社辞めちゃいそう

346 名前:nobodyさん mailto:sage [2013/11/20(水) 18:01:44.56 ID:???]
>>344
Googleの話だよな?ソフト404って
正しいよ。ただ転送は301がオススメ

347 名前:nobodyさん mailto:sage [2013/11/20(水) 18:05:42.61 ID:???]
>>346
そうGoogleの話。
理解できた。ありがとう!

348 名前:nobodyさん mailto:sage [2013/11/20(水) 18:05:59.79 ID:???]
>>342-343
パッと見た時に「読みにくい」と思ったのが最初です
例えば

 $hoge = array('aaa' => $aaa, 'bbb' => $bbb);

のようなものがあったとして(実際はもっと多いです)

 $hoge = array
          (
           'aaa' => $aaa,
           'bbb' => $bbb
          );

のように書いた方が後で見た時に読みやすいと思いまして。。

>>345
資料の方ありがとうございます。
そちらを見てみます。

349 名前:nobodyさん mailto:sage [2013/11/20(水) 18:07:21.19 ID:???]
>>341
それって最終的にそうしてるってだけで、
編集用のコメントが入ってたりインデントもちゃんと入ってるソースが別にあるでしょ?
つうか会社に人に聞きなさいよ。

350 名前:nobodyさん [2013/11/20(水) 18:08:46.70 ID:7VTPw3qr]
変なこと聞きますが、base64_encodeでダブルクオーテーションが
含まれる文字列に変換されることってありえませんよね?

351 名前:nobodyさん mailto:sage [2013/11/20(水) 18:11:55.88 ID:???]
インデント、手で入れてるんですか?



352 名前:nobodyさん mailto:sage [2013/11/20(水) 18:13:31.78 ID:???]
>>350
ないと思うけど

353 名前:nobodyさん mailto:sage [2013/11/20(水) 18:14:21.21 ID:???]
>>341
インデントはスペース4つが普通。
いろんな文法チェッカーツールも、デフォルトではタブでインデントしてると警告を出すのが多い。

354 名前:nobodyさん mailto:sage [2013/11/20(水) 18:17:04.21 ID:???]
>>349
ないんです
聞いてみたら「昔からこうだった」らしいので。
そういうものなのかなと少し疑問に思って質問しました。すみません

>>353
TABじゃないらしいですね。
>>345さんの教えてくれたページを見て驚きました

スレ汚し申し訳なかったです

355 名前:nobodyさん [2013/11/20(水) 18:17:34.09 ID:7VTPw3qr]
>>352
ですよね。CSVファイルに保存するとき、base64_encodeして保存してるのですが、
たまにダブルクォーテーションが余分についてファイルが壊れている事があります。
原因が全くわからないので、バグを見つけられずに困っていました。

他の原因を探ってみます。

356 名前:nobodyさん mailto:sage [2013/11/20(水) 18:19:19.18 ID:???]
>>354
PHPのインデントはスペース派が多いけど
どっちでもいいよ。会社やプロダクトで決められたほうを使うべきかな

357 名前:nobodyさん mailto:sage [2013/11/20(水) 18:20:47.24 ID:???]
>>356
PSR-2がスペース使うのがMUSTだから、どっちでもいいならスペース使っといた方がいい。

358 名前:nobodyさん mailto:sage [2013/11/20(水) 18:43:18.00 ID:???]
>>341
vimの設定ちょこちょこしておけばインデントは勝手にやってくれるよ。
インデントを入れずに書くのはやめといたほうが。

359 名前:nobodyさん mailto:sage [2013/11/20(水) 18:56:19.40 ID:???]
>>354
やべえなその会社w
お前が引っ張っていってやれ

360 名前:nobodyさん mailto:sage [2013/11/20(水) 19:11:37.50 ID:???]
>>357
PSR-2に従うならだな
従うかはMUSTではないからな

うちはPSR-1までは従ってるけど、コーディングスタイルは全然違うな

361 名前:nobodyさん mailto:sage [2013/11/20(水) 19:29:19.34 ID:???]
>>346
いい加減な事を教えないでくれ
301はリソースが一時的に別の場所に「ある」時に使う
ソフト404エラーは404を返すべきところで「404を返さない」事を指す



362 名前:nobodyさん mailto:sage [2013/11/20(水) 19:45:20.59 ID:???]
>>361
違うよ、まず301は恒久的だぞ、一時的は302
301にしろ302にしろ、リソースが新しいURIに移動したことを示す。
404はURIに一致するリソースが見つけられない、リソースはあるがリクエストを拒否したい等々
移動させることは勝手だし、リソースのあるなしは関係ない。

>ソフト404エラーは404を返すべきところで「404を返さない」事を指す
その通りだが、そのURIを301にしてその先で404を返すのは勝手。
その場で404を返そうがどっちでも良い
返せるならその場の方が好ましいとは言えるかもしれない

363 名前:nobodyさん [2013/11/20(水) 19:48:23.17 ID:ZNkS7nHy]
PHPで重複組合せを簡単にやるにはどうしたらよいでしょうか?
もし関数やライブラリがあれば教えてください。
無ければサンプルコードを教えてください。よろしくお願いします。

364 名前:nobodyさん [2013/11/20(水) 19:52:53.93 ID:ZNkS7nHy]
補足です。

仮に、[1, 2, 3, 4, 5] の5つから3つ選び出す場合、
$result = [
 [1, 1, 1], [1, 1, 2], [1, 1, 3], [1, 1, 4], [1, 1, 5],
 [1, 2, 2], [1, 2, 3], [1, 2, 4], [1, 2, 5],
 ...
 ...
 [1, 5, 5],
 [2, 2, 2], [2, 2, 3], [2, 2, 4], [2, 2, 5],
 [2, 3, 3], [2, 3, 4], [2, 3, 5],
 ...
 ...
 ...
 ...
 [5, 5, 5]
];

このように出力したいです。

365 名前:nobodyさん mailto:sage [2013/11/20(水) 20:08:13.76 ID:???]
PHPマニュアルが変わった?

366 名前:nobodyさん mailto:sage [2013/11/20(水) 20:10:39.68 ID:???]
変わった

367 名前:nobodyさん mailto:sage [2013/11/20(水) 20:39:38.18 ID:???]
>>362
> 違うよ、まず301は恒久的だぞ、一時的は302
ごめん、俺が取り間違えてる

> 404はURIに一致するリソースが見つけられない、リソースはあるがリクエストを拒否したい等々
> 移動させることは勝手だし、リソースのあるなしは関係ない。
404は適当な理由による拒否として使うコードではない (RFC 2616#10.4.5)
拒否する理由に合わせて400、401、403、406等が用意されている

> その場で404を返そうがどっちでも良い
> 返せるならその場の方が好ましいとは言えるかもしれない
Googleが決めたソフト404エラーを回避する義務がないのは同意するけど
無いものを無いと知っててクライアントに教えないのはHTTPサーバーとして行儀が悪い
今回のケースではPHPで対応できるのだから404を返すべき。この点は譲れん

368 名前:nobodyさん mailto:sage [2013/11/20(水) 20:59:29.17 ID:???]
>>364
$a = [1, 2, 3, 4, 5];
print_r (combine($a,3));

function combine($a, $n) {
if($n==1) return $a;
$result = array();
foreach ($a as $v1)
foreach (($n==2?$a:combine($a,$n-1)) as $v2)
$result[] = array_merge((array)$v1, (array)$v2);
return $result;
}

369 名前:nobodyさん mailto:sage [2013/11/20(水) 21:02:06.21 ID:???]
>>367
10.4.5
This status code is commonly used when the server does not wish to
reveal exactly why the request has been refused, or when no other
response is applicable.
書いてあるよ。

>無いものを無いと知っててクライアントに教えないのはHTTPサーバーとして行儀が悪い
301と404のセットで教えてるから良いんだよ
301を返さずに404の方が好ましいかもしれない。だがMUSTじゃないし問題なし

370 名前:nobodyさん mailto:sage [2013/11/20(水) 21:25:52.44 ID:???]
>>369
> 10.4.5
それは404の説明ではなく commonly used な
「リクエストを拒否する理由を隠したい、適当なものがない時にも使われている」という使用例だ
ソフト404エラーの話とはまた違う

> 301と404のセットで教えてるから良いんだよ
だから選択ではなくセットで使えという事が
ソフト404エラーに該当するしHTTPサーバーとしての振る舞いとしても良くないと言ってるんだ

371 名前:nobodyさん mailto:sage [2013/11/20(水) 21:31:48.37 ID:???]
まだやってたのか



372 名前:nobodyさん mailto:sage [2013/11/20(水) 21:38:05.31 ID:???]
>>369
>>344に対する回答>>346が間違い
それだけの話だ

373 名前:nobodyさん mailto:sage [2013/11/20(水) 21:42:05.18 ID:???]
>>370
HTTPステータスの話とソフト404の話をごっちゃにしないでくれ

ソフト404はあくまでGoogleがこれ404がいいよねってURLだ
あくまで提案であり、このままだと404と見なすよって意味だ

元の質問が、302→404としたらソフト404でなくなるかだ
答えは「なくなる」だ。これはHTTPステータスではなくGoogleの話だ

>それは404の説明ではなく commonly used な
>「リクエストを拒否する理由を隠したい、適当なものがない時にも使われている」という使用例だ
>ソフト404エラーの話とはまた違う
そのとおり、最初からソフト404エラーとしてそれを説明してないので問題ない

374 名前:nobodyさん mailto:sage [2013/11/20(水) 21:45:08.54 ID:???]
>>372
どうみてもあってるんですが、どこが間違ってるんでしょうか?

375 名前:nobodyさん mailto:sage [2013/11/20(水) 21:48:25.66 ID:???]
厳密には
https://support.google.com/webmasters/answer/181708?hl=ja
>存在しないページに対して 404 と 410 以外のコードを返すこと(または 404 を返す代わりにホームページなど他のページにリダイレクトすること)は、問題となる可能性があります。
と書いてはあるんだ

実際は302か301で404に飛ばしても、ソフト404エラーの解決にはなる

376 名前:nobodyさん mailto:sage [2013/11/20(水) 22:06:42.02 ID:???]
>>373
そうだな対Googleの話に絞ろう
https://support.google.com/webmasters/answer/181708?hl=ja
> 存在しないページに対して 404 と 410 以外のコードを返すこと
> (または 404 を返す代わりにホームページなど他のページにリダイレクトすること)は、問題となる可能性があります。
> まず、その URL にページが存在することが検索エンジンに明示されます。
> その結果、URL がクロールされ、コンテンツがインデックスに登録される場合があります。

質問者はそのURLに対するリクエストをリダイレクトすると
ソフト404エラーにならなくなるのか?を訪ねているのだから答えはNOだ

377 名前:nobodyさん mailto:sage [2013/11/20(水) 22:13:11.42 ID:???]
>>376
どうやってコンテンツがインデックスに登録されるんだい?
404返してるページはgoogleはインデックスしないぞ

378 名前:nobodyさん mailto:sage [2013/11/20(水) 22:17:24.84 ID:???]
>>375
ごめんリロードしてなかった
俺のサーバーじゃないならリダイレクトしようが何しようが全然構わないけど、
初心者が見に来るスレだからこそ理想的な手段でやって欲しい

379 名前:nobodyさん mailto:sage [2013/11/20(水) 22:23:26.54 ID:???]
スレチだしそろそろ終わらせようか

>>377
404や410を返さないURLをどう扱うかは俺ではなくGoogleが決める事
そしてソフト404エラーを回避するためには404、410を返す以外の解決手段が書かれていない
それ以上何を語ればいいんだ

380 名前:nobodyさん mailto:sage [2013/11/20(水) 22:26:20.27 ID:???]
>>344 >>346
404か410をその場で返す方が
301や302を利用して404に飛ばすより好ましい

ってレスすれば良いだけではないか
>>361の暴走が全てを狂わせた感じだな

381 名前:nobodyさん mailto:sage [2013/11/20(水) 22:39:23.48 ID:???]
>>380
はいはい俺の暴走俺の暴走
質問者も居ないみたいだしもう終わらせよう



382 名前:nobodyさん mailto:sage [2013/11/20(水) 22:39:40.62 ID:???]
>>377
これこれ。
> (または 404 を返す代わりにホームページなど他のページにリダイレクトすること)
404を返さずに404らしきページを返すことを、google用語でソフト404という。
だから、404らしきページを返すんなら、ちゃんとステータスコードも404にしろよってことだ。

383 名前:nobodyさん mailto:sage [2013/11/20(水) 22:42:16.58 ID:???]
>>382
俺の暴走だからもういいからPHPの話をしよう

                     /j
                   /__/ ‘,
                  //  ヽ  ‘, 、
                    //    ‘  ! ヽ        …わかった この話はやめよう
                /イ       ‘, l  ’
               iヘヘ,       l |  ’
               | nヘヘ _      | |   l       ハイ!! やめやめ
               | l_| | | ゝ ̄`ヽ | |〈 ̄ノ
               ゝソノノ   `ー‐’ l ! ¨/
            n/7./7 ∧        j/ /     iヽiヽn
              |! |///7/:::ゝ   r===オ        | ! | |/~7
             i~| | | ,’ ’/:::::::::::ゝ、 l_こ./ヾ..     nl l .||/
             | | | | l {‘:j`i::::::::::::::::`ーr ‘         ||ー?{
              | ‘” ̄ ̄iノ .l::::::::::::::::::::::∧       | ゝ    ‘,
      , 一 r‐‐l   γ /、::::::::::::::::::::::::〉ー= ___  ヘ  ヽ   }
    / o  |!:::::}     / o` ー 、::::::::::::i o ,’:::::::{`ヽ ヘ     ノ
   / o    ノ:::::∧   /ヽ  o  ヽ::::::::| o i::::::::ヽ、 /   /
   /    ノ::::::/    /::::::::ヽ  o  ヽ:::| o {::::::::::::::Υ   /






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<160KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef