【PHP】下らねぇ質問はここに 9

■ このスレッドは過去ログ倉庫に格納されています
2017/12/20(水) 18:00:20.28ID:1xaO/YRR0
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
530527 (ワンミングク MMbf-ycnR)
垢版 |
2018/08/22(水) 08:17:00.54ID:2cdwFvgEM
>>528
レスありがとうございます。
これ、ちまちまと手直しして使っておりまして。
このコードは管理機能内の記事削除部分で、管理者しか使えないですし、
第三者が入れないよう認証かけてるのでセキュリティーは多分大丈夫だと思います。

取りあえず使えるようにしたいので手直し出来るのであれば教えて欲しいです。

あと、どういう点がやばいのかご教示いただければ勉強出来るので非常に助かります。
2018/08/22(水) 08:40:59.95ID:PHQZkUhf0
だから、$_POSTをいきなり正規表現の処理に入れてるところがヤバイって言いたいんだと思う。
bbsやkeyに悪意のあるコードを入れてられても、そのままノーチェックで処理を継続していたらヤバイ。

仮にチェック済だとしても、スーパーグローバルを使ってると頭悪そうにみえるしな。
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\">&gt;&gt;([\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\">&gt;&gt;' . res_num($matches[2], $del) . '</a>';
}

クロージャ使って書くなら

$line = preg_replace_callback(
  "!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">&gt;&gt;([\d|\-]+)</a>!",
  function ($matches) {
    return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $del). '\" target=\"_blank\">&gt;&gt;' . res_num($matches[2], $del) . '</a>';
  },
  $line
);

半角スペース2個を全角スペースにして書いてるので注意
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でも大体問題なく動くものだけど
このコードだと他にも色々と問題が出ると思う
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\">&gt;&gt;([\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\">&gt;&gt;' . res_num($matches[2], $del) . '</a>';
}

クロージャ使うなら

$line = preg_replace_callback(
  "!<a href=\"\.\./test/read\.php/$_POST['bbs']/$_POST['key']/([\d|\-]+)\" target=\"_blank\">&gt;&gt;([\d|\-]+)</a>!",
  function ($matches) use ($del) {
    return "<a href=\"../test/read.php/$_POST['bbs']/$_POST['key']/" . res_num($matches[1], $del). '\" target=\"_blank\">&gt;&gt;' . res_num($matches[2], $del) . '</a>';
  },
  $line
);
2018/08/22(水) 10:41:30.78ID:jQIraJCs0
エラーを無視するような感じのエラー処理が適当なコードだから
セキュリティもそれなりなのだろうというのが容易に想像出来るんだわ
なんせPHP4時代のコードだし今ほどそのへん考慮されてないからねえ
2018/08/22(水) 10:41:35.61ID:mlQDc+9J0
>>529
コード内に出てくる $_POST[bbs](本当は $_POST['bbs'] だが)は
まともにチェックされてないっぽい
unlink("../$_POST[bbs]/...");
みたいなコードが散見されるから
NULLバイト攻撃も素通りだと思う

ヤバすぎ
2018/08/22(水) 10:52:29.28ID:OKO5mG4BM
>>532
$del を受ける use が必要じゃね

あと細かい話だが、PHPが単なる即時関数もクロージャと言うのにはちょっと違和感ある。
>>532 のケースはクロージャになるけど、クロージャってやっぱスコープが特殊なところに意義があるというか。
2018/08/22(水) 10:56:49.46ID:PHQZkUhf0
>>536
そうなんだ…ワロタ
クローズドな環境で割り切って使う以外はあぶないね。
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の質問のレベルで更にツギハギで直してるっていうんだからセキュリティに関しては想像もしたくないというのが正直なところ
2018/08/22(水) 11:04:53.85ID:XDj/gPFz0
敢えて繰り返すけど, もっと新しくてまともなもの探さなきゃダメだよ
そうするのがベターなんじゃなくて, そうしなきゃダメ, SHOULDじゃなくてMUSTだよ
2018/08/22(水) 11:08:19.17ID:mlQDc+9J0
>>539
かなり昔に対策されたんだな
知らなかったサンクス

$_POST[bbs]でコード内を検索したら
unlink("../$_POST[bbs]/dat/$_POST[key].dat");
こんなコードが出てきたんでびっくりして脊髄反射してしまったww
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">&gt;&gt;\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">&gt;&gt;'.res_num($matches['num'], $del).'</a>';
},
$line
);
2018/08/22(水) 11:58:13.96ID:nWdToOU90
Interface用のファイルって基本的にどこに置けばいいの?
それを継承するクラス群と同じディレクトリなのか、
もしくは最初から一箇所(例えばMyApp\Contract等)にまとめていいのか
544527 (ワンミングク MMbf-ycnR)
垢版 |
2018/08/22(水) 12:28:34.49ID:2cdwFvgEM
>>532
手直し、ありがとうございます。
勉強させてもらいます。


件の掲示板ですが、社内LANで運用されておりまして、前任者より引き継いだものです。
設置はさらに前の前任者(退職)が行ったようです。
お察しの通り、phpのスキルはそれ程高くはありません。

移行を検討するよう進言してみます。
ありがとうございました。
2018/08/22(水) 13:23:13.49ID:PHQZkUhf0
社内でしかも管理者限定なら急ぐことはないか…
でもコードの品質全てが問題ありそうだから、仲間内で注意喚起はした方がいいな。
JVNで周知されてるのも良い理由になると思う。
2018/08/22(水) 13:39:41.75ID:mlQDc+9J0
>>544
>>532のコードは間違ってるので使うなら>>534>>542

お節介ながら
今はSlackみたいな便利なものが色々とあるので
そもそも掲示板を使う必要はあるのか?ってところから検討した方がいいのではと
2018/08/22(水) 15:37:33.16ID:bZebMi5p0
メールヘッダーインジェクションって現バージョンのPHPではどうなんですか?
mail()やmb_send_mail()で対策されたとネット上で見かけたのですが(´・ω・`)
2018/08/22(水) 18:00:41.89ID:mlQDc+9J0
>>547
英語版のPHPマニュアルの改変履歴追ってみると7.2.0での対応で一段落って感じだけど
日本語版には書かれてないな

NULLバイトや改行コードを悪用したインジェクションなら
mail()やmb_send_mail()に渡すデータをバリデーションしてたら7.2.0未満でも問題ない筈だが
2018/08/23(木) 11:42:53.96ID:4kav5HXR0
ttps://blog.ohgaki.net/php-mail-header-injection
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;
}
2018/08/25(土) 11:34:28.91ID:804l9SKu0
要するにcatchしたいときにExceptionやらThrowableとするしかなくて, 少なくとも例外は全部漏れなく捕捉してしまうのが問題なわけだ
2018/08/25(土) 11:45:15.82ID:9SggU+bE0
>>551
なるほど。例外を個別に場合分けして処理したいときに困るということですね。
ありがとうございます。疑問が晴れました。
2018/08/25(土) 14:02:12.59ID:Qb+EA1ap0
最近話題になってたfilter_inputみたいに$_POSTを取得する関数って他にもあるんですか?
http://php.net/manual/ja/ref.filter.php
2018/08/25(土) 14:31:15.65ID:C8WKBJJ50
>>553
それは $_POST を取ってるわけじゃない。
POSTされたデータを取る手段として $_POST と filter_input がある。
他の標準的な手段として用意されてるものは無いと思うけど、リクエストを自分で処理するという手段はある。
2018/08/25(土) 15:51:20.36ID:Qb+EA1ap0
>>554
詳しく教えてくださりありがとうございます。
勉強になりました。
2018/08/25(土) 17:23:47.40ID:/TUnCr22a
php://input
2018/08/26(日) 18:28:50.81ID:TIzdp5nG0
FILTER_SANITIZE_FULL_SPECIAL_CHARS?
htmlspecialchars?
あばばばば(´・ω・`)
2018/08/27(月) 00:57:59.28ID:LDnza5oi0
前者は使わなくてもいい。
後者は画面に出すときに必須
2018/08/27(月) 15:45:55.66ID:BWUwoBqV0
mail関数で文字化けするのはどういった状況なんだろうか
2018/08/27(月) 15:53:58.45ID:TsaU1TVW0
エンコード関連の設定が間違えているって書いても、
そのくらいは知っているって言われそうだしなあ
2018/08/27(月) 17:28:58.93ID:BWUwoBqV0
PHPを初めて間もないので知らなかったです(´・ω・`)
文字化けが自分で作った環境が原因でおこるのか、
ユーザーの環境によっておこるのか、
それすらも現在進行形で勉強中です。
2018/08/28(火) 09:51:44.23ID:Bhr6KAhH0
今時はメールもutf-8にしちゃう方が良い?
サイズはともかく。
2018/08/28(火) 10:03:40.00ID:eY+qymJM0
JIS だと扱えない文字が結構あって面倒なんだよね。
氏名を埋め込もうとするだけでもすぐ問題が起こる。
個人的には結構保守的なんで極力 JIS にしたいが、utf8 も仕方ないかなと思うこともある。
2018/08/28(火) 12:43:02.68ID:Bhr6KAhH0
>>559
件名が化けてるの?
本文が化けてるの?
2018/08/28(火) 15:49:05.60ID:hBn2GmOT0
>>559
>>561です

>>564さん
どちらも化けてないです。
ただ文字化けする状況がよくわからなかっただけです。
自分の環境を全てutf8に統一すれば化けないですかね(´・ω・`)
2018/08/28(火) 18:24:33.50ID:Bhr6KAhH0
どちらかと言えば、送信したサーバー側にあると思うよ。
ヘッダをMIMEエンコードしてないとか、
本文をJISと宣言しておいてSJISとか良く見る。
作る側が理解してない。

それを受信すらメールソフトが何とか正しく表示しようと努力して、
それでもダメだった場合に化ける。

あと稀に、ソースからしてそもそも化けてるという
バカが書いたメールもあるw
2018/08/28(火) 18:32:36.85ID:lp3F9A9k0
>>566
たまに磁場消したメール受けとる
解読するのを楽しみにしたりする
2018/08/28(火) 18:32:58.74ID:lp3F9A9k0
字化けした
ごめんw
2018/08/28(火) 20:03:27.33ID:ZdacH0nd0
>>568
も抜け・・・
570565 (ワッチョイ 2ad0-wF79)
垢版 |
2018/08/29(水) 16:28:12.93ID:Fy8w4QmX0
>>565です

>>566さん
こちらがしっかりと設定すれば大丈夫そうですね。
後は山のように試行錯誤を積み重ねていきたいと思います(´・ω・`)

今はmail($to・・・)の$toに自分のメールアドレスをどのようにして入れるか考えてます。
define関数で定義した方が安全?なんでしょうか。
勉強がんばります。
2018/08/29(水) 16:47:55.26ID:pmPs3x9R0
>>570
メンテナンス性を考慮すれば定数で定義しとく方が好ましい
”ハードコーディング”でググるんだ

あとPHP5.3未満だという理由でもない限りは
定数の定義はdefine()じゃなくconstでいい

define()にしかできない事をやる時だけdefine()を使う
…というかdefine()にしかできないような定数の定義の仕方は
しない方がいいというか
2018/08/29(水) 17:14:13.88ID:oFL8fPjK0
>>570
confg.phpとかconfig.iniとか作って、
設定値を書きまくるファイル用意するといいよ。
定数名は大文字にしておけば目立つね。
573570 (ワッチョイ 2ad0-wF79)
垢版 |
2018/08/29(水) 18:04:53.37ID:Fy8w4QmX0
>>570です

>>571さん
constでも定義できるんですね。
他にも詳しいアドバイスありがとうございます。

>>572さん
設定値を管理するファイルを作る、メモしました。
定数名は大文字がマナー?なんですかね。

お二方、アドバイスありがとうございます。
ずっと画面と見つめ合ってたので頭が痛いです。
体調管理に気を付けます。
ありがとうございました。
2018/08/30(木) 19:30:03.21ID:GwaNatXn0
>>570の$toって直書きすると外部から参照されたりするん?
そこらへん うちも勉強不足だわ
2018/08/30(木) 19:32:18.17ID:Ut/QgXMd0
外部からってどういう意味?
宛先見せないと配達できないでしょ?
そういうことじゃなくて?
2018/08/30(木) 19:44:52.34ID:EWk4rtO80
web公開ディレクトリに置かないのが基本なんだよ。
hdocs/index.html
lib/php/config.ini
2018/08/30(木) 20:10:41.63ID:b1WMdnEwM
共用のレンタルサーバーだと、
Permissionを0604にするのもありだな。

最初の0は気にしない。
次の6は自分の読み書き権限
次の0は同居してるユーザーに権限剥奪
最後の4はApacheに読み取り権限
2018/08/30(木) 20:37:32.95ID:Ut/QgXMd0
>>577
釣りかな?
それApacheにかぎらず誰でもオッケーって意味だよ
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なんかで変わってくる場合もあるし。
2018/09/01(土) 18:28:51.43ID:0yUv0G400
exit()
die()
(´・ω・`)?
2018/09/01(土) 18:34:59.89ID:5sir/CBW0
死ねって言われたいのかなあ
2018/09/01(土) 19:17:45.13ID:/Rwrc1N80
>>580
ディエはエラーログに残る
2018/09/02(日) 10:08:19.04ID:ub6GWDzd0
ど素人です
質問させてください
cakephp3のwebroot以下にある.htaccessで、mod_rewriteの括弧外にrewritecondやrewriteruleが書かれているものを人様のサイトで拝見しました
括弧外に置かれても、機能するものなのでしょうか
2018/09/02(日) 10:25:45.60ID:afimrVjB0
<IfModule mod_rewrite.c>
もしかしてこれ?
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>
===================

このようなものなのですが
2018/09/02(日) 15:33:48.84ID:afimrVjB0
それは、そのモジュールが有効化されていたら設定するって意味で、
何のモジュールのディレクティブなのか明確になる以外にメリットない。

だから書かない方が良い。
ifを書かなければ、モジュールが無効なら即500エラーで設定ミスに気付ける。
モジュールが無効なのにエラーにならず、
設定したつもりでいる方が危ないからね。
2018/09/02(日) 15:42:33.40ID:NagoJ+s80
>>581
怖い(´・ω・`)

>>582
ありがとう
2018/09/02(日) 18:59:05.09ID:ub6GWDzd0
>>586
返答ありがとうございます

リファレンスにしていたものが、全てディレクティブを括弧内に書いていたのと
cakephpのインストール直後のプロジェクトに入っていた.htaccessでも
ディレクティブが<ifmodule>で囲まれていたので、
基本的には囲う必要があり、外に出る方がおかしいと思い込みがありました

まさにおっしゃられていた通り、apache2.confを見てみたら
Loadmoduleでmod_rewriteを有効化していたつもりで、実際にはコメントアウトされていたのですが
それにも気付いていませんでした

どうもありがとうございます
2018/09/03(月) 09:54:20.75ID:0wOUtf7+0
読み返してたんだけど>>557の前者って使うことないものなの?
2018/09/03(月) 11:36:23.62ID:Shssq38w0
>>587
ネタにマジレスしとくと
dieの発音は「ディエ」じゃなく「ダイ」だし
exitとdieは等価なので、エラーログに残るとかは嘘

exitの方が一般的だとは思うが好きな方を使えばOK
あくまで予想だが、die()はperl言語出身者に配慮して作ったんじゃなかろうか
2018/09/03(月) 12:01:10.60ID:Nk9MF4uYd
height
align
allow
deny

web系に関わってるのにこういう単語の読み方がおかしな人の言う事は疑ってかかった方がいいという経験則
2018/09/03(月) 12:08:27.54ID:lQhKIzFA0
>>590
すまん。perlの関数と勘違いしてた…
PHPにおいてはexitもdieも同じらしい。
dieの引数も標準出力されたw

プログラムは読み手に意図を伝えた方が良い場合もあるから、
exit(1)よりdieの方が致命的エラーなのかなと思わせることはできるかな。
しかし標準出力されるんじゃあ使えないな。

嘘こいてすまん。
2018/09/03(月) 12:11:22.59ID:lQhKIzFA0
>>591
ヘイト
アリグン

デニー

allowを読み違えてる人は見たことない…

あとは、hrefをハーフ、widthをウィドスは稀に。
ウィドスはまだネイティブに近い方かな?
2018/09/03(月) 12:27:19.50ID:Shssq38w0
>>591
ハイト
アライン
アラウ
ディナイ

どれも高校入試の時の発音問題頻出単語(要するに中学レベルの単語)だったような遠い20年以上前の記憶
うんざりする程しつこく教えてくれた当時の英語担任に感謝しないといかん
2018/09/03(月) 12:40:39.44ID:lQhKIzFA0
アラウか…
何かそこだけ妙にネイティブだな。
アローですまん…
2018/09/03(月) 12:41:40.31ID:wBpew+1c0
本来ネイティブの発音に合わせて読むべきなんだろうけど、
アラウやディナイと発音しても、日本人相手だと通じなかったりする
2018/09/03(月) 12:44:28.91ID:lQhKIzFA0
アラウはちょっとなあ…
それ言い出すとonlyはオウンリイだし。
日頃はカタカナ英語でいいです。
2018/09/03(月) 12:55:17.57ID:Nk9MF4uYd
ネタなのかマジなのかわからなくなってきたけど正解はもちろん>>594
allow,denyをアローデニーと読んでいた自称サーバー管理者が設定したウンコみたいなサーバーに泣かされて以来トラウマです
そして今なおallow,denyという単語を目にするという事はそれ即ち、去年末にサポートが終わったApache2.2系をまだ使い続けてるというトラウマの再来になる可能性がががが
2018/09/03(月) 13:42:47.41ID:Q3fOl+JcM
warning はどうよ
2018/09/03(月) 14:06:21.30ID:Shssq38w0
ウォーニング

まぁ会社によって方言みたいなのはあるよね
内心そうじゃないだろ…(ため息)と思いつつ相手に合わせる事も大事
2018/09/03(月) 14:10:12.54ID:fNzMywLO0
今の所全問正解っぽくて安心した

falseをファルスと読む人を見る度に
パルスのファルシのルシがコクーンでパージを思い出す
2018/09/03(月) 14:18:24.08ID:bh6+crPg0
アリグンとかデニーとかいってるならヘイグヒトぐらいにしないと
2018/09/03(月) 14:53:06.39ID:lQhKIzFA0
あんまりこだわると意識高い系とか嫌味を言われそうだし、
まあわかればいいやね…

ここじゃないかもだかど、どっかのPHPスレで
エチョーと書いたらウケたよ。
2018/09/03(月) 14:55:19.36ID:wBpew+1c0
>>603
コーヒー吹くとこだったぞ
2018/09/03(月) 15:27:39.33ID:/uGmskjCa
allowというかau音はアゥからオゥに寄った側に聞こえるからカタカナ英語的にはアロゥはアリかなと思う
arrowと区別したいときはアラゥと言うべきだと思うけど

デニーとかアリグンは流石にねーなw
2018/09/03(月) 16:58:16.51ID:MppWbPja0
ini → イニ? アイエヌアイ?
array → アレイ? アライ?
あと正直str系の関数が読めない
strlen strpos当たりはわかるけど
stripos strrpos strripos
あたり
2018/09/03(月) 17:56:38.19ID:Shssq38w0
array:アレイ

ini:initializationの略
stripos:string case-insensitive postionの略だと勝手に思ってる
strrpos:string reverse positionの略だと勝手に思ってる

かっこよく読みたいなら元の単語を略さずに読めばいいんだろうが
実用的にはアルファベットをそのまま読めばいいじゃなかろうか
2018/09/03(月) 19:06:04.00ID:w8msLsZZ0
if
イフ

then
ゼン?

else
エルス?

true
トゥルー?

false
フォールス?

try
トライ?

throw
スロー?

catch
キャッチ?
2018/09/04(火) 00:34:18.87ID:3EnQXiZU0
すみません、>>583で質問したのですが、
再度質問してよろしいでしょうか

サーバのドキュメントルートに置いた
CakePHPプロジェクトフォルダ(仮にCakeとします)
直下の.htaccessを消去しても
http://{hostIP}/cake/
をアドレスバーに打ち込むと、なぜか
https://{hostIP}/cake/webroot/
にリダイレクトされる現象が起きています

.htaccess以外にリダイレクトが起きる原因として考えられるものがあれば
教えていただきたくお願い申し上げます
なお、サーバはapache2.4.10、OSはDebian8.0です
2018/09/04(火) 11:43:27.54ID:2slzjYMb0
routes.phpとかは?
アプリのリダイレクトなのか、
apacheのリダイレクトなのか切り分けていくと良いのでは。
611デフォルトの名無しさん (ワッチョイ db9e-J7KC)
垢版 |
2018/09/04(火) 21:34:32.07ID:8BTVVQRQ0
include('/path/file.txt');
include('http://www.example.com/path/file.txt');
って何か違いはありますか?
2018/09/04(火) 22:55:22.87ID:JkSql3w10
>include('/path/file.txt');

/ から始まっているから、何かからの絶対パスかな?

プロジェクトルートか、公開サイトのルートからの絶対パスかな?
2018/09/04(火) 23:04:14.00ID:2slzjYMb0
上のは言ってみればfile://になるんじゃないの? 違う?
2018/09/05(水) 16:46:47.73ID:dwWFM3zt0
公式のmail()とmb_send_mail()のページを見ていたのですが、
mail()のsubjectは表題、messageはメッセージ、
mb_send_mail()のsubjectは件名、messageは本文となっていました。
これは何かが違うということでしょうか。
くだらない質問と思いますが、よろしくお願いします。
2018/09/05(水) 17:13:31.91ID:eC5bTWUj0
全く同じ意味ですが異なります
この事に気をつけて厳密に取捨選択し、
どっちでもいいから適当に使いましょう
2018/09/05(水) 17:23:40.98ID:HJ2kcLma0
mailはエンコードしてくれないから自分でしてから呼び出す。
mbはエンコードしてくれる。

というか、ググれよ!
2018/09/05(水) 17:28:21.76ID:+CD9GwZX0
どっちの関数も直接使うには勝手が悪いので、さっさと基礎理解してライブラリ使うようにしましょう。
2018/09/05(水) 17:46:40.68ID:dwWFM3zt0
アドバイスありがとうございました。
619デフォルトの名無しさん (ワッチョイ 969e-O+me)
垢版 |
2018/09/06(木) 17:01:57.65ID:kzkzi/Yy0
<form method="get" でsubmitした場合、
$_GETを使うのが普通だと思うのですが
$_POSTでも値が取れるのですが、そういうもんですか?
2018/09/06(木) 17:39:08.61ID:bmlthp5L0
普通だけど普通じゃなくなって来たから、filter_input使う。
このスレの上の方にも出てる。
2018/09/06(木) 19:14:57.47ID:xdo6cDUj0
>>619
それちゃんとGETメソッドで送ってる?
GETとPOSTでは受け渡し方法が違うから
ちゃんとやっていればPOSTでは受けとれないはず
622デフォルトの名無しさん (ワッチョイ 969e-O+me)
垢版 |
2018/09/06(木) 20:05:38.46ID:kzkzi/Yy0
>>621
WordPressなんですが、
form タグを埋め込んでbuttonクリックでsubmitしているので間違は無いと思います。
でも何故か$_GETでも$_POSTも値が取れるんです。
2018/09/06(木) 20:59:34.70ID:bmlthp5L0
GETとPOSTと両方送ってるとかじゃないの…w
624デフォルトの名無しさん (ワッチョイ 8b80-f65Y)
垢版 |
2018/09/06(木) 21:15:35.52ID:64ZwjQvb0
methodをgetでサブミットしてるなら
HTTPプロトコルではcontent bodyの部分は空になる
そういう仕様だからな
つまり通常postで取得できる部分はからっぽ

methodをpostでサブミットしてるなら
そういう状況はHTTPプロトコルでも十分にありえる
uriにurlエンコードされた文字列が含まれる状況でpostしたケースならありえるということになる

ちなみにオレはスクリプトの変数にその値がどう格納されるかは知らない

質問してるヤツは

 getでサブミットしてんのになんでそんなことがおきんの?

というのが質問の主旨と理解した
低学歴知恵遅れがその質問をどう解釈したかは知らない
2018/09/06(木) 21:39:08.51ID:xdo6cDUj0
>>619
サーバーのログって見ることは出来ない?
リクエストがどういうメソッドでやり取りされたか分かると思うけど
2018/09/06(木) 22:24:24.23ID:bmlthp5L0
>>624
冗談にムキになって… 低学歴知恵遅れとかw
主旨についてはわかってて書いてんの。
それが5chというところだから。
627デフォルトの名無しさん (ワッチョイ 8b80-f65Y)
垢版 |
2018/09/06(木) 22:27:25.22ID:64ZwjQvb0
はい低学歴知恵遅れ図星
ごまかそうとしても
もうバレてるからな

分かりやすいわ。。。
2018/09/06(木) 22:52:05.75ID:bmlthp5L0
正解です。でも知恵遅れはないよ。
2018/09/06(木) 22:55:48.48ID:xdo6cDUj0
冗談は冗談が通じる相手にしないと

この質問者はPOSTとGETについて理解できていないんだから
冗談だとは受けとってないと思うぞ
■ このスレッドは過去ログ倉庫に格納されています