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
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 538a-od5V)
2017/12/20(水) 18:00:20.28ID:1xaO/YRR02デフォルトの名無しさん (ワッチョイ 0b5d-hL1C)
2018/01/06(土) 23:13:46.81ID:RuMnMvof0 関連リンク
■PHPマニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PHPNG https://wiki.php.net/phpng
■メーリングリスト http://ml.php.gr.jp/mailman/listinfo/
(以下英語)
■公式リポジトリ http://git.php.net/
■PHP-RFC https://wiki.php.net/rfc
■PECL http://pecl.php.net/
■Composer https://getcomposer.org/
■Packagist https://packagist.org/
■Zend Tech. Ltd. http://www.zend.com/
フレームワーク(一部)
■Zend Framework https://framework.zend.com/
■Symfony https://symfony.com/
■Laravel https://laravel.com/
■CodeIgniter https://codeigniter.com/
■Yii http://www.yiiframework.com/
■FuelPHP https://fuelphp.com/
■CakePHP https://cakephp.org/
テンプレートエンジン(一部)
■Twig https://twig.symfony.com/
■Blade https://laravel.com/docs/5.1/blade
■PHPマニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PHPNG https://wiki.php.net/phpng
■メーリングリスト http://ml.php.gr.jp/mailman/listinfo/
(以下英語)
■公式リポジトリ http://git.php.net/
■PHP-RFC https://wiki.php.net/rfc
■PECL http://pecl.php.net/
■Composer https://getcomposer.org/
■Packagist https://packagist.org/
■Zend Tech. Ltd. http://www.zend.com/
フレームワーク(一部)
■Zend Framework https://framework.zend.com/
■Symfony https://symfony.com/
■Laravel https://laravel.com/
■CodeIgniter https://codeigniter.com/
■Yii http://www.yiiframework.com/
■FuelPHP https://fuelphp.com/
■CakePHP https://cakephp.org/
テンプレートエンジン(一部)
■Twig https://twig.symfony.com/
■Blade https://laravel.com/docs/5.1/blade
3デフォルトの名無しさん (アウアウウー Sa8f-hL1C)
2018/01/08(月) 07:26:43.16ID:4m/0uKGZa evernoteのENEXファイルをパースする処理を書いていますが
$str = '<?xml version="1.0" encoding="UTF-8"?>
<en-note><div>てすと</div><div>てすと</div></en-note>';
$xml = simplexml_load_string($str);
var_dump($xml);
とすると
object(SimpleXMLElement)#1 (1) {
["div"]=>
array(2) {
[0]=>
string(9) "てすと"
[1]=>
string(9) "てすと"
}
}
となり、en-note要素がどこかにいってしまいます
en-noteを取り出してasXML()したいのですが、
何故かsimplexmlオブジェクトの中にありません
en-noteという名前が悪いのかと思ってdivとかhとかにしてみましたが
それでも一番外側の要素はsimplexmlオブジェクトに入っていません
何故こうなるのでしょうか?
$str = '<?xml version="1.0" encoding="UTF-8"?>
<en-note><div>てすと</div><div>てすと</div></en-note>';
$xml = simplexml_load_string($str);
var_dump($xml);
とすると
object(SimpleXMLElement)#1 (1) {
["div"]=>
array(2) {
[0]=>
string(9) "てすと"
[1]=>
string(9) "てすと"
}
}
となり、en-note要素がどこかにいってしまいます
en-noteを取り出してasXML()したいのですが、
何故かsimplexmlオブジェクトの中にありません
en-noteという名前が悪いのかと思ってdivとかhとかにしてみましたが
それでも一番外側の要素はsimplexmlオブジェクトに入っていません
何故こうなるのでしょうか?
4デフォルトの名無しさん (アウアウウー Sa8f-BQEm)
2018/01/08(月) 13:03:30.26ID:4m/0uKGZa5デフォルトの名無しさん (アウアウウー Sa8f-hL1C)
2018/01/08(月) 21:13:59.71ID:rpNlU31Ua shell_execなどは、mod_phpから実行した時には
何か制限を受けるのでしょうか?
echo shell_exec('"C:/Program Files (x86)/Evernote/Evernote/ENScript.exe" exportNotes /q "ほにゃらら"');
これでevernoteのノートを出力出来るはずなのですが
mod_phpから呼び出した時には何も表示されません
コマンドラインから呼び出すと普通に表示されます
echo shell_exec('cd')
のように単純なコマンドで試すと、mod_phpでも問題なく実行されています
メモリ制限の問題かと思ってmemory_limitを-1にしても何も変わりません
何か制限を受けるのでしょうか?
echo shell_exec('"C:/Program Files (x86)/Evernote/Evernote/ENScript.exe" exportNotes /q "ほにゃらら"');
これでevernoteのノートを出力出来るはずなのですが
mod_phpから呼び出した時には何も表示されません
コマンドラインから呼び出すと普通に表示されます
echo shell_exec('cd')
のように単純なコマンドで試すと、mod_phpでも問題なく実行されています
メモリ制限の問題かと思ってmemory_limitを-1にしても何も変わりません
6デフォルトの名無しさん (アウアウウー Sa8f-hL1C)
2018/01/09(火) 09:34:45.35ID:SyBlvM9La >>5についてですが
外部実行ファイルはドキュメントルート下に置かないと実行できないみたいな情報があったので
ENScript.exeを呼び出すバッチファイルをドキュメントルートに置いて実行してみましたが駄目でした
mod_phpからwhoamiを実行すると
nt authority\systemという権限で動いていることが分かりました
この権限が制限を実現しているのでしょうか?
外部実行ファイルはドキュメントルート下に置かないと実行できないみたいな情報があったので
ENScript.exeを呼び出すバッチファイルをドキュメントルートに置いて実行してみましたが駄目でした
mod_phpからwhoamiを実行すると
nt authority\systemという権限で動いていることが分かりました
この権限が制限を実現しているのでしょうか?
7デフォルトの名無しさん (アウアウウー Sa8f-hL1C)
2018/01/09(火) 09:41:14.36ID:SyBlvM9La また、セーフモードではありません
外部プログラムの制限についてドキュメントに書いていないのが解せません…
Windows版だけの現象なのでしょうか
外部プログラムの制限についてドキュメントに書いていないのが解せません…
Windows版だけの現象なのでしょうか
8デフォルトの名無しさん (ワッチョイ 0b5d-hL1C)
2018/01/09(火) 10:04:52.25ID:lcs1dgGe0 Evernoteとか使ったことないから知らんけど, その実行者の権限で見える, 見えてよい或いは見えるべきものを扱ってんの?
9デフォルトの名無しさん (アウアウウー Sa8f-hL1C)
2018/01/09(火) 10:13:18.61ID:SyBlvM9La Evernoteは非常に個人的なものなので、
確かにウェブサーバからデータが見えたらどうなのかっていうのはありますね
自分用アプリを作るためにApacheとブラウザを使っていましたが
本来ウェブサーバはネットに公開するためのものなので
権限が低くされるのも当然といえば当然。
そう考えるとウェブサーバを使ったアプリ構築を脱却して
Electronとかを使って作った方がいいですね
ありがとうございました
確かにウェブサーバからデータが見えたらどうなのかっていうのはありますね
自分用アプリを作るためにApacheとブラウザを使っていましたが
本来ウェブサーバはネットに公開するためのものなので
権限が低くされるのも当然といえば当然。
そう考えるとウェブサーバを使ったアプリ構築を脱却して
Electronとかを使って作った方がいいですね
ありがとうございました
10デフォルトの名無しさん (ワッチョイ 1fae-nOrU)
2018/01/10(水) 13:35:01.59ID:70pYzGse0 include先での$_POSTの参照について質問です。
index.html(httpd.confいじってhtmlファイルでもphp使えるようにしてる)からfile1.phpをincludeし、file1.phpの中でfile2.phpをincludeしています。(処理の関係上そうしたい)
index.htmlにPOSTがあった場合に、file1.phpでは$_POSTを参照出来るのですが、file2.phpからは何故か出来ません。
index.htmlで直接file2.phpをincludeするとPOSTの参照は出来ます。
そこら辺のルールに詳しい方いましたら解説していただけないでしょうか。よろしくお願いします。
index.html(httpd.confいじってhtmlファイルでもphp使えるようにしてる)からfile1.phpをincludeし、file1.phpの中でfile2.phpをincludeしています。(処理の関係上そうしたい)
index.htmlにPOSTがあった場合に、file1.phpでは$_POSTを参照出来るのですが、file2.phpからは何故か出来ません。
index.htmlで直接file2.phpをincludeするとPOSTの参照は出来ます。
そこら辺のルールに詳しい方いましたら解説していただけないでしょうか。よろしくお願いします。
11デフォルトの名無しさん (ワッチョイ 6661-QpsD)
2018/01/13(土) 10:49:54.90ID:By98rTnD0 $_POSTに上書きしちゃってる可能性
12デフォルトの名無しさん (ワッチョイ 85c3-3Ttg)
2018/01/20(土) 00:15:59.55ID:MzOH7w6y0 ドがつく素人です。
しょーもない質問ですいません。
【困りごと】
ドキュメントルートにphpinfo関数を実行するファイルを作成したが、
ブラウザ上でうまく表示されない。(スクリプトの記述のまま表示されてしまう)
【状況】
ApacheとPHPをインストールしたんですが、
以下URLのようにphpinfoコマンドで記述したphpを、
ドキュメントルートに入れて、http://localhost/phpinfo.phpで
実行したのですが、
<?php
phpinfo();
?>
と、スクリプトの記述そのまま表示されてしまいます。
何か設定ミスだとは思うのですが、なかなか原因が分からず・・・・
【URL】
https://i-bitzedge.com/php/how-to-use-phpinfo
しょーもない質問ですいません。
【困りごと】
ドキュメントルートにphpinfo関数を実行するファイルを作成したが、
ブラウザ上でうまく表示されない。(スクリプトの記述のまま表示されてしまう)
【状況】
ApacheとPHPをインストールしたんですが、
以下URLのようにphpinfoコマンドで記述したphpを、
ドキュメントルートに入れて、http://localhost/phpinfo.phpで
実行したのですが、
<?php
phpinfo();
?>
と、スクリプトの記述そのまま表示されてしまいます。
何か設定ミスだとは思うのですが、なかなか原因が分からず・・・・
【URL】
https://i-bitzedge.com/php/how-to-use-phpinfo
13デフォルトの名無しさん (ワッチョイ 755d-GP+B)
2018/01/20(土) 01:00:58.30ID:6KDbA8qD0 XAMPPじゃなくてApacheとPHPを個別に手でインストールしたのか?
手でインストールするならApache側の設定を修正してPHP用モジュールをロードする必要があるぞ
何か今になってもXAMPPやらApacheやらの導入を最初にやらせるサイト結構あるけど, きちんとしたWebサーバが本当に必要になるまではPHPのビルトインサーバが楽でいいよ
http://php.net/manual/ja/features.commandline.webserver.php
手でインストールするならApache側の設定を修正してPHP用モジュールをロードする必要があるぞ
何か今になってもXAMPPやらApacheやらの導入を最初にやらせるサイト結構あるけど, きちんとしたWebサーバが本当に必要になるまではPHPのビルトインサーバが楽でいいよ
http://php.net/manual/ja/features.commandline.webserver.php
14デフォルトの名無しさん (ワッチョイ 0b80-H9dj)
2018/01/20(土) 01:12:47.90ID:6q5j1Hcg015デフォルトの名無しさん (ワッチョイ 559f-x16F)
2018/01/20(土) 01:32:09.29ID:bSTKludV0 >>12
ちな俺はXAMPP/Windowsで使っているけど、最初からPHPは使えた。
(もちろん13の言うとおり、最初から設定してあるという意味で)
一般論になるが、環境の立ち上げはずぶの素人だと辛い。
(はまった場合に回避できない)
だから13の言っていることは正しくて、知らないのならまずはお手軽環境でやったほうがいい。
XAMPPも十分お手軽だし俺はいいと思うけどね。
最初からガチ鯖で、というのも一理あるのだが、それは後付けの意見でしかないことも多い。
ちな俺はXAMPP/Windowsで使っているけど、最初からPHPは使えた。
(もちろん13の言うとおり、最初から設定してあるという意味で)
一般論になるが、環境の立ち上げはずぶの素人だと辛い。
(はまった場合に回避できない)
だから13の言っていることは正しくて、知らないのならまずはお手軽環境でやったほうがいい。
XAMPPも十分お手軽だし俺はいいと思うけどね。
最初からガチ鯖で、というのも一理あるのだが、それは後付けの意見でしかないことも多い。
16デフォルトの名無しさん (ワッチョイ 0b96-Qbx4)
2018/01/20(土) 10:53:53.90ID:bpfiGwqM0 初めてc#でプログラミング始めたんですが、
Visual studioを使ってると頻繁に行末に移動する「end」やカーソルキーを使いたくなるけど、
ショートカットってないんでしょうか?
nemacsとかだとctrl+eとかで行末に移動してくれたようなおぼろげな記憶があるんですけど。
Visual studioを使ってると頻繁に行末に移動する「end」やカーソルキーを使いたくなるけど、
ショートカットってないんでしょうか?
nemacsとかだとctrl+eとかで行末に移動してくれたようなおぼろげな記憶があるんですけど。
17デフォルトの名無しさん (ワッチョイ 0b96-Qbx4)
2018/01/20(土) 10:54:20.52ID:bpfiGwqM0 ほんとくだらない質問ですいません。
ググったけどショートカット見つからなかったもので。
ググったけどショートカット見つからなかったもので。
18デフォルトの名無しさん (アウアウウー Sad9-ULl5)
2018/01/20(土) 17:11:45.97ID:tLgBkvHga スレタイ読めねぇほどバカなのか
19デフォルトの名無しさん (ワッチョイ 5dd2-k4Q3)
2018/01/22(月) 17:07:06.70ID:YXQIUh04020デフォルトの名無しさん (ワッチョイ 27e9-7ZJK)
2018/01/26(金) 16:45:32.90ID:aV9eTo+Y0 よくあるファイルアップロードフォームと受け取り側PHPの構成なんですが、
アップロードされたファイル名がマルチバイトだと文字化け・・・というより、「あ.txt」なら「あ.txt」
となってしまいます。
Windows + XAMPP 環境ですが、
mb_convert_encoding($uploadfile, "SJIS", "auto");
や
mb_convert_encoding($uploadfile, "CP932", "auto");
を行っても結果は変わりません。
何かチェックすべき項目を見落としていると思うのですが、お助け下さい。
アップロードされたファイル名がマルチバイトだと文字化け・・・というより、「あ.txt」なら「あ.txt」
となってしまいます。
Windows + XAMPP 環境ですが、
mb_convert_encoding($uploadfile, "SJIS", "auto");
や
mb_convert_encoding($uploadfile, "CP932", "auto");
を行っても結果は変わりません。
何かチェックすべき項目を見落としていると思うのですが、お助け下さい。
21デフォルトの名無しさん (ワッチョイ 27e9-7ZJK)
2018/01/26(金) 16:47:17.43ID:aV9eTo+Y0 おうふ
「あ.txt」が「&#12354;.txt」(半角)となります。
「あ.txt」が「&#12354;.txt」(半角)となります。
22デフォルトの名無しさん (ワッチョイ 27e9-7ZJK)
2018/01/26(金) 17:20:40.16ID:aV9eTo+Y0 自己解決しました。
これでいけますね。
mb_convert_encoding($uploadfile, "SJIS", "HTML-ENTITIES");
ところで、これって環境によって不要だったりするのですか?
これでいけますね。
mb_convert_encoding($uploadfile, "SJIS", "HTML-ENTITIES");
ところで、これって環境によって不要だったりするのですか?
23デフォルトの名無しさん (ワッチョイ ef99-fPTX)
2018/01/27(土) 15:17:32.64ID:MzrwFkn+0 $a = [
[1, 5],
[9, 1],
[8, 2],
[1, 2],
];
みたいに宣言しているところがあって、これの2個目と3個目を変数で宣言したいわけよ
$a = [
[1, 5],
$b,
[1, 2],
];
みたいに。
この時 $b にはどういう入れ方すれば最初の形を再現してくれます?
[1, 5],
[9, 1],
[8, 2],
[1, 2],
];
みたいに宣言しているところがあって、これの2個目と3個目を変数で宣言したいわけよ
$a = [
[1, 5],
$b,
[1, 2],
];
みたいに。
この時 $b にはどういう入れ方すれば最初の形を再現してくれます?
24デフォルトの名無しさん (アウアウウー Sa77-4wfc)
2018/01/27(土) 16:01:09.58ID:kseb+5Eha 無理じゃね
25デフォルトの名無しさん (ワッチョイ ef99-fPTX)
2018/01/27(土) 17:00:21.87ID:MzrwFkn+0 やはりか
$b = [
[9, 1],
[8, 2],
];
にしちゃうと形変わっちゃうよな?
$b = [
[9, 1],
[8, 2],
];
にしちゃうと形変わっちゃうよな?
26デフォルトの名無しさん (ワッチョイ e365-4wfc)
2018/01/27(土) 17:16:07.80ID:mUh+GRjL0 array_merge使うのがいいと思うが
27デフォルトの名無しさん (ワッチョイ 566a-grVD)
2018/01/31(水) 21:00:18.89ID:68O1HbzJ0 Docコメントはツール使って書いてますか?
それとも使わず書いてますか?(*´ڡ`●)
それとも使わず書いてますか?(*´ڡ`●)
28デフォルトの名無しさん (ワッチョイ bf6a-qmJt)
2018/02/02(金) 20:59:07.10ID:angTjduf0 忘れてください(`・ω・´)ゞ
29デフォルトの名無しさん (ワッチョイ f72a-CNA0)
2018/02/03(土) 19:45:51.02ID:bLLjGwhG0 画像アップロードする時に、1つのフォルダにアップロードするのではなく、
/年/月/ファイル名
とわける方法があります。(WordPressとか)
しかしこの場合、ファイルを編集(入れ替える)時に以下の処理が必要になります。
1:編集するファイルの登録日を取得
2:1のフォルダ内にファイルが存在するか確認
3:存在していたら削除する
4:更新日のフォルダを作成
5:4のフォルダにファイルをアップロード
この処理を行うと「登録日のフォルダにファイルがひとつも存在しない」
と言った可能性があり、空フォルダになります。
空のままにしたくない場合は
{他にファイルが存在しない場合はフォルダごと削除}
と言った処理も必要になります。
ファイルをDBで管理している場合は、何度もクエリーを投げる必要があり、
無駄が多い気がするのですが、いかがでしょうか?
/年/月/ファイル名
とわける方法があります。(WordPressとか)
しかしこの場合、ファイルを編集(入れ替える)時に以下の処理が必要になります。
1:編集するファイルの登録日を取得
2:1のフォルダ内にファイルが存在するか確認
3:存在していたら削除する
4:更新日のフォルダを作成
5:4のフォルダにファイルをアップロード
この処理を行うと「登録日のフォルダにファイルがひとつも存在しない」
と言った可能性があり、空フォルダになります。
空のままにしたくない場合は
{他にファイルが存在しない場合はフォルダごと削除}
と言った処理も必要になります。
ファイルをDBで管理している場合は、何度もクエリーを投げる必要があり、
無駄が多い気がするのですが、いかがでしょうか?
30デフォルトの名無しさん (ワッチョイ 1781-hxSR)
2018/02/03(土) 22:08:01.43ID:uf1OevP3031デフォルトの名無しさん (ワッチョイ 1774-2GDW)
2018/02/03(土) 22:11:48.87ID:w5tgMa2Q0 Readに対してWriteの回数は極めて少ないと思えば大した問題ではないのでは
32デフォルトの名無しさん (ワッチョイ f72a-CNA0)
2018/02/04(日) 00:58:09.63ID:e+yYqllI0 >>30-31
ご意見ありがとうございます。
WordPressとか他のCMSを見たのですが、
一度登録した画像を編集(作り直す)のは止めようと思います。
無駄が多いですし、ファイル操作で入れ替えるみたいな処理もおかしい気がして。
入れ替えるなら一旦削除してアップロードし直すのが通常だと思いますし
ご意見ありがとうございます。
WordPressとか他のCMSを見たのですが、
一度登録した画像を編集(作り直す)のは止めようと思います。
無駄が多いですし、ファイル操作で入れ替えるみたいな処理もおかしい気がして。
入れ替えるなら一旦削除してアップロードし直すのが通常だと思いますし
33デフォルトの名無しさん (ワッチョイ 57b3-ycng)
2018/02/07(水) 20:59:50.48ID:MJqvUrQe0 例えば↓みたいなループがあったとして、<br>
error_logがなかったら0.001秒で処理が終わって、
ある場合は5秒くらいかかるんだけど、error_logって結構コストの掛かる処理なん?
for ($i = 0; $i < 100000; $i++) {
error_log("hoge");
}
ちなみに手元の環境はPHP7.2.0
error_logがなかったら0.001秒で処理が終わって、
ある場合は5秒くらいかかるんだけど、error_logって結構コストの掛かる処理なん?
for ($i = 0; $i < 100000; $i++) {
error_log("hoge");
}
ちなみに手元の環境はPHP7.2.0
34デフォルトの名無しさん (ワッチョイ 9dd2-7Au1)
2018/02/08(木) 12:29:07.56ID:E75692Mg0 ログを実際にコンソールに出してるなら
その分遅くなる、もし出してるならファイルにリダイレクトしてみ
その分遅くなる、もし出してるならファイルにリダイレクトしてみ
35デフォルトの名無しさん (ワッチョイ 8237-nHV3)
2018/02/09(金) 21:42:53.67ID:DI5fWWyV0 すいません。
mysqliで接続されません。
dbサーバーとwebサーバーは同一です。
ワードプレスを導入しているのですが、そちらはインストールされて記事等もdbに入って更新も出来ます。
phpadminも入りました。
ただそれ以外のページからだと接続すらできてないです。(接続を行うとエラーも出ない上、phpが空白で表示される。echo等も死ぬ)
何か考えられる原因等ありますか?phpの権限とかですか?
mysqliで接続されません。
dbサーバーとwebサーバーは同一です。
ワードプレスを導入しているのですが、そちらはインストールされて記事等もdbに入って更新も出来ます。
phpadminも入りました。
ただそれ以外のページからだと接続すらできてないです。(接続を行うとエラーも出ない上、phpが空白で表示される。echo等も死ぬ)
何か考えられる原因等ありますか?phpの権限とかですか?
36デフォルトの名無しさん (ワッチョイ 8237-nHV3)
2018/02/10(土) 00:18:04.71ID:Yu/cvnD90 自己解決しました
37デフォルトの名無しさん (スップ Sdc2-nQD2)
2018/02/13(火) 11:26:59.19ID:2Q2AHgA2d 質問させてください。
JWTを使いたいです。
HTTPでリクエストして、レスポンスとしてJSON形式のテキストを受け取る際の署名にJWTを用いたいです。
JSONに電子署名をして、URL-safeな文字列にする手順の規約、と言うのは分かりましたが具体的にはどうすればそうなるのか分かりません。
署名する処理は JwtHS256Encodeメソッド でやりたいです。
hash_hmac()は使ったことがあります。
具体的なソースコードなど提示してくれるとありがたいです。
とんちんかんなことを言っていたらすみません。
よろしくお願いします。
JWTを使いたいです。
HTTPでリクエストして、レスポンスとしてJSON形式のテキストを受け取る際の署名にJWTを用いたいです。
JSONに電子署名をして、URL-safeな文字列にする手順の規約、と言うのは分かりましたが具体的にはどうすればそうなるのか分かりません。
署名する処理は JwtHS256Encodeメソッド でやりたいです。
hash_hmac()は使ったことがあります。
具体的なソースコードなど提示してくれるとありがたいです。
とんちんかんなことを言っていたらすみません。
よろしくお願いします。
38デフォルトの名無しさん (ワッチョイ 3174-jA6l)
2018/02/13(火) 12:03:56.31ID:cOH/iFjL039デフォルトの名無しさん (スップ Sdc2-nQD2)
2018/02/13(火) 12:49:59.79ID:2Q2AHgA2d >>38
ありがとうございます!
まだ試してないんですが、軽く目を通したところdownloadの文字があるので何かしらのファイルをダウンロードしてどっかのディレクトリに置いておいてその都度呼び出して使う、みたいな感じのものなんですかね?
とりあえず一回色々やってみます!
ありがとうございます!
まだ試してないんですが、軽く目を通したところdownloadの文字があるので何かしらのファイルをダウンロードしてどっかのディレクトリに置いておいてその都度呼び出して使う、みたいな感じのものなんですかね?
とりあえず一回色々やってみます!
40デフォルトの名無しさん (アウアウウー Saa5-27Ug)
2018/02/13(火) 13:20:46.69ID:rrx74NIBa >>39
とりあえずcomposerでググれ
とりあえずcomposerでググれ
4137 (ワッチョイ 2205-EuZI)
2018/02/14(水) 21:58:29.96ID:TtACcl/J0 簡単ではありますが報告を。
composer使ってphp-jwtインスコして>>38のサンプルにrequire_onceでjwt.php指定して
でecho $jwtしてやったら暗号的な英数字がだだーっと出たので使い方はわかった気がしてます。
composer使ってphp-jwtインスコして>>38のサンプルにrequire_onceでjwt.php指定して
でecho $jwtしてやったら暗号的な英数字がだだーっと出たので使い方はわかった気がしてます。
42デフォルトの名無しさん (ワッチョイ 3174-jA6l)
2018/02/14(水) 22:25:21.84ID:X6WT15xX0 composer使うならvendor/autoload.phpをrequireすればよかろう
43デフォルトの名無しさん (ワッチョイ f7e0-T3WU)
2018/02/16(金) 06:19:14.89ID:W1XJdyx10 ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
44デフォルトの名無しさん (ワッチョイ ae3b-x4Or)
2018/02/22(木) 22:26:42.20ID:JaCEqDtL0 switch-case文について質問です。
通常こういった条件式は自分で書いていくと思うのですが、このcaseリストを
ここより前に定義して動的にcaseを増やしていくことは可能でしょうか?
switch ($i) {
case "A";
break;
case "B;"
break;
…
}の
caseを一か所に記述して(A,B,C,D,…)と後から編集したらcaseの部分も動的に記述されたことになる
というのは可能ですか?ということです
なんと表現したらいいかわからないのでわかりにくいと思うのですが、
わかるかたおられましたらご教授ください。
通常こういった条件式は自分で書いていくと思うのですが、このcaseリストを
ここより前に定義して動的にcaseを増やしていくことは可能でしょうか?
switch ($i) {
case "A";
break;
case "B;"
break;
…
}の
caseを一か所に記述して(A,B,C,D,…)と後から編集したらcaseの部分も動的に記述されたことになる
というのは可能ですか?ということです
なんと表現したらいいかわからないのでわかりにくいと思うのですが、
わかるかたおられましたらご教授ください。
45デフォルトの名無しさん (ワッチョイ 7974-x4Or)
2018/02/23(金) 00:16:33.70ID:heeL5/0a0 何でそんなことが可能だと思ったのかご説明頂けるかな?
何がしたいのか分からんけどエスパーするとそういうことはState/Strategyパターン使ったらええんちゃう
何がしたいのか分からんけどエスパーするとそういうことはState/Strategyパターン使ったらええんちゃう
46デフォルトの名無しさん (ワッチョイ 0e81-snzV)
2018/02/23(金) 00:42:42.74ID:kCRA+Aya0 エディタなり開発するフレームワーク側で補完してくれるかと聞いているのかな
47デフォルトの名無しさん (ワッチョイ 019f-SJjx)
2018/02/23(金) 00:46:17.66ID:Hlk4jzyw048デフォルトの名無しさん (ワッチョイ ae3b-x4Or)
2018/02/23(金) 21:22:58.57ID:859K0GLT049デフォルトの名無しさん (ワッチョイ d49f-GaPa)
2018/02/24(土) 15:35:12.76ID:YXQeh0ci0 cakephp3.5を使ってるんですが、
フォルダ名はsrcなのに
namespaceやuseの指定はappなのはなぜですか?
フォルダ名はsrcなのに
namespaceやuseの指定はappなのはなぜですか?
50デフォルトの名無しさん (ワッチョイ 7974-x4Or)
2018/02/25(日) 14:13:11.68ID:bGLkxUMu051デフォルトの名無しさん (アウーイモ MM2b-RQfV)
2018/03/02(金) 12:53:23.46ID:YTlkYdzxM /zzz/a.php
/xxx/b.php
のように
a.php , b.php を別々のフォルダに用意して
b.phpでrequire (a.php)した時にb.phpのあるフォルダ名xxxを返すには
a.phpになんと記述すればいいですか?
/xxx/b.php
のように
a.php , b.php を別々のフォルダに用意して
b.phpでrequire (a.php)した時にb.phpのあるフォルダ名xxxを返すには
a.phpになんと記述すればいいですか?
52デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)
2018/03/02(金) 13:05:46.96ID:pRJ4HJDk0 >>51
とりあえず
print_r(debug_backtrace());
って書いてみ
>b.phpでrequire (a.php)した時にb.phpのあるフォルダ名xxxを返す
この考え方自体が間違ってる気がするので
もっと前の段階の「結局何がしたいのか?」を書いた方がいいかもな
とりあえず
print_r(debug_backtrace());
って書いてみ
>b.phpでrequire (a.php)した時にb.phpのあるフォルダ名xxxを返す
この考え方自体が間違ってる気がするので
もっと前の段階の「結局何がしたいのか?」を書いた方がいいかもな
53デフォルトの名無しさん (ワッチョイ df80-zeCZ)
2018/03/02(金) 13:44:06.10ID:mIGjbFX+0 a は、b からrequire されるので、b はa の場所を知っているけど、
aは、どのファイルからrequireされるのか、あらかじめ分からないはずだから、
aからbの場所は、わからないはず
aは、どのファイルからrequireされるのか、あらかじめ分からないはずだから、
aからbの場所は、わからないはず
54デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)
2018/03/02(金) 14:16:46.22ID:pRJ4HJDk0 debug_backtrace()を勧めてるぐらいだから
さすがそれぐらいは分かってるw
aからbの場所が知りたい時(requireしたファイルのパスが知りたい時)
ってじゃぁどんな時よ?って話を俺はしてる
autoloadとか使えば済む話なんじゃないかと思ったもんでね
さすがそれぐらいは分かってるw
aからbの場所が知りたい時(requireしたファイルのパスが知りたい時)
ってじゃぁどんな時よ?って話を俺はしてる
autoloadとか使えば済む話なんじゃないかと思ったもんでね
55デフォルトの名無しさん (ワッチョイ bf76-m1UI)
2018/03/02(金) 14:54:30.21ID:d+rY3YvF0 >>52-54
どんな時というかやりたい操作は、
b.phpがあるフォルダ名をDB名にしていて、
a.phpには接続先のDBに対する処理を書いていたので
b.phpがあるフォルダによって動的にa.phpの処理をする、です。
debug_backtrace()で値が返ってこず
色々試していたら
$watgame = $_SERVER['SCRIPT_NAME'];
$watgame = explode("/",$watgame,-1);
$watgame = $watgame[2];
で取得できました。お騒がせしてすいませんでした。
どんな時というかやりたい操作は、
b.phpがあるフォルダ名をDB名にしていて、
a.phpには接続先のDBに対する処理を書いていたので
b.phpがあるフォルダによって動的にa.phpの処理をする、です。
debug_backtrace()で値が返ってこず
色々試していたら
$watgame = $_SERVER['SCRIPT_NAME'];
$watgame = explode("/",$watgame,-1);
$watgame = $watgame[2];
で取得できました。お騒がせしてすいませんでした。
56デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)
2018/03/02(金) 15:47:35.06ID:pRJ4HJDk057デフォルトの名無しさん (アウーイモ MM2b-RQfV)
2018/03/04(日) 22:44:50.40ID:85QkEt6wM 配列にしたhtmlを一つつなぎで
出力するのって
$output= implode("", $html);
ってするのが普通ですか?
他にいい方法ありますか?
出力するのって
$output= implode("", $html);
ってするのが普通ですか?
他にいい方法ありますか?
58デフォルトの名無しさん (ワッチョイ bf71-7ORe)
2018/03/04(日) 22:48:34.40ID:NLYmVhvS0 出力したいだけなら普通にforeachでいいんじゃないの
59デフォルトの名無しさん (アウーイモ MM2b-RQfV)
2018/03/04(日) 23:25:14.60ID:85QkEt6wM60デフォルトの名無しさん (アウアウイー Sadb-RLyt)
2018/03/05(月) 01:51:51.73ID:aQjnc2cVa 自由でいんじゃね
61デフォルトの名無しさん (アウアウカー Sabb-En5O)
2018/03/06(火) 09:19:42.58ID:Ejp9PzXia >>59
どんな感じでhtmlが入ってるかによるけど
出力するときに配列の中にあるやつをエスケープしたりhtmlspecialchars
したり変数を展開したりするんだったらforeachとかあたりの方がいいんじゃね?
テンプレートエンジン使ったほうがいいかもしらんが
どんな感じでhtmlが入ってるかによるけど
出力するときに配列の中にあるやつをエスケープしたりhtmlspecialchars
したり変数を展開したりするんだったらforeachとかあたりの方がいいんじゃね?
テンプレートエンジン使ったほうがいいかもしらんが
62デフォルトの名無しさん (ワッチョイ 27b8-8otX)
2018/03/06(火) 13:23:07.10ID:HCeE6DOL0 配列を順に出力するだけならforeach
配列をくっつけて別の変数にしたいならimplode
implodeしたあとに何かをするわけでないなら
おとなしくforeachで出力すべき
配列をくっつけて別の変数にしたいならimplode
implodeしたあとに何かをするわけでないなら
おとなしくforeachで出力すべき
63デフォルトの名無しさん (ワッチョイ 7feb-YJwB)
2018/03/06(火) 23:15:13.68ID:1vXAI1T90 phpを7から5にインストールしなおして
php.info()を表示させようとしたんですが
PHP Fatal error: Unknown: Failed opening required '/var/www/html/index.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0
というエラーが出ます
どこがまずいんでしょうか?
OSはubuntu16です
php.info()を表示させようとしたんですが
PHP Fatal error: Unknown: Failed opening required '/var/www/html/index.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0
というエラーが出ます
どこがまずいんでしょうか?
OSはubuntu16です
64デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)
2018/03/07(水) 11:19:38.20ID:DyyIOy9m0 >>63
'var/www/html/index.php'
をrequireしようとしたけど
そんなファイルはないぞというエラー
とりあえず
<php
書いてるまんまなので
これを読んで意味が理解できないようではこの先苦労するかも
'var/www/html/index.php'
をrequireしようとしたけど
そんなファイルはないぞというエラー
とりあえず
<php
書いてるまんまなので
これを読んで意味が理解できないようではこの先苦労するかも
65デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)
2018/03/07(水) 11:20:30.40ID:DyyIOy9m0 変なタイミングで送信してすまない
とりあえず
<php
phpinfo();
とだけ書いた適当なファイルを1個用意して
それを表示してみればいい
とりあえず
<php
phpinfo();
とだけ書いた適当なファイルを1個用意して
それを表示してみればいい
66デフォルトの名無しさん (ワッチョイ 87d2-tbYy)
2018/03/07(水) 15:05:17.25ID:nuhunf1G0 <?php
67デフォルトの名無しさん (ワッチョイ 5beb-9gxW)
2018/03/08(木) 00:53:30.35ID:Niz7TFw7068デフォルトの名無しさん (ワッチョイ 23b3-FnNq)
2018/03/09(金) 00:42:10.02ID:lzIhgFgZ0 PHP7で関数の戻り値を指定できるようになったので、
function test(int $i) :int {
if ($i != 1) {
return false;
}
return $i;
}
上記のような関数の場合、戻り値の型が複数あるためfalseの際にエラーになるかと思います。
PHP5時代では上記のようなコードを書くことができましたが、
今後(PHP7以降)では推奨されないようになっていくのでしょうか?
また今まではif文で判定してダメならfalseを返すという関数をよく書いていたのですが、
今後上記のようなコードは避けるべきなのでしょうか?
function test(int $i) :int {
if ($i != 1) {
return false;
}
return $i;
}
上記のような関数の場合、戻り値の型が複数あるためfalseの際にエラーになるかと思います。
PHP5時代では上記のようなコードを書くことができましたが、
今後(PHP7以降)では推奨されないようになっていくのでしょうか?
また今まではif文で判定してダメならfalseを返すという関数をよく書いていたのですが、
今後上記のようなコードは避けるべきなのでしょうか?
69デフォルトの名無しさん (ワッチョイ 73b8-NCig)
2018/03/09(金) 03:00:34.50ID:ciB3VK7a0 mixedを指定できるようにする案は提案されてるけど話し合いの段階に至ってない
ビルトイン関数がmixed返すならしょうがないけど
ユーザ定義関数なら7.1から使える?intでNULL許容してint or NULL返すのも考慮してみては
7.2からはobjectも返せるからオブジェクトで包めばどうにでもなるけど
ビルトイン関数がmixed返すならしょうがないけど
ユーザ定義関数なら7.1から使える?intでNULL許容してint or NULL返すのも考慮してみては
7.2からはobjectも返せるからオブジェクトで包めばどうにでもなるけど
70デフォルトの名無しさん (アウアウイー Sa73-7Gnl)
2018/03/09(金) 03:05:38.98ID:ftPGZsCIa なんやこの糞コード…
71デフォルトの名無しさん (ワッチョイ 23b3-FnNq)
2018/03/09(金) 09:33:46.53ID:lzIhgFgZ072デフォルトの名無しさん (アウアウカー Sa7b-xdZ3)
2018/03/09(金) 11:13:14.90ID:oMbBFiMDa73デフォルトの名無しさん (ワッチョイ 0b74-uQtz)
2018/03/09(金) 11:21:10.75ID:2KAyapC60 完全に同意するんだけどPHPの標準関数がそうなってるから何も言えねぇ
74デフォルトの名無しさん (ワッチョイ 6676-uQtz)
2018/03/10(土) 17:49:48.91ID:g4l3jXG40 phpでcookieみたいにlocalstorage扱うことできますか?
75デフォルトの名無しさん (ワッチョイ 0b74-uQtz)
2018/03/10(土) 18:03:05.47ID:zHYllTGn0 localStorageってクライアントサイド実装だと思ってたんだけど俺の理解が間違ってたかな
76デフォルトの名無しさん (ワッチョイ 6676-uQtz)
2018/03/10(土) 18:10:47.87ID:g4l3jXG40 cookieもクライアントサイドだから
同じように扱えないかなと思ったのですが
違うのでしょうか?
トンチンカンなこと言ってたらすいません
同じように扱えないかなと思ったのですが
違うのでしょうか?
トンチンカンなこと言ってたらすいません
77デフォルトの名無しさん (ワッチョイ 73b8-NCig)
2018/03/10(土) 19:20:34.01ID:NQUwT7o+0 localStorageAPIをPHPで実装すれば可能だろうけど
そのような実装があるかは知らないな
Cookieのように仕様が単純なら簡単に実装できるだろうけど
でもそれをPHPでやる意味は・・・?
DB使ったりJSONやシリアライズ使ったり他の方法をとるべきだと思うね
そのような実装があるかは知らないな
Cookieのように仕様が単純なら簡単に実装できるだろうけど
でもそれをPHPでやる意味は・・・?
DB使ったりJSONやシリアライズ使ったり他の方法をとるべきだと思うね
78デフォルトの名無しさん (ワッチョイ 6676-uQtz)
2018/03/10(土) 19:43:13.33ID:g4l3jXG40 jQueryやjavascriptが切り貼りで動かせる程度の知識しかなく
PHPとmySQLなら色々と慣れていてやりやすいので
なんとかならないかなと思った次第です
色々と調べて他の方法探してみます
ありがとうございました
PHPとmySQLなら色々と慣れていてやりやすいので
なんとかならないかなと思った次第です
色々と調べて他の方法探してみます
ありがとうございました
79デフォルトの名無しさん (ワッチョイ 73b8-NCig)
2018/03/10(土) 19:49:40.80ID:NQUwT7o+0 あ、Cookie要求ヘッダーを$_COOKIE['key']で扱えるという話かな?
だとすると無理ですね
Cookieのようにヘッダーに含めてやり取りするわけじゃないので
そもそも小細工しなければlocalStorageからのデータかどうかも分からないし
小細工してls_keyとかの名前でpostすれば$_POST['ls_key']で取れるのでは
だとすると無理ですね
Cookieのようにヘッダーに含めてやり取りするわけじゃないので
そもそも小細工しなければlocalStorageからのデータかどうかも分からないし
小細工してls_keyとかの名前でpostすれば$_POST['ls_key']で取れるのでは
80デフォルトの名無しさん (ワッチョイ 663b-rkOG)
2018/03/13(火) 06:41:43.09ID:3S6NtZAK0 cron.phpを
function Cron ($table) {
require_once("./pdo.php"); //DB接続
$sql = "SELECT `feed` FROM `{$table}`";
$stmt = $pdo->query($sql);
}
として、他のrun.phpから
require_once("./cron.php");
Cron("aclass");
としてもエラーはでないのですが
require_once("./cron.php");
Cron("aclass");
Cron("bclass");
とするとFatal error: Uncaught Error: Call to a member function query() on null
とエラーがでるのですがこれはどのように修正すればよいのでしょうか?
function Cron ($table) {
require_once("./pdo.php"); //DB接続
$sql = "SELECT `feed` FROM `{$table}`";
$stmt = $pdo->query($sql);
}
として、他のrun.phpから
require_once("./cron.php");
Cron("aclass");
としてもエラーはでないのですが
require_once("./cron.php");
Cron("aclass");
Cron("bclass");
とするとFatal error: Uncaught Error: Call to a member function query() on null
とエラーがでるのですがこれはどのように修正すればよいのでしょうか?
81デフォルトの名無しさん (ワッチョイ 3fc9-0aB1)
2018/03/13(火) 10:52:58.55ID:RXShV79h0 cron.phpを
require_once("./pdo.php"); //DB接続
function Cron ($table) {
$sql = "SELECT `feed` FROM `{$table}`";
$stmt = $pdo->query($sql);
}
こうしたらいいんじゃね?
require_once("./pdo.php"); //DB接続
function Cron ($table) {
$sql = "SELECT `feed` FROM `{$table}`";
$stmt = $pdo->query($sql);
}
こうしたらいいんじゃね?
82デフォルトの名無しさん (アウーイモ MM1f-edyV)
2018/03/13(火) 19:54:39.54ID:mdBQKmC7M そのようにしたら
Cron(“aclass”)だけでも
同じエラーがでました
Cron(“aclass”)だけでも
同じエラーがでました
83デフォルトの名無しさん (ワッチョイ 2fe3-eXi2)
2018/03/13(火) 20:42:12.63ID:Xu1UKUsw0 $pdoがpdo.phpでグローバルになっていない、とかのヲチでは?
84デフォルトの名無しさん (ワッチョイ be81-uQtz)
2018/03/13(火) 21:18:41.23ID:U9FOV+VD08580 (アウーイモ MM1f-edyV)
2018/03/14(水) 00:06:06.83ID:0ajxFWw5M どちらをやってもうまく動きませんでした
設計を大幅に変えて他のやり方で試して見ます
ありがとうございました
設計を大幅に変えて他のやり方で試して見ます
ありがとうございました
86デフォルトの名無しさん (ワッチョイ be80-csLy)
2018/03/14(水) 00:11:37.24ID:QheYb9tS0 >>74-79
Node.js では、
cookie はクライアントから、
HTTP request headers の、cookie に入れられて、サーバーへ送られる
一方、LocalStorage は、Form のhidden などに自分で詰めて、
サーバーへ送るように書く
Node.js では、
cookie はクライアントから、
HTTP request headers の、cookie に入れられて、サーバーへ送られる
一方、LocalStorage は、Form のhidden などに自分で詰めて、
サーバーへ送るように書く
87デフォルトの名無しさん (ワッチョイ be80-csLy)
2018/03/14(水) 00:26:02.24ID:QheYb9tS0 結局、こういうSQL文になるのだろ。
だから、aclass, bclass のテーブルが無ければ、エラーになる
SELECT feed FROM aclass;
SELECT feed FROM bclass;
だから、aclass, bclass のテーブルが無ければ、エラーになる
SELECT feed FROM aclass;
SELECT feed FROM bclass;
88デフォルトの名無しさん (ワッチョイ 0b74-uQtz)
2018/03/14(水) 00:46:02.96ID:PZuim+KR0 設計がキモいからアレだけど
require_once("./pdo.php"); //DB接続
function Cron ($table) {
global $pdo;
$sql = "SELECT `feed` FROM `{$table}`";
$stmt = $pdo->query($sql);
}
じゃね
require_once("./pdo.php"); //DB接続
function Cron ($table) {
global $pdo;
$sql = "SELECT `feed` FROM `{$table}`";
$stmt = $pdo->query($sql);
}
じゃね
89デフォルトの名無しさん (ワッチョイ 3fe9-hn8E)
2018/03/14(水) 10:29:49.46ID:VrVVPjKa0 いや設計からやり直すで正解
requireやらglobalやら何年前の話だw
requireやらglobalやら何年前の話だw
90デフォルトの名無しさん (ワッチョイ 8f7c-eXi2)
2018/03/14(水) 11:04:36.09ID:k2P8bAPR0 それはそうだけど、globalに限らず、PHPの悪いところを知ることはとても重要だ。
91デフォルトの名無しさん (ワッチョイ 7e9e-0aB1)
2018/03/14(水) 12:46:27.39ID:nr/g/ZaE0 phpで他のサイトのhtmlを読み込む方法を教えて。
92デフォルトの名無しさん (ワッチョイ 3fe9-hn8E)
2018/03/14(水) 12:54:58.15ID:VrVVPjKa0 組み込み関数使う一番簡単な方法は
$html = file_get_contents('http://');
guzzleとかスクレイピングしたいならGouttteとか
何らかのライブラリを使った方がいいとは思うが
たぶんそういうレベルじゃないよね
$html = file_get_contents('http://');
guzzleとかスクレイピングしたいならGouttteとか
何らかのライブラリを使った方がいいとは思うが
たぶんそういうレベルじゃないよね
93デフォルトの名無しさん (ワッチョイ 663b-uQtz)
2018/03/14(水) 18:27:19.65ID:0BiLJwj+094デフォルトの名無しさん (ワッチョイ 3fe9-hn8E)
2018/03/14(水) 19:43:27.01ID:VrVVPjKa095デフォルトの名無しさん (ワッチョイ 09fb-NGr0)
2018/03/15(木) 21:50:22.39ID:Qb1XFtti0 Call to a member function query() on null
これは2回目のquery()を呼びだせていないエラーじゃないの?
require_once("./pdo.php");してるから1回目は呼び出せる。
だけど、2回目は読み込まれないから呼び出せない。
require_onceだから。
これは2回目のquery()を呼びだせていないエラーじゃないの?
require_once("./pdo.php");してるから1回目は呼び出せる。
だけど、2回目は読み込まれないから呼び出せない。
require_onceだから。
96デフォルトの名無しさん (ワッチョイ 6b3b-/kXb)
2018/03/16(金) 05:55:28.99ID:Rb17xQxt0 PHP質問スレ無能さ自慢大会開催してるのに
本質ついてくるのやめろ
本質ついてくるのやめろ
97デフォルトの名無しさん (ワッチョイ ebe9-hKdO)
2018/03/16(金) 06:05:56.53ID:gZCff7dQ0 英語が出来るかどうかってプログラミングの習得効率をだいぶ変えるよな
98デフォルトの名無しさん (ワッチョイ 1be9-MOYc)
2018/03/16(金) 10:23:55.97ID:tytL0PIQ0 PHPみたいなスクリプト言語のエラーメッセージって
中学レベルの英語力で理解できると思うけど
英語アレルギーな人はちょっとエラーが出ただけで
もうダメだ〜おしまいだ〜ってなるっぽい
ソースはプログラミング言語の講師経験がある俺
英語力以前に問題解決能力の問題
中学レベルの英語力で理解できると思うけど
英語アレルギーな人はちょっとエラーが出ただけで
もうダメだ〜おしまいだ〜ってなるっぽい
ソースはプログラミング言語の講師経験がある俺
英語力以前に問題解決能力の問題
99デフォルトの名無しさん (ワッチョイ 45ed-CAlO)
2018/03/17(土) 13:01:40.05ID:gJ/QHesH0 下らない質問します
PHP でフォルダのファイルを監視することは出来ますか?
初心なので、どういう仕組みにすれば良いのか、よくわかりません。
まず、各種センサーデバイスから、任意のフォルダにデータがUSB やLAN で放り込まれます。
(例log.txt)日時、デバイス番号、温度℃、湿度%
20180316,12:45:32,978456321,18,36
20180316,12:45:32,978456321,18,36
PHP でフォルダのファイルを監視することは出来ますか?
初心なので、どういう仕組みにすれば良いのか、よくわかりません。
まず、各種センサーデバイスから、任意のフォルダにデータがUSB やLAN で放り込まれます。
(例log.txt)日時、デバイス番号、温度℃、湿度%
20180316,12:45:32,978456321,18,36
20180316,12:45:32,978456321,18,36
100デフォルトの名無しさん (ワッチョイ 45ed-CAlO)
2018/03/17(土) 13:05:39.17ID:gJ/QHesH0 カンマ区切りのログデータを監視して
20180316,12:45:32,978456321,18,36
更新されたら、MySQLにアップデートして
ウェブページを見たら温湿度状態が表示されるようにしたいです。
よろしくお願いいたします。
20180316,12:45:32,978456321,18,36
更新されたら、MySQLにアップデートして
ウェブページを見たら温湿度状態が表示されるようにしたいです。
よろしくお願いいたします。
101デフォルトの名無しさん (ワッチョイ ebc9-0FUd)
2018/03/17(土) 13:56:59.02ID:RbO0oToK0 PHPのお仕事にも出来るが、単純に、Cronのお仕事にした方が良いと思いマッスル。
102デフォルトの名無しさん (ワッチョイ ebb8-B9xj)
2018/03/17(土) 22:08:41.96ID:dntUHK5y0 set_time_limit(0);
$size = filesize("test.log");
while (1) {
clearstatcache();
$tmp = filesize("test.log");
if ($size < $tmp) {
$fp = fopen("test.log", "r");
fseek($fp, $size);
$data = fread($fp, $tmp - $size);
fclose($fp);
//$dataを整形してupdate
$size = $tmp;
}
sleep(60); //インターバル
}
ログが追記されることを想定して
ログが0になったり途中に追記されたりおかしくなるのまでは想定してない
まぁ>>101よ
$size = filesize("test.log");
while (1) {
clearstatcache();
$tmp = filesize("test.log");
if ($size < $tmp) {
$fp = fopen("test.log", "r");
fseek($fp, $size);
$data = fread($fp, $tmp - $size);
fclose($fp);
//$dataを整形してupdate
$size = $tmp;
}
sleep(60); //インターバル
}
ログが追記されることを想定して
ログが0になったり途中に追記されたりおかしくなるのまでは想定してない
まぁ>>101よ
10399-100 (ワッチョイ 45ed-CAlO)
2018/03/18(日) 19:13:17.39ID:8gph5VGe0104>>99-100 (ワッチョイ 45ed-CAlO)
2018/03/18(日) 19:15:42.94ID:8gph5VGe0 >>102
出来ました。完璧です。誠にありがとうございました。
出来ました。完璧です。誠にありがとうございました。
105デフォルトの名無しさん (ワッチョイ 8781-hKdO)
2018/03/18(日) 19:18:04.80ID:CAYOd0hL0 windowsの場合はタスクスケジューラって言うのがあってそれで同等(?)のことが出来る
106デフォルトの名無しさん (ワッチョイ 2de4-B9xj)
2018/03/19(月) 16:50:04.15ID:YxMyNHU90 ファイル変更をトリガーとするのはLinuxではincrontabってのがあるみたいだけど
Windowsだと
https://forest.watch.impress.co.jp/library/software/folderkanshi/
こういうの使うといいっぽい
やってることは>>102と大差ないけど
Windowsだと
https://forest.watch.impress.co.jp/library/software/folderkanshi/
こういうの使うといいっぽい
やってることは>>102と大差ないけど
107デフォルトの名無しさん (ワッチョイ 779f-hKdO)
2018/03/20(火) 17:14:51.77ID:isVnec710 アップローダーを作りたいのですが作り方を教えてください
プログラミングはC#しかやったことありません
初心者向けのphpの本やサイトなどがあると嬉しいです
プログラミングはC#しかやったことありません
初心者向けのphpの本やサイトなどがあると嬉しいです
108デフォルトの名無しさん (ワッチョイ 43d2-H2VO)
2018/03/20(火) 21:09:56.52ID:ZUZCPXH00 C# を 学ぶ時に googleは 使いましたか?
php アップローダー で 検索すると 作り方 を 一通り
紹介する ページが 出てくる と思います よ
php アップローダー で 検索すると 作り方 を 一通り
紹介する ページが 出てくる と思います よ
109デフォルトの名無しさん (ワッチョイ dfe4-B9xj)
2018/03/20(火) 22:51:05.80ID:iQ0ukGuu0 アップロード処理
http://php.net/manual/ja/features.file-upload.post-method.php
htmlのformからphpにpostする
php側ではグローバル変数(配列)$_FILESにアップロードされたファイルの情報が入るので
それを操作する(デフォルトではテンポラリフォルダに入るので保存フォルダに移動したりリネームする)
あとはアップロードフォルダを読み取って中にあるファイルリストとリンクを表示するなり
投稿者のコメントやら削除やら高度な管理が必要ならデータベースやらに情報入れてそれ使うなりお好きに
http://php.net/manual/ja/features.file-upload.post-method.php
htmlのformからphpにpostする
php側ではグローバル変数(配列)$_FILESにアップロードされたファイルの情報が入るので
それを操作する(デフォルトではテンポラリフォルダに入るので保存フォルダに移動したりリネームする)
あとはアップロードフォルダを読み取って中にあるファイルリストとリンクを表示するなり
投稿者のコメントやら削除やら高度な管理が必要ならデータベースやらに情報入れてそれ使うなりお好きに
110デフォルトの名無しさん (ワッチョイ 779f-hKdO)
2018/03/21(水) 14:40:17.92ID:u4wtWd010 ありがとう!
右も左もわからないくらいの超初心者だけど頑張って作ってみる
右も左もわからないくらいの超初心者だけど頑張って作ってみる
111デフォルトの名無しさん (ワッチョイ fa6c-mRzn)
2018/03/23(金) 17:19:12.88ID:D5VJHy400 スレ違いだったらすみません
ネットの中の情報ってどこかに保存されてて僕はそれを引き出して見てるんですか?もしそうだったらどこに保存されてるんですか?
曖昧な質問すみません
ネットの中の情報ってどこかに保存されてて僕はそれを引き出して見てるんですか?もしそうだったらどこに保存されてるんですか?
曖昧な質問すみません
112デフォルトの名無しさん (ワッチョイ c7e9-fzSc)
2018/03/23(金) 18:27:48.68ID:R9lXxg8x0 いわゆるサーバー
とりあえず仮想環境でサーバー作ってみて
慣れたらどこか適当なところでVPSでも借りて好きにやってみればいい
サーバーを触れないPHPerなんて話にならん
とりあえず仮想環境でサーバー作ってみて
慣れたらどこか適当なところでVPSでも借りて好きにやってみればいい
サーバーを触れないPHPerなんて話にならん
113デフォルトの名無しさん (ワッチョイ 9aad-fzSc)
2018/03/23(金) 21:09:42.83ID:es4801GY0 サーバーを触れるようになるにはlinax系のOSも勉強しないといけませんか?
114デフォルトの名無しさん (ワッチョイ 1ad2-QTIh)
2018/03/23(金) 23:25:31.14ID:2DgZhzwv0 linux知識は必須だ
せっかくこんなスレにくるくらいだから
LAMPシステムの概要読んだり
apacheでhttpサーバー立ち上げたり
php.ini読むことから始めてみては?
それやった上でのhello world は感慨深いものがあるぞ
せっかくこんなスレにくるくらいだから
LAMPシステムの概要読んだり
apacheでhttpサーバー立ち上げたり
php.ini読むことから始めてみては?
それやった上でのhello world は感慨深いものがあるぞ
115デフォルトの名無しさん (ワッチョイ c7c9-3KaU)
2018/03/24(土) 10:28:57.13ID:xLRXLjE70 >php.ini読むことから始めてみては?
ええぇぇぇ…
ええぇぇぇ…
116デフォルトの名無しさん (ワッチョイ 7671-9mdf)
2018/03/24(土) 10:49:10.52ID:g1GPKhFr0 サーバもよくわからんレベルに勧める話かなあそれ
117デフォルトの名無しさん (ワッチョイ f68a-fzSc)
2018/03/24(土) 13:25:20.05ID:j9SPmTfd0118デフォルトの名無しさん (ワッチョイ 4ee4-NuQV)
2018/03/24(土) 16:46:27.21ID:1+DXMJWu0 LinuxっていってもデスクトップはWindowsと変わらないけど
いわゆるガチのサーバ機はデスクトップ環境でやらないので
WindowsならDOSプロンプトで遊ぶところからがいいのでは
いわゆるガチのサーバ機はデスクトップ環境でやらないので
WindowsならDOSプロンプトで遊ぶところからがいいのでは
119デフォルトの名無しさん (ワッチョイ 4e81-zkh5)
2018/03/24(土) 16:53:10.58ID:qYWJwKPe0 >>107が希望しているアップローダーは、どこに置いて実現したいのかな
自分の手元にあるWindowsPCにPHPをインストールし、
PHPのスクリプトをそこに置いて
コマンドラインでPHPを起動してスクリプトを実行する感じ?
それとも、どこかのレンタルサーバーを借りて、そこにPHPスクリプトを置いて
WindowsPCはレンタルサーバーのHTMLを使い、ブラウザでフォームを表示させ、
そのフォームに手元のファイル名を指定し、ボタンを押してアップロードする?
自分の手元にあるWindowsPCにPHPをインストールし、
PHPのスクリプトをそこに置いて
コマンドラインでPHPを起動してスクリプトを実行する感じ?
それとも、どこかのレンタルサーバーを借りて、そこにPHPスクリプトを置いて
WindowsPCはレンタルサーバーのHTMLを使い、ブラウザでフォームを表示させ、
そのフォームに手元のファイル名を指定し、ボタンを押してアップロードする?
120デフォルトの名無しさん (ワッチョイ dbf7-gBYh)
2018/03/27(火) 23:04:42.45ID:yJnfuO2v0 諸事情でララベルしなきゃいけないんだがSQLが俺は全く出来ないていう状態なんだが
ララベルとSQLはそれぞれ並行してやった方がええかな?分担してやった方がええかな?
ララベルとSQLはそれぞれ並行してやった方がええかな?分担してやった方がええかな?
121デフォルトの名無しさん (ワッチョイ c7e9-fzSc)
2018/03/28(水) 10:37:13.14ID:r6P5fkin0 Laravelみたいなフレームワークは
普通はSQL文を直接書かずにクエリビルダーを通すんだが
何らかのフレームワークは使った事あるのかね
その質問レベルで分業できるのか疑問
普通はSQL文を直接書かずにクエリビルダーを通すんだが
何らかのフレームワークは使った事あるのかね
その質問レベルで分業できるのか疑問
122デフォルトの名無しさん (ワッチョイ d1f7-f7sf)
2018/03/29(木) 00:50:06.39ID:6VZpXAAL0 >>121
mvcとやらはvueでルーターでビュー振り分けたり変数の値を直接表示したりで慣れてるけど
フレームワークにあるテストやらなんやらの沢山の設定ファイルは苦手やな
今前知識活かしてルーター探してララベルでビューの切り替えした辺り
どの道ララベルとMySQLを覚えなきゃいかんのだが、今は最優先でララベルで二、三個モノを作らなきゃいかん
ガチれば一夜漬けでSQLデータの出し入れ位は出来るようなるかな?
mvcとやらはvueでルーターでビュー振り分けたり変数の値を直接表示したりで慣れてるけど
フレームワークにあるテストやらなんやらの沢山の設定ファイルは苦手やな
今前知識活かしてルーター探してララベルでビューの切り替えした辺り
どの道ララベルとMySQLを覚えなきゃいかんのだが、今は最優先でララベルで二、三個モノを作らなきゃいかん
ガチれば一夜漬けでSQLデータの出し入れ位は出来るようなるかな?
123デフォルトの名無しさん (ワッチョイ db14-yiKA)
2018/03/29(木) 01:14:54.39ID:Nvn7VfZa0 なる。今からやれよ
124デフォルトの名無しさん (ワッチョイ d1f7-f7sf)
2018/03/29(木) 03:24:11.08ID:6VZpXAAL0125デフォルトの名無しさん (ワッチョイ 93ad-uaFS)
2018/04/02(月) 13:28:31.23ID:1ZK7Ts6x0 SQL周りの質問します
$sql = 'select count(bang) from tbk';
$stmt = $dbh->prepare($sql);
$stmt->execute();
こう書いてcountでデータベースの行数を取得してその値をPHP側で受け取るにはどういうコード書けばいいですか?
$count = $stmt->fetch(PDO::FETCH_ASSOC);
こう書いて$countで受け取ってvar_dumpで調べたら連想配列なんですが$count['bang']としても値を得れません
データベースのカウント後を受け取るにはどう書けばいいんでしょうか?
$sql = 'select count(bang) from tbk';
$stmt = $dbh->prepare($sql);
$stmt->execute();
こう書いてcountでデータベースの行数を取得してその値をPHP側で受け取るにはどういうコード書けばいいですか?
$count = $stmt->fetch(PDO::FETCH_ASSOC);
こう書いて$countで受け取ってvar_dumpで調べたら連想配列なんですが$count['bang']としても値を得れません
データベースのカウント後を受け取るにはどう書けばいいんでしょうか?
126デフォルトの名無しさん (ワッチョイ 93ad-uaFS)
2018/04/02(月) 14:06:22.32ID:1ZK7Ts6x0 データベースのcountを普通の変数として受け取りたいです。
127デフォルトの名無しさん (ワッチョイ b9d2-d1ON)
2018/04/02(月) 15:38:47.00ID:tUzkKP1X0 たぶん名前はcountになってると思うけど
SQLのほうで as つけて好きな名前にしたら確実かと思う
SQLのほうで as つけて好きな名前にしたら確実かと思う
128デフォルトの名無しさん (ワッチョイ d108-bCzG)
2018/04/02(月) 20:38:33.73ID:cnm0+0Yi0 >>126
$count = $stmt->fetchColumn();
$count = $stmt->fetchColumn();
129デフォルトの名無しさん (ワッチョイ 93ad-uaFS)
2018/04/03(火) 09:34:38.07ID:vHkqWM6i0130デフォルトの名無しさん (ワッチョイ b9d2-d1ON)
2018/04/03(火) 12:25:18.58ID:FsceX5l00 $count['count'] か
$sql = 'select count(bang) as bang from tbk';
でもよかったのよ、ってこれ意味わからなかったのか
$sql = 'select count(bang) as bang from tbk';
でもよかったのよ、ってこれ意味わからなかったのか
131デフォルトの名無しさん (ワッチョイ 93ad-uaFS)
2018/04/03(火) 17:32:37.82ID:8BbSY5bZ0 >>130
ありがとうございます
理解できてませんでした
$count['count'] のほうではできませんでしたが
$sql = 'select count(bang) as bang from tbk';のほうでcount['bang']としたら通りました。
難しいですね・・・
ありがとうございます
理解できてませんでした
$count['count'] のほうではできませんでしたが
$sql = 'select count(bang) as bang from tbk';のほうでcount['bang']としたら通りました。
難しいですね・・・
132デフォルトの名無しさん (ワッチョイ c69e-6Vn5)
2018/04/07(土) 05:27:46.16ID:dDGDds4R0 include_once って読み込むファイルを http://・・・ で指定する方法は
無いの?
無いの?
133デフォルトの名無しさん (ワッチョイ 4ad2-2KfT)
2018/04/07(土) 20:02:10.23ID:MtEcxTjp0 php.iniでallow_url_includeをOnにして
include_onceすればオッケー
include_onceすればオッケー
134デフォルトの名無しさん (ワッチョイ 4ad2-2KfT)
2018/04/07(土) 20:04:48.52ID:MtEcxTjp0 なお
135デフォルトの名無しさん (ワッチョイ 5d74-vJpg)
2018/04/07(土) 21:54:01.07ID:wQfk+GMe0 おっけーだけど実際何もおっけーじゃねぇな, HTTPとか正気の沙汰ではない
136デフォルトの名無しさん (ワッチョイ 8681-vJpg)
2018/04/07(土) 23:51:41.07ID:xgDbOcv/0137デフォルトの名無しさん (ワッチョイ c69e-6Vn5)
2018/04/08(日) 10:00:09.99ID:8Q7B3DS20138デフォルトの名無しさん (アウアウウー Sa11-ovq6)
2018/04/08(日) 13:02:18.39ID:wO4VFvVza 改竄されたら任意コード実行に直結やぞ
せめてちゃんとした証明書付きのHTTPSは必要
それでも何か嫌だけど
せめてちゃんとした証明書付きのHTTPSは必要
それでも何か嫌だけど
139デフォルトの名無しさん (ワッチョイ c69e-6Vn5)
2018/04/08(日) 14:40:24.98ID:8Q7B3DS20140デフォルトの名無しさん (ワッチョイ 5d74-ovq6)
2018/04/08(日) 14:49:16.99ID:ZJwweAqK0 >>139
中間者攻撃をご存じないか?
中間者攻撃をご存じないか?
141デフォルトの名無しさん (ワッチョイ 4dad-lfby)
2018/04/08(日) 22:47:34.68ID:QubCLyU70142デフォルトの名無しさん (ワッチョイ a17b-6Vn5)
2018/04/09(月) 04:13:29.94ID:/CzDp9JH0 文法を一通り習って、Laravelなるフレームワークが主流と聞いて調べてみたのですが、自分の知ってるPHPとだいぶ違って面食らいました。
これはオブジェクト指向プログラミングなるものを習えばわかるようになるのでしょうか?
公式のドキュメント読むとルーティングとかコントローラーとか解説なしで当然のごとく出てきて激鬱です。
何をすればLaravelが使えるようになるか書籍・ウェブサイト等、指針を示して頂きたいです。
これはオブジェクト指向プログラミングなるものを習えばわかるようになるのでしょうか?
公式のドキュメント読むとルーティングとかコントローラーとか解説なしで当然のごとく出てきて激鬱です。
何をすればLaravelが使えるようになるか書籍・ウェブサイト等、指針を示して頂きたいです。
143デフォルトの名無しさん (ワッチョイ 86b8-QncF)
2018/04/09(月) 05:52:33.60ID:pdsBUMq90 フレームワークはコーディングにルールや制約を持たせることで
簡単に構築できるようになってるので
自分の知らないことや言葉に惑わされず
とりあえず書かれてる通りに従って真似してみればいいだけだよ
サンプルを何個かやってくうちにどんなもんかわかるだろうし
簡単に構築できるようになってるので
自分の知らないことや言葉に惑わされず
とりあえず書かれてる通りに従って真似してみればいいだけだよ
サンプルを何個かやってくうちにどんなもんかわかるだろうし
144デフォルトの名無しさん (ワッチョイ 5d74-vJpg)
2018/04/09(月) 05:55:00.05ID:REpY3VRE0145デフォルトの名無しさん (ワッチョイ 4ad2-kuJV)
2018/04/09(月) 08:24:42.06ID:xFzcbrnT0 フレームワークまじでわからん
内容や構造を理解、構築しようとするのではなく、ひたすら「手法」を学べ
ってアドバイスされたがそれでもわからん、ってかこのアドバイス本当にあってんの?俺の頭がイカれてるのかと思い始めてきた
内容や構造を理解、構築しようとするのではなく、ひたすら「手法」を学べ
ってアドバイスされたがそれでもわからん、ってかこのアドバイス本当にあってんの?俺の頭がイカれてるのかと思い始めてきた
146デフォルトの名無しさん (ワッチョイ 3e14-3orc)
2018/04/10(火) 00:12:53.40ID:cSkLylsH0 >>145
どれほどやったの?
どれほどやったの?
147デフォルトの名無しさん (アウアウイー Saad-0bzm)
2018/04/10(火) 01:11:02.79ID:mlSyfS39a >>145
フレームワークは構造を理解した上で使うもの。職場でそれ言われたんならすぐ他行ったほうがいい。
フレームワークは構造を理解した上で使うもの。職場でそれ言われたんならすぐ他行ったほうがいい。
148デフォルトの名無しさん (ワッチョイ a17b-6Vn5)
2018/04/10(火) 04:47:34.57ID:RNPBEaXU0149デフォルトの名無しさん (オッペケ Sred-6wO2)
2018/04/11(水) 02:01:00.17ID:mBTJQa8Ur 48都道府県名が格納されてる配列があるとして
例えば東京都が格納されてる配列番号を知りたいときはpreg_grepとprint_rを使った結果を確認すればいいみたいですが
検索して結果の配列番号だけを変数に格納するにはどうすればいいのでしょうか?
例えば東京都が格納されてる配列番号を知りたいときはpreg_grepとprint_rを使った結果を確認すればいいみたいですが
検索して結果の配列番号だけを変数に格納するにはどうすればいいのでしょうか?
150デフォルトの名無しさん (ワッチョイ 86b8-QncF)
2018/04/11(水) 05:07:22.04ID:RGen9FXo0 下手にarray系の関数使うよりforeachでやったほうがたいていパフォーマンスはいい
151デフォルトの名無しさん (ワッチョイ 86b8-QncF)
2018/04/11(水) 06:16:19.84ID:RGen9FXo0 と書いてみて気になって測ってみたけど
array_searchのほうが早かったな
php5時代の常識はもはや通用せんね
array_searchのほうが早かったな
php5時代の常識はもはや通用せんね
152デフォルトの名無しさん (ワッチョイ b9e9-lfby)
2018/04/11(水) 12:26:22.50ID:beJeAwMY0153デフォルトの名無しさん (アウアウウー Sae7-ycE0)
2018/04/12(木) 07:20:46.89ID:fdYFp2d/a Ruby on Rails 5.2正式版発表。Active Storageによるクラウドストレージ対応、Redisでのキャッシュ対応など
http://www.publickey1.jp/blog/18/ruby_on_rails_52active_storageredis.html
>Active Storageは、Amazon S3やGoogle Cloud Storage、Microsoft Azure Storageのような
>クラウドドストレージに対してファイルをアップロードし、
>それらのファイルのActive Recoredオブジェクトへの添付を容易にする機能です。
>また、ミラーリング機能によって複数のクラウドストレージのあいだでファイルを同期することもできます。
>これによって高い冗長性などを実現可能です。
これは良さそうですがPHPにこういうのありますか?
http://www.publickey1.jp/blog/18/ruby_on_rails_52active_storageredis.html
>Active Storageは、Amazon S3やGoogle Cloud Storage、Microsoft Azure Storageのような
>クラウドドストレージに対してファイルをアップロードし、
>それらのファイルのActive Recoredオブジェクトへの添付を容易にする機能です。
>また、ミラーリング機能によって複数のクラウドストレージのあいだでファイルを同期することもできます。
>これによって高い冗長性などを実現可能です。
これは良さそうですがPHPにこういうのありますか?
154デフォルトの名無しさん (アウアウイー Sa07-5YFy)
2018/04/12(木) 18:52:28.27ID:KSRe3/pIa 作りゃいいじゃん
155デフォルトの名無しさん (アウーイモ MMe7-s85b)
2018/04/17(火) 16:17:10.16ID:LPB+OBLfM >>153
Symfony
+
Doctrine
+
VichUploaderBundle
+
Flysystem
FlysystemのAWS S3用アダプタ
でDBへの書き込みと画像のS3へのアップロードなら出来る
冗長化は無いが
サムネイル作成が必要ならLiipImagineBundleで
VichUploaderはPropelやMongoDBにも対応している
FlysystemはSymfony以外も対応している
Symfony
+
Doctrine
+
VichUploaderBundle
+
Flysystem
FlysystemのAWS S3用アダプタ
でDBへの書き込みと画像のS3へのアップロードなら出来る
冗長化は無いが
サムネイル作成が必要ならLiipImagineBundleで
VichUploaderはPropelやMongoDBにも対応している
FlysystemはSymfony以外も対応している
156デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)
2018/04/20(金) 20:18:51.62ID:JYYXAoL40 グラフ画像を作って保存したいんですけど簡単なライブラリみたいなのってありませんか?
グラフを表示するhtmlやCSSをはくとかはあるみたいなんですけど
グラフ画像を作るのはさがしてもみあたらなくて…
グラフを表示するhtmlやCSSをはくとかはあるみたいなんですけど
グラフ画像を作るのはさがしてもみあたらなくて…
157デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)
2018/04/21(土) 02:18:17.85ID:GJF07GGo0 レンタルサーバーを借りてphpの勉強はじめたんですけど
/ドメイン名/public_html/ 以下に php ファイルをおくとエラーが出たときに
/home/アカウント名/サーバー名/public_html/...
のファイルでエラーがありましたってでちゃうんですけど
アカウント名をみえなくすることってできませんか?
関数全部に@つけるのも微妙だし
何かの拍子でアカウント名みえちゃうのいやなんですよね
/ドメイン名/public_html/ 以下に php ファイルをおくとエラーが出たときに
/home/アカウント名/サーバー名/public_html/...
のファイルでエラーがありましたってでちゃうんですけど
アカウント名をみえなくすることってできませんか?
関数全部に@つけるのも微妙だし
何かの拍子でアカウント名みえちゃうのいやなんですよね
158デフォルトの名無しさん (アウアウイー Sa7b-nPyr)
2018/04/21(土) 08:48:37.98ID:h0SVpO5ba レンタルサバのエラーディスプレイいじれるんならいじる
159デフォルトの名無しさん (ワッチョイ b365-9jjH)
2018/04/21(土) 08:51:13.24ID:rs60STnG0 .htaccessか.user.iniでdisplay_errorsをoffにしてerror_logを設定しておくのが普通では
160デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)
2018/04/21(土) 23:07:08.13ID:GJF07GGo0 >>158,159
できましたありがとうございます
Xサーバーなんですけどphp.iniがおいてあったのでそのなかの
display_errors = Off
にしてみました
あとはじめから
log_errors = On
log_errors_max_len = 1024
ってなってるんですけどこれどこに表示されるんでしょうか
エラーがまったく表示されないのもそれはそれで困るかも…
できましたありがとうございます
Xサーバーなんですけどphp.iniがおいてあったのでそのなかの
display_errors = Off
にしてみました
あとはじめから
log_errors = On
log_errors_max_len = 1024
ってなってるんですけどこれどこに表示されるんでしょうか
エラーがまったく表示されないのもそれはそれで困るかも…
161デフォルトの名無しさん (ワッチョイ b365-9jjH)
2018/04/22(日) 00:03:29.49ID:ZgYxHCJE0 >>160
だからerror_logを指定城
だからerror_logを指定城
162デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)
2018/04/22(日) 02:56:08.02ID:pMZeO9w/0 これは設定ファイルとかじゃなくてphpのなかに書く関数なんですか?
自分で関数も戻り値とかをハンドリングしてエラーをハンドリングして使う感じなんでしょうか?
エラーメッセージも自分で作らないといけないみたいだし…
そもそも構文エラーとかの場合これどうやってハンドリングすればいいんでしょう
デフォルトのエラーメッセージに絶対パスを表示させたくないだけなんですけど結構大変なんですね…
自分で関数も戻り値とかをハンドリングしてエラーをハンドリングして使う感じなんでしょうか?
エラーメッセージも自分で作らないといけないみたいだし…
そもそも構文エラーとかの場合これどうやってハンドリングすればいいんでしょう
デフォルトのエラーメッセージに絶対パスを表示させたくないだけなんですけど結構大変なんですね…
163デフォルトの名無しさん (ワッチョイ 1ae4-OGjV)
2018/04/22(日) 06:44:08.35ID:ebslMH0y0 phpで設定を行う方法は主に3つ
・サーバ側の設定ファイル(php.iniやhttpd.conf)に直接書く方法
・phpスクリプトにini_set関数を使って書く方法
・専用の関数が用意されてればphpスクリプトに専用関数を使って書く方法
phpの設定がどこで行えるかは下記の通り
http://php.net/manual/ja/configuration.changes.modes.php
今回のerror_logは
http://php.net/manual/ja/errorfunc.configuration.php
PHP_INI_ALLなのでphp.iniに直接書くことも出来るし
ini_set関数を使ってphpスクリプトに書くことも出来る
http://php.net/manual/ja/function.ini-set.php
また同名の関数が用意されてるのでそれを使ってphpスクリプトに書くことも出来る
http://php.net/manual/ja/function.error-log.php
・サーバ側の設定ファイル(php.iniやhttpd.conf)に直接書く方法
・phpスクリプトにini_set関数を使って書く方法
・専用の関数が用意されてればphpスクリプトに専用関数を使って書く方法
phpの設定がどこで行えるかは下記の通り
http://php.net/manual/ja/configuration.changes.modes.php
今回のerror_logは
http://php.net/manual/ja/errorfunc.configuration.php
PHP_INI_ALLなのでphp.iniに直接書くことも出来るし
ini_set関数を使ってphpスクリプトに書くことも出来る
http://php.net/manual/ja/function.ini-set.php
また同名の関数が用意されてるのでそれを使ってphpスクリプトに書くことも出来る
http://php.net/manual/ja/function.error-log.php
164デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)
2018/04/22(日) 11:55:07.76ID:pMZeO9w/0 うまくいかない…
エラーも表示されないし
ログファイルに書きこめない
パーミションもあけてるんですけど
せっかく丁寧に回答もらったのに申し訳ないんですがもうパス表示されたままであきらめます
phpのコードの勉強がしたいのにサーバーの設定だけで土日つぶれそう…
エラーも表示されないし
ログファイルに書きこめない
パーミションもあけてるんですけど
せっかく丁寧に回答もらったのに申し訳ないんですがもうパス表示されたままであきらめます
phpのコードの勉強がしたいのにサーバーの設定だけで土日つぶれそう…
165デフォルトの名無しさん (ワッチョイ 8713-9jjH)
2018/04/22(日) 12:15:18.27ID:RCbhuHms0 xamppでもいれて自鯖でやれよ
レンサバでやる意味がわからん
レンサバでやる意味がわからん
166デフォルトの名無しさん (ワッチョイ ff73-fvqh)
2018/04/22(日) 22:52:07.39ID:6Gp3Qhv/0 >>164
<?php
ini_set('display_errors', 0);
ini_set('log_errors', 'On');
ini_set('error_log', '/home/アカウント名/サーバー名/errors/error.log');
<?php
ini_set('display_errors', 0);
ini_set('log_errors', 'On');
ini_set('error_log', '/home/アカウント名/サーバー名/errors/error.log');
167デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)
2018/04/23(月) 15:07:39.91ID:jrWtf7ql0168デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)
2018/04/23(月) 15:08:09.54ID:jrWtf7ql0 アンカ >>166 さんでした
169デフォルトの名無しさん (ワッチョイ 93ad-c97c)
2018/04/26(木) 02:51:42.22ID:4mqP60uz0 c言語から勉強初めてjava→html/css→javascript→php→mysql→jqueryときてwordpressの本読んだけど
ウェブやるならこれだけでいい気がして今までの時間が凄く無駄に思えてきた・・・
phpとかできたほうが有利な点を教えてください・・・
モチベーションが・・・
ウェブやるならこれだけでいい気がして今までの時間が凄く無駄に思えてきた・・・
phpとかできたほうが有利な点を教えてください・・・
モチベーションが・・・
170デフォルトの名無しさん (ワッチョイ 2be4-iMQz)
2018/04/26(木) 11:41:18.07ID:vpKHU58Q0 何かウェブサービスをやりたいとか
スマホでゲームとか作ってユーザのデータを集約させるバックグラウンドが必要とかでなく
ただWebサイトを構築したいってだけなら別にWPでいいんじゃない?
モチベが欲しいならWPなしでサイト構築するためにPHP学ぶでもいいのでは?
PHPerは無駄が好きなのでJava脳で車輪の再発明嫌いな人はPHP向いてないかもね
スマホでゲームとか作ってユーザのデータを集約させるバックグラウンドが必要とかでなく
ただWebサイトを構築したいってだけなら別にWPでいいんじゃない?
モチベが欲しいならWPなしでサイト構築するためにPHP学ぶでもいいのでは?
PHPerは無駄が好きなのでJava脳で車輪の再発明嫌いな人はPHP向いてないかもね
171デフォルトの名無しさん (ワッチョイ 2be8-HzgJ)
2018/04/27(金) 20:59:04.65ID:4+bpK0C+0 同じサーバー内で、自プログラムが置かれているディレクトリとは異なるディレクトリにある
ファイルを読み込みたいのですが、そのディレクトリはBASIC認証をかけています。
この場合、phpプログラムから認証を突破するための手続きはどうすればいいでしょうか?
IDとパスワードはもちろん分かっている状態です。
ファイルを読み込みたいのですが、そのディレクトリはBASIC認証をかけています。
この場合、phpプログラムから認証を突破するための手続きはどうすればいいでしょうか?
IDとパスワードはもちろん分かっている状態です。
172デフォルトの名無しさん (ワッチョイ 2165-luqG)
2018/04/27(金) 22:21:06.56ID:7/omQtan0 >>171
何か試してから聞いてる?
何か試してから聞いてる?
173デフォルトの名無しさん (ワッチョイ 2be4-iMQz)
2018/04/28(土) 00:04:33.20ID:g3LZUwEj0 httpでやる必要がないならbasic認証関係ないんで
ローカルのファイルのパスがちゃんと指定できてれば読める
もしhttp経由で読み込む必要があるのなら
http://php.net/manual/ja/function.file-get-contents.php
ここの例4のとこ参考にして
Authorizationヘッダをつけてリクエスト送ればいい
"Authorization: Basic {$token}\r\n"
$tokenはbase64_encode('id:password');
ローカルのファイルのパスがちゃんと指定できてれば読める
もしhttp経由で読み込む必要があるのなら
http://php.net/manual/ja/function.file-get-contents.php
ここの例4のとこ参考にして
Authorizationヘッダをつけてリクエスト送ればいい
"Authorization: Basic {$token}\r\n"
$tokenはbase64_encode('id:password');
174デフォルトの名無しさん (ワッチョイ 2be8-HzgJ)
2018/04/28(土) 02:34:18.68ID:PnxQ5sIY0175デフォルトの名無しさん (ワッチョイ 89f7-c97c)
2018/04/30(月) 08:30:19.19ID:HJ8JxjLj0 ここで聞いていいのかわからないんですが、フレームワークの利用に関する質問です
5年以上前に誰かが作ったWebサイトを運用していく必要があるのですが、フレームワークはEthnaを利用しています
当時サイトを作った人や、その後追加改修を行った人は、もういない状態です。
Ethnaの使用感としては5年以上前に開発が止まっていて、ドキュメントも未完成。
これに学習コストを払うのは嫌だなあというのが本音です。人不足で新しい人も入ってきているのですが、覚えてもらうのが申し訳ないレベルです。
ただ、フレームワークを変えて書き直すとなると、ほぼサイトをリニューアルすることになります。
そもそもフレームワーク関係なく、設計書もなく、中身がブラックボックス化しているサイトなので、リニューアルは何度か検討しています。
が、やはり時間がかかってしまうので、なおしたいことがあればその都度プログラムを読んで、修正しています。
なので、「現状のままであるリスク」を「リニューアルするコスト」がこえないと、なかなか上を説得することが難しいという状態です。
このWebサイトは、年数億円を売り上げており、何かの拍子に動かないというのは許されない状況です。
前提としてはここまでで、ここからが質問なのですが
5年以上前に作ったサイトの、5年以上前のフレームワークをそのまま扱っていくリスクというのは、どう見積もれば良いものでしょうか?
古いシステムをそのまま使い続けてる現場に入ったなら、どのように考えますか?
一応進言すれば、現状は変えられる可能性が高いのですが、判断に悩んでいます。
5年以上前に誰かが作ったWebサイトを運用していく必要があるのですが、フレームワークはEthnaを利用しています
当時サイトを作った人や、その後追加改修を行った人は、もういない状態です。
Ethnaの使用感としては5年以上前に開発が止まっていて、ドキュメントも未完成。
これに学習コストを払うのは嫌だなあというのが本音です。人不足で新しい人も入ってきているのですが、覚えてもらうのが申し訳ないレベルです。
ただ、フレームワークを変えて書き直すとなると、ほぼサイトをリニューアルすることになります。
そもそもフレームワーク関係なく、設計書もなく、中身がブラックボックス化しているサイトなので、リニューアルは何度か検討しています。
が、やはり時間がかかってしまうので、なおしたいことがあればその都度プログラムを読んで、修正しています。
なので、「現状のままであるリスク」を「リニューアルするコスト」がこえないと、なかなか上を説得することが難しいという状態です。
このWebサイトは、年数億円を売り上げており、何かの拍子に動かないというのは許されない状況です。
前提としてはここまでで、ここからが質問なのですが
5年以上前に作ったサイトの、5年以上前のフレームワークをそのまま扱っていくリスクというのは、どう見積もれば良いものでしょうか?
古いシステムをそのまま使い続けてる現場に入ったなら、どのように考えますか?
一応進言すれば、現状は変えられる可能性が高いのですが、判断に悩んでいます。
176デフォルトの名無しさん (ワッチョイ 2be4-iMQz)
2018/04/30(月) 15:33:03.01ID:jgwIHR0D0 動かなくなったらまずいといいつつ、
よくわからないものをいじって、なんとなく動いてるってことだよね?
その現状に危機感を抱くべきでは?
個人がフォークしたEthnamという後継プロジェクトはあるみたいだけど、
5.4で動くなんてのをウリにしてるあたり、
オリジナルはサポート切れのPHPバージョンを使ってるのだろうけど、
それだけで十分置き換え理由になるのでは?
よくわからないものをいじって、なんとなく動いてるってことだよね?
その現状に危機感を抱くべきでは?
個人がフォークしたEthnamという後継プロジェクトはあるみたいだけど、
5.4で動くなんてのをウリにしてるあたり、
オリジナルはサポート切れのPHPバージョンを使ってるのだろうけど、
それだけで十分置き換え理由になるのでは?
177デフォルトの名無しさん (ワッチョイ 2165-luqG)
2018/04/30(月) 16:33:45.75ID:xsz5GBeT0178デフォルトの名無しさん (ワッチョイ 81eb-NYJU)
2018/04/30(月) 17:17:04.35ID:jhlqCVp+0 サイトの仕様を解析して理解する所から始める。
仕様さえ分かれば、フレームワークなんて大したことないって気づきそう
仕様さえ分かれば、フレームワークなんて大したことないって気づきそう
179デフォルトの名無しさん (ワッチョイ 19e9-Zmkj)
2018/04/30(月) 17:20:23.74ID:Fr6QpWrH0 よく知らないけど、5年以上前のフレームワークってセキュリティ的にどうなの
180デフォルトの名無しさん (ワッチョイ 2141-nMkC)
2018/05/01(火) 05:57:16.67ID:YFbi6kAs0 使い道あるの?
181デフォルトの名無しさん (ワッチョイ 272b-XJxX)
2018/05/04(金) 18:08:52.10ID:ZORKHZxp0 FastCGIで動かす時にアプリケーション初期化のコードは最初の1回だけ実行したい
というより予め実行済みの状態でリクエストを待機させたいんだけど、どうすればいいの?
というより予め実行済みの状態でリクエストを待機させたいんだけど、どうすればいいの?
182デフォルトの名無しさん (ワッチョイ 0beb-pRpi)
2018/05/05(土) 02:10:31.22ID:i6PqpWH90 ファイルを file_get_contens() や file_pet_contents で読み書きしたいんですが
ロックってどうすればいいんでしょうか
flockにファイルディスクリプタが必要みたいなんですけど
それを使って与密会するわけじゃないのでRD_ONLYで開いてもいいんでしょうか
$fp = fopen($filename, 'r');
if (flock($fp, LOCK_EX)) {
file_get_contents($filename);
〜
file_putt_contents($filename);
flock($fp, LOCK_UN)
}
でうごきますか?
ロックファイルはわける必要がありますか?
ロックがぶつかるケースをデバッグできないので大丈夫なのかどうかがよくわかりません
ロックってどうすればいいんでしょうか
flockにファイルディスクリプタが必要みたいなんですけど
それを使って与密会するわけじゃないのでRD_ONLYで開いてもいいんでしょうか
$fp = fopen($filename, 'r');
if (flock($fp, LOCK_EX)) {
file_get_contents($filename);
〜
file_putt_contents($filename);
flock($fp, LOCK_UN)
}
でうごきますか?
ロックファイルはわける必要がありますか?
ロックがぶつかるケースをデバッグできないので大丈夫なのかどうかがよくわかりません
183デフォルトの名無しさん (ワッチョイ bfad-pRpi)
2018/05/05(土) 02:45:58.52ID:r2NCQwWJ0 てす
184デフォルトの名無しさん (ワッチョイ 1ee4-jSIs)
2018/05/05(土) 05:47:07.80ID:ai+BlqsN0 $fp = fopen($filename, 'c+');
if (flock($fp, LOCK_EX)) {
$buf = '';
while ($tmp = fread($fp, 1024)) {
$buf .= $tmp;
}
rewind($fp);
ftruncate($fp, 0);
fwrite($fp, $buf.$buf);
flock($fp, LOCK_UN)
}
if (flock($fp, LOCK_EX)) {
$buf = '';
while ($tmp = fread($fp, 1024)) {
$buf .= $tmp;
}
rewind($fp);
ftruncate($fp, 0);
fwrite($fp, $buf.$buf);
flock($fp, LOCK_UN)
}
185デフォルトの名無しさん (ワッチョイ 1fe9-bmQX)
2018/05/05(土) 15:07:11.64ID:XYMHadsA0 スマホ向けに下記をhtmlのheadに書いた場合は、スマホの横サイズいっぱいで折り返し表示されますが、
<meta name="viewport" content="width=device-width,initial-scale=1" />
php埋め込みhtml(拡張子はphp)に上記を書いても折り返してくれません。
他に何かお作法が必要でしょうか?
<meta name="viewport" content="width=device-width,initial-scale=1" />
php埋め込みhtml(拡張子はphp)に上記を書いても折り返してくれません。
他に何かお作法が必要でしょうか?
186デフォルトの名無しさん (ワッチョイ 1ee4-jSIs)
2018/05/05(土) 17:46:10.93ID:ai+BlqsN0 文字コード周りに問題がなければ
PHPで出力したHTMLのソースを表示してみてオリジナルのHTMLと対比してみては?
エスケープミスでタグが閉じられてない状態で出力されてるとかそんなレベルかもしれない
サーバ側で関連ヘッダーを出力しちゃってる可能性もあるので
理解出来るならブラウザの開発者ツール使ってHTTPヘッダの中身チェックするといい
なんにせよ再現できる全体ソースが出ないことには答えようがない
PHPで出力したHTMLのソースを表示してみてオリジナルのHTMLと対比してみては?
エスケープミスでタグが閉じられてない状態で出力されてるとかそんなレベルかもしれない
サーバ側で関連ヘッダーを出力しちゃってる可能性もあるので
理解出来るならブラウザの開発者ツール使ってHTTPヘッダの中身チェックするといい
なんにせよ再現できる全体ソースが出ないことには答えようがない
187デフォルトの名無しさん (ワッチョイ 1fe9-bmQX)
2018/05/05(土) 18:17:23.60ID:XYMHadsA0 >>186
原因が分かりました。
変数に改行(\n)付きの長いメッセージを入れてあり、それを表示するのにpreタグ
で囲っていたのが原因でした。
preタグを使わずに改行付きの長いメッセージを表示する方法を考えてみたいと思います。
どうもありがとうございました。
原因が分かりました。
変数に改行(\n)付きの長いメッセージを入れてあり、それを表示するのにpreタグ
で囲っていたのが原因でした。
preタグを使わずに改行付きの長いメッセージを表示する方法を考えてみたいと思います。
どうもありがとうございました。
188デフォルトの名無しさん (ワッチョイ 1fe9-bmQX)
2018/05/05(土) 18:24:56.30ID:XYMHadsA0 連投すみません。
nl2brを使えばすぐでしたね。
初歩的なことですみませんでした。
nl2brを使えばすぐでしたね。
初歩的なことですみませんでした。
189デフォルトの名無しさん (ワッチョイ 0beb-pRpi)
2018/05/05(土) 21:35:48.44ID:i6PqpWH90190デフォルトの名無しさん (ワッチョイ 277f-U8nf)
2018/05/06(日) 01:38:07.25ID:qVg6wQW80 プログラムの基本を教えてください。
一つのphpファイルが300行をオーバーしてしまったから、汎用性はないけど一まとまりの機能があって、色んな所から呼び出す処理を別のphpファイルにしてインクルードで呼び出す、
という形で小分けにしていこうと思ってますが、そんな風にバラバラにしてしまってもいいんでしょうか?
一つのphpファイルが300行をオーバーしてしまったから、汎用性はないけど一まとまりの機能があって、色んな所から呼び出す処理を別のphpファイルにしてインクルードで呼び出す、
という形で小分けにしていこうと思ってますが、そんな風にバラバラにしてしまってもいいんでしょうか?
191デフォルトの名無しさん (ワッチョイ 1ee4-jSIs)
2018/05/06(日) 06:09:15.48ID:P7v+SOn20 その考えの行きつく先にオブジェクト指向があるのでオブジェクト指向入門するといいかな
方向性としてはあってるのでとりあえずは思った通りにやってみては?
あと行数に関していえば1万行クラスのソースコードはざらなので(半分はコメントだったりするけど)
長い行数になったときのソースコードの管理の仕方をIDE使って覚えていくといいよ
方向性としてはあってるのでとりあえずは思った通りにやってみては?
あと行数に関していえば1万行クラスのソースコードはざらなので(半分はコメントだったりするけど)
長い行数になったときのソースコードの管理の仕方をIDE使って覚えていくといいよ
192デフォルトの名無しさん (ワッチョイ 277f-U8nf)
2018/05/06(日) 06:33:20.08ID:qVg6wQW80 >>191
返信ありがとうございます。1万行はぞっとします。とりあえずはこの方向性で行きたいと思います。
返信ありがとうございます。1万行はぞっとします。とりあえずはこの方向性で行きたいと思います。
193デフォルトの名無しさん (ワッチョイ 2fe9-pRpi)
2018/05/07(月) 18:56:32.81ID:VgAGErm20194デフォルトの名無しさん (JP 0Hb6-a7mP)
2018/05/08(火) 19:09:31.56ID:GHttMtN9H 関数の呼び出しがあっているのかわかりません
ボタンでCreateとLikesの処理をわけたいんですが、うまく実行できません
(ボタンの処理は別のPHPファイルに書いてます)
create_qaとUpdate_likes_whenbuttonClickは、単体であれば実行ができているのはわかっているのですが、振り分けるためのbutton_Click関数に入れた途端動かなくなります
returnで、振り分けそのものができていることは確認しました(IDを表示することができたので、問題がないかと思っています)
何か間違っていそうか分かる人教えて下さい
public function button_click(Request $request,$session_id){
if(isset($_POST["create"])){
$this->create_qa($request,$session_id);
}
else if(isset($_POST["likes"])){
//return $session_id; これはできてる
$this->update_likes_whenbuttonClick($request,$session_id);
}
}
ボタンでCreateとLikesの処理をわけたいんですが、うまく実行できません
(ボタンの処理は別のPHPファイルに書いてます)
create_qaとUpdate_likes_whenbuttonClickは、単体であれば実行ができているのはわかっているのですが、振り分けるためのbutton_Click関数に入れた途端動かなくなります
returnで、振り分けそのものができていることは確認しました(IDを表示することができたので、問題がないかと思っています)
何か間違っていそうか分かる人教えて下さい
public function button_click(Request $request,$session_id){
if(isset($_POST["create"])){
$this->create_qa($request,$session_id);
}
else if(isset($_POST["likes"])){
//return $session_id; これはできてる
$this->update_likes_whenbuttonClick($request,$session_id);
}
}
195デフォルトの名無しさん (オイコラミネオ MM96-R1+w)
2018/05/08(火) 20:30:36.78ID:ZRo6X/lKM エラーログは読んだの?
超能力者じゃない限りソースだけ貼られても分からんよ
超能力者じゃない限りソースだけ貼られても分からんよ
196デフォルトの名無しさん (ササクッテロラ Sp23-a7mP)
2018/05/08(火) 21:06:53.22ID:XEaTgBIDp197デフォルトの名無しさん (ワッチョイ 27ff-NrvC)
2018/05/08(火) 21:11:07.16ID:r4cHd3Kx0 >>194
elseまで流れてるとか
elseまで流れてるとか
198デフォルトの名無しさん (ササクッテロラ Sp23-a7mP)
2018/05/08(火) 21:22:37.44ID:XEaTgBIDp >>197
return でelse以降に入ると数値が表示させるようにして確認しましたが、今のところ流れてはなさそうです
分岐を一切作らずに
$this->create_qa($request,$session_id);
だけ入れてもおかしなことになるので、
$this->〜〜〜っていう表記が間違っているような気がするのですが何がおかしいのか全く分からず・・・
return でelse以降に入ると数値が表示させるようにして確認しましたが、今のところ流れてはなさそうです
分岐を一切作らずに
$this->create_qa($request,$session_id);
だけ入れてもおかしなことになるので、
$this->〜〜〜っていう表記が間違っているような気がするのですが何がおかしいのか全く分からず・・・
199デフォルトの名無しさん (ワッチョイ 27ff-NrvC)
2018/05/08(火) 21:33:50.33ID:r4cHd3Kx0 >>198
簡単な別のメソッドを作って呼び出せるか試してみたら
簡単な別のメソッドを作って呼び出せるか試してみたら
200デフォルトの名無しさん (ワッチョイ 46d2-a7mP)
2018/05/08(火) 21:46:05.47ID:ZabFV5ph0201デフォルトの名無しさん (ワッチョイ bb65-y/Bc)
2018/05/08(火) 22:12:48.09ID:Wxx1HImu0 error_logでファイルにエラー吐いてないのか?
画面出力はエラー出力でHTTPヘッダとか壊れてまともにならんことも多いぞ
画面出力はエラー出力でHTTPヘッダとか壊れてまともにならんことも多いぞ
202デフォルトの名無しさん (ワッチョイ 46d2-a7mP)
2018/05/08(火) 22:27:49.92ID:ZabFV5ph0 >>201
ためしにエラー出力してみましたが、全く何もでてないようで・・・
ためしにエラー出力してみましたが、全く何もでてないようで・・・
203デフォルトの名無しさん (ワッチョイ 46d2-a7mP)
2018/05/08(火) 22:40:25.33ID:ZabFV5ph0204デフォルトの名無しさん (ワッチョイ 6bb3-G8ur)
2018/05/09(水) 00:23:01.03ID:SCT1xJRf0 変数の$〜〜の$ってなんて読むの??
ドルなんとかって読んでるんだけど間違い?
ドルなんとかって読んでるんだけど間違い?
205デフォルトの名無しさん (ワッチョイ c5eb-bFqk)
2018/05/16(水) 06:54:52.26ID:U06fQouG0 文字列全体を正規表現判定するのってどうすればいいんですか?
入力に不正文字がないかチェックしたいんですけど
pregmatch('/[0-9a-zA-Z]+/', $input)
だと一部にマッチしてもtrueになっちゃうので
文字列全体で数字アルファベットしか使われてないことを確認したいです
入力に不正文字がないかチェックしたいんですけど
pregmatch('/[0-9a-zA-Z]+/', $input)
だと一部にマッチしてもtrueになっちゃうので
文字列全体で数字アルファベットしか使われてないことを確認したいです
206デフォルトの名無しさん (ワッチョイ cbb8-mmKM)
2018/05/16(水) 07:46:14.68ID:kggTFXx50207デフォルトの名無しさん (ワッチョイ c5eb-bFqk)
2018/05/16(水) 07:53:08.47ID:U06fQouG0 ctype_alnumを使えばいいんですね
ありがとうございました!
ありがとうございました!
208デフォルトの名無しさん (ワッチョイ c5eb-bFqk)
2018/05/16(水) 08:02:56.78ID:U06fQouG0 あとPHPの配列についてききたいんですけど
a[] = 2;
a[] = 4;
や array(2,4) でつくった場合Cやjavaの配列と同じくメモリ上にvalueだけがならんで
a[1] でアクセスした場合アドレス計算でアクセスされるんでしょうか?
それとも自動的に連想配列になって '1' っていう key を検索するんでしょうか?
メモリにははいるけどキャッシュにははいらないそこそこ大きなテーブルデータを扱ってるので気になりました
a[] = 2;
a[] = 4;
や array(2,4) でつくった場合Cやjavaの配列と同じくメモリ上にvalueだけがならんで
a[1] でアクセスした場合アドレス計算でアクセスされるんでしょうか?
それとも自動的に連想配列になって '1' っていう key を検索するんでしょうか?
メモリにははいるけどキャッシュにははいらないそこそこ大きなテーブルデータを扱ってるので気になりました
209デフォルトの名無しさん (ワッチョイ 89fa-9WOx)
2018/05/23(水) 19:27:20.90ID:Au5e7VGg0 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
Q3682
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
Q3682
210デフォルトの名無しさん (ワッチョイ 29f7-KY9h)
2018/05/24(木) 10:46:13.86ID:cPlRxlDn0 Q3682
211デフォルトの名無しさん (ワッチョイ 398a-EdLk)
2018/05/24(木) 16:05:36.14ID:6FiN0bsr0 114.149.223.252
212デフォルトの名無しさん (アウアウカー Sa5d-2Zx2)
2018/05/31(木) 15:22:43.39ID:TDljpn4Za 参考書を1ページずつjpgに自炊スキャンしましたが
今あるjpgの奇数ページと偶数ページをくっつけて見開きページの画像にして保存したいと考えました、phpの画像処理ライブラリは
GD
DmImage
ImageMagick
等があるみたいですが
手軽にできるのはどれですか?
今あるjpgの奇数ページと偶数ページをくっつけて見開きページの画像にして保存したいと考えました、phpの画像処理ライブラリは
GD
DmImage
ImageMagick
等があるみたいですが
手軽にできるのはどれですか?
213デフォルトの名無しさん (オイコラミネオ MM5e-rJoF)
2018/06/01(金) 00:15:25.87ID:MAx7uK1fM そんなのどれ使っても手軽だろw
こんなところに書いて待ってる間に処理一つくらい書けるし、
まずは分かりやすそうなのどれか一つ使って書いてみればいい
こんなところに書いて待ってる間に処理一つくらい書けるし、
まずは分かりやすそうなのどれか一つ使って書いてみればいい
214デフォルトの名無しさん (ワッチョイ b1d2-u72h)
2018/06/04(月) 11:58:13.68ID:xotzaECi0 どれもベースがGD
GDに皮をかぶせて使いやすくしたものだが皮の厚さが違う
GDに皮をかぶせて使いやすくしたものだが皮の厚さが違う
215デフォルトの名無しさん (ワッチョイ 3315-WL+L)
2018/06/07(木) 16:51:32.87ID:XK0BD38x0 初心者です。。
Class hoge {
public static function aaa (){
echo __CLASS__;
}
public function __construct (){
static::aaa();
}
}
Class piyo extends hoge {}
$var = new piyo();
//hoge
みたいなコンストラクタの中でstaticつけて関数呼び出すのってどういう意味が有るのですか…
static::hogehoge($this);みたいなのがコンストラクタのなかにあるのって
どういうふうに動いてるのかわからないです。
Class hoge {
public static function aaa (){
echo __CLASS__;
}
public function __construct (){
static::aaa();
}
}
Class piyo extends hoge {}
$var = new piyo();
//hoge
みたいなコンストラクタの中でstaticつけて関数呼び出すのってどういう意味が有るのですか…
static::hogehoge($this);みたいなのがコンストラクタのなかにあるのって
どういうふうに動いてるのかわからないです。
216デフォルトの名無しさん (ワッチョイ b15d-ROyu)
2018/06/07(木) 17:08:53.75ID:GEMO2qjs0217デフォルトの名無しさん (ワッチョイ 3315-WL+L)
2018/06/07(木) 17:37:17.26ID:XK0BD38x0 >>216
遅延的束縛がわからんのです。
コンストラクタの中でやってるからpiyoにならないのかな
static $piyo;
public function __construct(){
static::hoge($this);
}
public static function hoge($this){
return static::piyo = $this;
}
みたいなのときとかもうわけわからん
遅延的束縛がわからんのです。
コンストラクタの中でやってるからpiyoにならないのかな
static $piyo;
public function __construct(){
static::hoge($this);
}
public static function hoge($this){
return static::piyo = $this;
}
みたいなのときとかもうわけわからん
218デフォルトの名無しさん (ワッチョイ 3315-WL+L)
2018/06/07(木) 17:38:09.15ID:XK0BD38x0 static::$piyoですね
219デフォルトの名無しさん (ワッチョイ b15d-ROyu)
2018/06/07(木) 18:19:33.09ID:GEMO2qjs0220デフォルトの名無しさん (ワッチョイ 3315-psTc)
2018/06/07(木) 19:00:51.08ID:XK0BD38x0221デフォルトの名無しさん (ワッチョイ 3315-psTc)
2018/06/07(木) 23:45:31.41ID:XK0BD38x0 >>217はClass Hogeとして
$aho = new Hoge()とするとインスタンス化した時にHogeの静的プロパティも初期化されるってことだよね。staticとparentがチェーンしてると訳わからんくなる
$aho = new Hoge()とするとインスタンス化した時にHogeの静的プロパティも初期化されるってことだよね。staticとparentがチェーンしてると訳わからんくなる
222デフォルトの名無しさん (ワッチョイ 3315-psTc)
2018/06/07(木) 23:53:42.93ID:XK0BD38x0 Hogeを継承したpooクラスがあったらpooクラスのstaticプロパティも初期化されるけどselfとどう違うのかわからん。。
223デフォルトの名無しさん (ワッチョイ eb96-LHz9)
2018/06/10(日) 00:33:54.58ID:4f+KYqKd0 トランプゲームみたいな感じで写真の入ってるカードを並べ替えさせるゲームを作ろうと思っています。
カードはドラッグして移動可能。
所定の□の近くにくるとカードは□に収まる
こういったことを簡単に実現できるおすすめの言語があったら教えてください。
使ったことのある言語はCとC#だけです。
カードはドラッグして移動可能。
所定の□の近くにくるとカードは□に収まる
こういったことを簡単に実現できるおすすめの言語があったら教えてください。
使ったことのある言語はCとC#だけです。
224デフォルトの名無しさん (ワッチョイ 2176-QX4S)
2018/06/10(日) 01:34:40.62ID:EYgmWGdc0 なぜPHPのスレで聞くのか?
てか、ハブリッシュするプラットフォームに依存する話しだから
それを言わないとだれも答えられない
ロジックだけ実装するならどんな言語でも作れる
てか、ハブリッシュするプラットフォームに依存する話しだから
それを言わないとだれも答えられない
ロジックだけ実装するならどんな言語でも作れる
225デフォルトの名無しさん (ワッチョイ eb96-LHz9)
2018/06/10(日) 06:39:55.08ID:4f+KYqKd0226デフォルトの名無しさん (ワッチョイ 92eb-m0US)
2018/06/20(水) 05:45:13.05ID:gdouP6aq0 フォームで受け取ったデータをそのままディレクトリ名にしたいんですけど
ディレクトリ名に使われて危険な文字をはじく関数みたいなのってないですか?
. と / だけはじけば大丈夫なのかな
ディレクトリ名に使われて危険な文字をはじく関数みたいなのってないですか?
. と / だけはじけば大丈夫なのかな
227デフォルトの名無しさん (ワッチョイ e976-81tK)
2018/06/20(水) 08:36:32.28ID:CZWJJc7y0 入力できる文字を絞った方がいいよ
アルファベット数字のみとかにすれば一番無難
それ以外の文字が一文字でも入ってたらエラーで返す
アルファベット数字のみとかにすれば一番無難
それ以外の文字が一文字でも入ってたらエラーで返す
228デフォルトの名無しさん (ワッチョイ 92eb-m0US)
2018/06/20(水) 17:19:49.17ID:gdouP6aq0 なるほどー
ありがとうございます
ありがとうございます
229デフォルトの名無しさん (アウアウイー Sab1-X/D+)
2018/06/20(水) 18:06:03.26ID:e8FLeNqqa ctype_alnumのおでましか
230デフォルトの名無しさん (ワッチョイ 46d5-MIFy)
2018/07/02(月) 20:37:50.95ID:WBjy4TX+0 a.php が吐くHTMLに、b.php を差し込むSSIタグを埋めたところ、挙動がおかしい。
サーバは apache、PHPの出力に対してもSSIが効くように設定してある。
どうおかしいって、b.php 出力がSSIタグの位置からズレた場所に挿入され、しかもなんか断片化してる。
a.php と b.php の出力が混ざった感じというか、a.php と b.php が非同期に並行して動いてる感じというか。
a.php や b.php と同等の内容の a.html と b.html を用意し、a.html に b.php や b.html をSSIするケースや、a.php に b.html をSSIするケースでは問題無く、a.php に b.php をSSIするケースだけでおかしい。
原因の心当たりって無い?
サーバは apache、PHPの出力に対してもSSIが効くように設定してある。
どうおかしいって、b.php 出力がSSIタグの位置からズレた場所に挿入され、しかもなんか断片化してる。
a.php と b.php の出力が混ざった感じというか、a.php と b.php が非同期に並行して動いてる感じというか。
a.php や b.php と同等の内容の a.html と b.html を用意し、a.html に b.php や b.html をSSIするケースや、a.php に b.html をSSIするケースでは問題無く、a.php に b.php をSSIするケースだけでおかしい。
原因の心当たりって無い?
231デフォルトの名無しさん (アウアウウー Sa85-wqae)
2018/07/02(月) 21:13:03.02ID:SCtIQYdLa ツッコミどころだらけで笑うわ
* SSIはWebサーバの機能(スレ違い)
* その構成にする意味が分からない
* というかSSIってマジ?
* SSIはWebサーバの機能(スレ違い)
* その構成にする意味が分からない
* というかSSIってマジ?
232デフォルトの名無しさん (ワッチョイ c976-on65)
2018/07/02(月) 21:16:52.40ID:wd1ntAgJ0 SSIって10年以上ぶりに聞いた
なんでそんなトリッキーなことしてんだw
なんでそんなトリッキーなことしてんだw
233デフォルトの名無しさん (ワッチョイ 46d5-MIFy)
2018/07/02(月) 21:25:25.66ID:WBjy4TX+0 >>231
> * SSIはWebサーバの機能(スレ違い)
あぁ、それもそうだ。おっしゃる通り。
残りについては、そういう都合があるとしか言えない。
SSI もまじ。<!--#include ... のやつな。
いろんなもの SSI してるのよ。
> * SSIはWebサーバの機能(スレ違い)
あぁ、それもそうだ。おっしゃる通り。
残りについては、そういう都合があるとしか言えない。
SSI もまじ。<!--#include ... のやつな。
いろんなもの SSI してるのよ。
234デフォルトの名無しさん (アウアウウー Sa85-wqae)
2018/07/02(月) 21:37:55.31ID:SCtIQYdLa SSIの時点でもうアレだけど更にPHPを絡められて試す気がなぁ
235デフォルトの名無しさん (ワッチョイ c976-on65)
2018/07/02(月) 22:05:59.18ID:wd1ntAgJ0 とりあえずApache側の設定か?
同期、非同期の問題ならpreforkとworkerで挙動変わるか試してみるとか
まあ、どっちにせよ激しくスレ違いな気がする
同期、非同期の問題ならpreforkとworkerで挙動変わるか試してみるとか
まあ、どっちにせよ激しくスレ違いな気がする
236デフォルトの名無しさん (ワッチョイ ade9-PNnE)
2018/07/04(水) 02:05:21.42ID:D7cT+Okb0 更新履歴〜
みたいなページでSSI使ってたことはある
これはこれで便利やしトリッキー言うほどじゃないだろ
まあ今時としては、SSIみたいな挙動をするphpコード書くだけになるか
みたいなページでSSI使ってたことはある
これはこれで便利やしトリッキー言うほどじゃないだろ
まあ今時としては、SSIみたいな挙動をするphpコード書くだけになるか
237デフォルトの名無しさん (ワッチョイ 1167-HDH5)
2018/07/04(水) 12:23:51.44ID:0wBgZClm0 public function Hoge($hoge)
{
return function () use ($hoge) {
return $this->test_func($hoge);
};
}
こういうのって意味有りますか?
クロージャのとこに$hogeを持ってきても実際には繋がりはないように見えるんすけど
$var = Hoge($hoge)
//$var = function($bar){ return $this->test_func($bar);}
{
return function () use ($hoge) {
return $this->test_func($hoge);
};
}
こういうのって意味有りますか?
クロージャのとこに$hogeを持ってきても実際には繋がりはないように見えるんすけど
$var = Hoge($hoge)
//$var = function($bar){ return $this->test_func($bar);}
238デフォルトの名無しさん (ワッチョイ 1167-HDH5)
2018/07/04(水) 12:24:35.05ID:0wBgZClm0 クロージャの$hogeと最初の引数の$hogeの繋がり
239デフォルトの名無しさん (ワッチョイ 1167-HDH5)
2018/07/04(水) 12:32:44.93ID:0wBgZClm0 クロージャになっても最初に渡された$hogeは生きてるんやな。。
知らなかった
知らなかった
240デフォルトの名無しさん (ワッチョイ 9de9-VCRa)
2018/07/04(水) 13:58:24.36ID:CT674Y3Q0 >>236
PHPを使ってるんだったら
SSIの<!--#include...に該当する処理は
取り込み対象をPHPのコードとして評価したいならinclude、
文字列として評価したいならfile_get_contets()するだけの
1行で済む話
SSIはサーバー環境依存だし今どきSSIが有効になってる古いサーバーを
これから先も使い続けるのか?という疑問もある
PHPを使ってるんだったら
SSIの<!--#include...に該当する処理は
取り込み対象をPHPのコードとして評価したいならinclude、
文字列として評価したいならfile_get_contets()するだけの
1行で済む話
SSIはサーバー環境依存だし今どきSSIが有効になってる古いサーバーを
これから先も使い続けるのか?という疑問もある
241デフォルトの名無しさん (スププ Sd22-k7OW)
2018/07/04(水) 14:03:16.97ID:YNDCbrWOd SSIってJavaScriptもiframeタグもブラウザ標準ではなかったそれこそ10年以上前の遺物よな
242デフォルトの名無しさん (ワッチョイ 027f-7be3)
2018/07/04(水) 16:51:50.97ID:n4h9hTEh0 このゲーム面白すぎてずっとやってる
https://goo.gl/2UVYAA
https://goo.gl/2UVYAA
243デフォルトの名無しさん (ワッチョイ 45fa-2e90)
2018/07/04(水) 21:46:16.37ID:gFgZc5FG0 CTP
244デフォルトの名無しさん (ワッチョイ 4281-yQv9)
2018/07/04(水) 21:48:15.59ID:dy7fWBja0 メンテしているperlのサイトで確か使ってたな
phpで使おうと思うほど猛者じゃないので勘弁
phpで使おうと思うほど猛者じゃないので勘弁
245デフォルトの名無しさん (ワッチョイ bff7-SVZQ)
2018/07/05(木) 16:22:58.50ID:AeL6VB/V0 CTP
246デフォルトの名無しさん (ワッチョイ bf9f-wasm)
2018/07/08(日) 17:52:24.96ID:V6T9ucEP0 PHPでerrnoを取得することはできますか?
やりたいことは、ファイルまたはディレクトリの有無を確認しつつ、
falseだった場合は、ENOENTなのかEACCESなのか知りたいのです。
file_existsとis_readableを組み合わせるしかないですか?
やりたいことは、ファイルまたはディレクトリの有無を確認しつつ、
falseだった場合は、ENOENTなのかEACCESなのか知りたいのです。
file_existsとis_readableを組み合わせるしかないですか?
247230 (ワッチョイ bfd5-Jsga)
2018/07/08(日) 20:26:44.98ID:X1ZcCvQ00 >>230
せっかくなので分かったことを報告。
SSI にせよ PHP の virtual にせよ apache のサブリクエストが発行される場合、元リクエストとサブリクエストのPHPのインスタンスは同一のものが使い回されるらしく、グローバル変数なんかは共通されるらしい。
恐らく define や include、出力バッファなんかも共有されてると思う。
それでいろいろ思いもよらない挙動を示すっぽい。
ということが分かったので、適当に回避した。
apacheの設定によるところもあるかもしれないけど、そこまで検証してない。
せっかくなので分かったことを報告。
SSI にせよ PHP の virtual にせよ apache のサブリクエストが発行される場合、元リクエストとサブリクエストのPHPのインスタンスは同一のものが使い回されるらしく、グローバル変数なんかは共通されるらしい。
恐らく define や include、出力バッファなんかも共有されてると思う。
それでいろいろ思いもよらない挙動を示すっぽい。
ということが分かったので、適当に回避した。
apacheの設定によるところもあるかもしれないけど、そこまで検証してない。
248デフォルトの名無しさん (ワッチョイ 0776-N6TJ)
2018/07/08(日) 22:36:55.30ID:QF2djuw30 なんか普通の話だな
グローバル変数なんて使ってたらそんなの当たり前だろ
グローバル変数なんて使ってたらそんなの当たり前だろ
249デフォルトの名無しさん (オイコラミネオ MM4b-wasm)
2018/07/09(月) 11:35:35.05ID:9xuTw2udM >>246
自己レスです。
ググってたら、それらしきものがありました。
非推奨などもなさそうで行けそうです。
http://php.net/manual/ja/function.posix-strerror.php
自己レスです。
ググってたら、それらしきものがありました。
非推奨などもなさそうで行けそうです。
http://php.net/manual/ja/function.posix-strerror.php
250デフォルトの名無しさん (ワッチョイ e7e9-sule)
2018/07/09(月) 14:41:02.89ID:p8VxNcvv0 >>247
ユーザー定義のグローバル変数や名前空間をもたない定数なんかもう何年も使ったことないけど
ユーザー定義のグローバル変数や名前空間をもたない定数なんかもう何年も使ったことないけど
251デフォルトの名無しさん (ワッチョイ 6723-mSbI)
2018/07/09(月) 16:51:13.69ID:snrXTXq90 よく分かってないので、スマソ。
モジュール版PHP5.3環境で動かしていたのを、
@ モジュール版5.6環境に移行させる場合
A CGI版5.3環境に移行させる場合
@、Aともにソースコードの書き換えは必須なの?
また、簡単なのはどっち?
モジュール版PHP5.3環境で動かしていたのを、
@ モジュール版5.6環境に移行させる場合
A CGI版5.3環境に移行させる場合
@、Aともにソースコードの書き換えは必須なの?
また、簡単なのはどっち?
252デフォルトの名無しさん (ワッチョイ 6723-N6TJ)
2018/07/09(月) 17:11:56.44ID:P+nm3UzA0 それだけじゃなんとも言えんよ…
エスパーでも答えられんと思われ
上の話と同じでグローバル変数とか使ってるとかなら書き換える必要あるかもね
使われてるモジュールやライブラリが対応してるかどうかもあるし
同じ環境を用意して実際に動かしてテストするしかないと思う
エスパーでも答えられんと思われ
上の話と同じでグローバル変数とか使ってるとかなら書き換える必要あるかもね
使われてるモジュールやライブラリが対応してるかどうかもあるし
同じ環境を用意して実際に動かしてテストするしかないと思う
253デフォルトの名無しさん (ワッチョイ a781-UVFs)
2018/07/09(月) 17:22:57.00ID:YsFJMBw40 5.6でサポートやめたり、推奨からは図したりしたものがあれば
良くて警告、悪くて動作せずとなる
やってみないと分からないから、試験環境を作って試すのが最善
良くて警告、悪くて動作せずとなる
やってみないと分からないから、試験環境を作って試すのが最善
254デフォルトの名無しさん (ワッチョイ e7e9-sule)
2018/07/09(月) 18:02:41.46ID:p8VxNcvv0 5.2.X⇒7.2.Xに以降した環境がいくつもあるけど
PHPコンパイルで何度かこけた(コアに取り込まれて使えなくなってるオプションがあった)ぐらいで
コードを手直しをした記憶が全くないなぁ
逆にどんな書き方をしてたら動かなくなるのやら…
PHPコンパイルで何度かこけた(コアに取り込まれて使えなくなってるオプションがあった)ぐらいで
コードを手直しをした記憶が全くないなぁ
逆にどんな書き方をしてたら動かなくなるのやら…
255デフォルトの名無しさん (スププ Sd7f-w8Cw)
2018/07/09(月) 18:09:44.47ID:U1ydYGt1d 開発を
error_reporting=E_ALL(PHP5.4以前ならE_ALL|E_STRICT)
でしてなかったりすると環境移行でエラー出まくったりするかもな
初心者はまずエラーを正しく出すところから学習しないとな
error_reporting=E_ALL(PHP5.4以前ならE_ALL|E_STRICT)
でしてなかったりすると環境移行でエラー出まくったりするかもな
初心者はまずエラーを正しく出すところから学習しないとな
256デフォルトの名無しさん (ワッチョイ bfd5-Jsga)
2018/07/10(火) 02:26:11.43ID:wjyVwwQl0 >>248
同じインスタンスで動くならそりゃそうだろって話だけど、virtual はともかく SSI が同じインスタンスで動かすのが当たり前かと言われれば微妙じゃね?
$_GET みたいなスーパーグローバルとかどうなっちゃうんだよって問題もあるし、実際出力バッファはまぜこぜになって使い物にならないわけだし。
わざわざ SSI でやるのなんて、他所の誰かが作った全く関係ないものを自分の処理と隔離してページ上に取り込みたいなんてケースだったりするわけで、隔離できないならあんまり意味が無いというか。
そういうものだということが分かってりゃやり方考えるからいいんだけど、なんでそうする?っていう仕様だと思う。
PHPそのものの問題じゃないであろうこと引っ張ってすまないけど。
同じインスタンスで動くならそりゃそうだろって話だけど、virtual はともかく SSI が同じインスタンスで動かすのが当たり前かと言われれば微妙じゃね?
$_GET みたいなスーパーグローバルとかどうなっちゃうんだよって問題もあるし、実際出力バッファはまぜこぜになって使い物にならないわけだし。
わざわざ SSI でやるのなんて、他所の誰かが作った全く関係ないものを自分の処理と隔離してページ上に取り込みたいなんてケースだったりするわけで、隔離できないならあんまり意味が無いというか。
そういうものだということが分かってりゃやり方考えるからいいんだけど、なんでそうする?っていう仕様だと思う。
PHPそのものの問題じゃないであろうこと引っ張ってすまないけど。
257デフォルトの名無しさん (ワッチョイ 07b8-Ww/5)
2018/07/10(火) 12:06:55.09ID:0tZHlanb0 前バージョンと同じように、必要なモジュール・ライブラリがロードされていて、
基本的な環境に差異がないのを前提とすれば、
あとは廃止変更された機能や関数が影響を受ける。
なので動かない場所が出てきて、書き換えが必要になる場合はあるが、
それはコードの1%にも満たないぐらいの量のはずだから、
大規模なアプリケーションでも書き換えに1日はかからないだろう。
基本的な環境に差異がないのを前提とすれば、
あとは廃止変更された機能や関数が影響を受ける。
なので動かない場所が出てきて、書き換えが必要になる場合はあるが、
それはコードの1%にも満たないぐらいの量のはずだから、
大規模なアプリケーションでも書き換えに1日はかからないだろう。
258デフォルトの名無しさん (ワッチョイ e7e9-sule)
2018/07/10(火) 16:01:47.12ID:Whumi4Kc0 >>256
> 他所の誰かが作った全く関係ないものを自分の処理と隔離してページ上に取り込みたい
SSIを使う理由になってないしSSI以外の知識がないだけ
サーバーの知識が多少ある人間なら今この時代にSSIを使うのがいかに馬鹿げているかすぐ分かる
> 他所の誰かが作った全く関係ないものを自分の処理と隔離してページ上に取り込みたい
SSIを使う理由になってないしSSI以外の知識がないだけ
サーバーの知識が多少ある人間なら今この時代にSSIを使うのがいかに馬鹿げているかすぐ分かる
259デフォルトの名無しさん (スププ Sd7f-w8Cw)
2018/07/10(火) 16:24:53.40ID:XJrRuzBNd SSIもhtaccessも無駄にサーバーに負荷をかけわ、遅いわ、セキュリティリスクの管理もしにくわで何1つ良いことないから無効にしろと大昔に教わったな
結構最近でもSSIインジェクションで資生堂の小会社がが情報漏えい起こしてたけど資生堂みたいな大きなところが未だにSSI使ってることに驚いた
includeしたいだけなら他にいくらでも代替案あるのにさ
結構最近でもSSIインジェクションで資生堂の小会社がが情報漏えい起こしてたけど資生堂みたいな大きなところが未だにSSI使ってることに驚いた
includeしたいだけなら他にいくらでも代替案あるのにさ
260デフォルトの名無しさん (オイコラミネオ MM9b-Jsga)
2018/07/10(火) 16:34:05.74ID:MaGnmy4dM SSIインジェクションやらかすようなやつはSQLインジェクションだってやらかしかねないんだから、それはSSIを使わない理由としては弱いでしょ。
261デフォルトの名無しさん (スププ Sd7f-cREG)
2018/07/10(火) 16:43:24.55ID:b+YyloMOd 素人だからよく分かんないんだけど
ssiでincludeするのとhtmlで<iframe> or phpでfile_get_contents するのは何が違うの?
ssiを使う理由って何?
ssiでincludeするのとhtmlで<iframe> or phpでfile_get_contents するのは何が違うの?
ssiを使う理由って何?
262デフォルトの名無しさん (オイコラミネオ MM9b-Jsga)
2018/07/10(火) 17:02:12.57ID:MaGnmy4dM >>261
旧来からのスタイルを踏襲しているとか、
SSIはPHP知らなくてもHTML(と言えるか微妙だが)分かれば使えるってのもあるかもね。
サイト全部がPHPじゃないし、みんながみんなPHP使えるわけじゃないからな。
PHP使うなら PHP の include しても file_get_contents しても、適用できるなら得られる結果は一緒でしょ。
旧来からのスタイルを踏襲しているとか、
SSIはPHP知らなくてもHTML(と言えるか微妙だが)分かれば使えるってのもあるかもね。
サイト全部がPHPじゃないし、みんながみんなPHP使えるわけじゃないからな。
PHP使うなら PHP の include しても file_get_contents しても、適用できるなら得られる結果は一緒でしょ。
263デフォルトの名無しさん (ワッチョイ 475b-MSAO)
2018/07/10(火) 18:15:06.82ID:lHg/M16h0 >>261
使う理由は特にない
1.SSI/#include file|virtual="path"はpathの中身をそのまま取り込んだ結果を取り込んだ場所で出力する
2.<iframe src="url|local_path">は対象の出力をフレームとして取り込む
3.file_get_contents('url')はurlの出力を取り込む
4.file_get_contents('local_path')はlocal_pathの中身をそのまま取り込む
5.includeは対象を「PHPのコードとして評価する」
1 ≒ 2 ≒ 3 ≠ 4 ≠ 5
だと思っとけばいい
includeとfile_get_contents()が等価なんてのは大嘘なので信じないよう
SSIの#includeに該当する処理は、そのほとんどが<iframe>+αで片付く程度の低レベルの事しかしてないね
繰り返すけど今更使う必要性は全くない過去の遺物です
使う理由は特にない
1.SSI/#include file|virtual="path"はpathの中身をそのまま取り込んだ結果を取り込んだ場所で出力する
2.<iframe src="url|local_path">は対象の出力をフレームとして取り込む
3.file_get_contents('url')はurlの出力を取り込む
4.file_get_contents('local_path')はlocal_pathの中身をそのまま取り込む
5.includeは対象を「PHPのコードとして評価する」
1 ≒ 2 ≒ 3 ≠ 4 ≠ 5
だと思っとけばいい
includeとfile_get_contents()が等価なんてのは大嘘なので信じないよう
SSIの#includeに該当する処理は、そのほとんどが<iframe>+αで片付く程度の低レベルの事しかしてないね
繰り返すけど今更使う必要性は全くない過去の遺物です
264デフォルトの名無しさん (スププ Sd7f-w8Cw)
2018/07/10(火) 18:40:58.20ID:b+YyloMOd >>263
詳しくありがとう
詳しくありがとう
265デフォルトの名無しさん (オイコラミネオ MM9b-Jsga)
2018/07/10(火) 18:46:59.92ID:MaGnmy4dM include と file_get_contents が等価だなんて言ってないぞ。
別のコンテンツを差し込む方法として適用できるケースがあると言ってるだけで。
例えばページのヘッダやらフッタやらを別ファイルに浮かせたとして、それが include できるなら include で、file_get_contents できるなら file_get_contents で差し込めるだろ。
別のコンテンツを差し込む方法として適用できるケースがあると言ってるだけで。
例えばページのヘッダやらフッタやらを別ファイルに浮かせたとして、それが include できるなら include で、file_get_contents できるなら file_get_contents で差し込めるだろ。
266デフォルトの名無しさん (ワッチョイ e7e9-sule)
2018/07/10(火) 18:59:01.25ID:Whumi4Kc0267デフォルトの名無しさん (オイコラミネオ MM9b-Jsga)
2018/07/10(火) 19:08:22.00ID:MaGnmy4dM268デフォルトの名無しさん (ワッチョイ 475b-MSAO)
2018/07/10(火) 19:24:15.15ID:lHg/M16h0 初心者も見てるだろうから実例を出しとく
・test.php
------------
test
<?php
echo $a;
------------
・test.php
------------
test
<?php
echo $a;
------------
269デフォルトの名無しさん (ワッチョイ 475b-MSAO)
2018/07/10(火) 19:25:00.51ID:lHg/M16h0 ・index.php
------------
<?php
$a = 'hoge';
var_dump(file_get_contents('./test.php'));
/*
test
<?php
echo $a;
*/
var_dump(file_get_contents('http://localhost/test.php'));
/*
test
Notice: Undefined variable: a in...($aが定義されていないというエラー)
*/
include './test.php';
/*
test
hoge
*/
------------
この違いを理解してるならこれ以上俺から言う事は何もない
------------
<?php
$a = 'hoge';
var_dump(file_get_contents('./test.php'));
/*
test
<?php
echo $a;
*/
var_dump(file_get_contents('http://localhost/test.php'));
/*
test
Notice: Undefined variable: a in...($aが定義されていないというエラー)
*/
include './test.php';
/*
test
hoge
*/
------------
この違いを理解してるならこれ以上俺から言う事は何もない
270デフォルトの名無しさん (ワッチョイ 2ad0-kMcx)
2018/07/15(日) 17:40:24.73ID:0ke1s5C30 PHPを勉強している者ですが、
PHPを使ってお問い合わせフォームを作る際に気を付けるべきセキュリティ対策についてのアドバイスをください。
メールの送信までの流れは「入力」→「確認」→「送信」となりました。
入力・・・入力される文字の制限(メールアドレスの欄なら使用可能な文字以外でエラー)
確認・・・出力の前にhtmlspicialchars()を使い無害化
送信・・・?
参考になるサイトや書籍のアドバイスなどもいただけると嬉しいです。
よろしくお願いします。
PHPを使ってお問い合わせフォームを作る際に気を付けるべきセキュリティ対策についてのアドバイスをください。
メールの送信までの流れは「入力」→「確認」→「送信」となりました。
入力・・・入力される文字の制限(メールアドレスの欄なら使用可能な文字以外でエラー)
確認・・・出力の前にhtmlspicialchars()を使い無害化
送信・・・?
参考になるサイトや書籍のアドバイスなどもいただけると嬉しいです。
よろしくお願いします。
271デフォルトの名無しさん (ワッチョイ 5ed5-uzwL)
2018/07/16(月) 06:50:46.92ID:S86tTn750 >>270
とりあえず思い当たることをざっくり。
・SQLインジェクション対策
・セッションハイジャック対策
・HTTPSの確認
・管理者のうっかり対策
・スパムメール基地化の防止
前2つはこの言葉と PHP で検索すれば出てくると思うけど、SQLインジェクション対策にはPDOのプリペアドステートメントとバインドを使うとか、セッションハイジャック対策は個人的には問い合わせフォーム程度ならセッションなんて使わずhiddenでたらい回しにするかな。
HTTPSの確認は、HTTPでアクセスされた場合に受け付けないとかHTTPSにリダイレクトするとかの施策だけど、シンプルなサーバ構成なら $_SERVER['HTTPS'] が 'on' かどうかを見ればいいものの、webサーバの前段に何か(AWS の ELBとか)入れてるとそれじゃダメなこともある。
開発前に HTTP と HTTPS でのアクセス時の違いを phpinfo を diff 取って確認しておくのがいいんじゃないかな。
管理者のうっかり対策ってのは、問い合わせ内容に悪意あるURLなんかが書かれていてもうっかり踏まないようにするとか。
悪意あるURLじゃなくても、管理画面なんかからリンクを直接踏めると referer とかで管理画面のURLが漏れることがある。
スパムメール基地ってのは、もし受け付け時にユーザーにメールを送信する場合、他人のメールアドレスを入力されるとそっちへメールが飛ぶことを悪用されること。
文面に悪意あるURLを書かれると、それを踏まされちゃうかもしれない。
対策はいろいろあると思うけど完璧な対策は難しく、どこかを妥協することになると思う(メール送るのやめるとか)。
とりあえず思い当たることをざっくり。
・SQLインジェクション対策
・セッションハイジャック対策
・HTTPSの確認
・管理者のうっかり対策
・スパムメール基地化の防止
前2つはこの言葉と PHP で検索すれば出てくると思うけど、SQLインジェクション対策にはPDOのプリペアドステートメントとバインドを使うとか、セッションハイジャック対策は個人的には問い合わせフォーム程度ならセッションなんて使わずhiddenでたらい回しにするかな。
HTTPSの確認は、HTTPでアクセスされた場合に受け付けないとかHTTPSにリダイレクトするとかの施策だけど、シンプルなサーバ構成なら $_SERVER['HTTPS'] が 'on' かどうかを見ればいいものの、webサーバの前段に何か(AWS の ELBとか)入れてるとそれじゃダメなこともある。
開発前に HTTP と HTTPS でのアクセス時の違いを phpinfo を diff 取って確認しておくのがいいんじゃないかな。
管理者のうっかり対策ってのは、問い合わせ内容に悪意あるURLなんかが書かれていてもうっかり踏まないようにするとか。
悪意あるURLじゃなくても、管理画面なんかからリンクを直接踏めると referer とかで管理画面のURLが漏れることがある。
スパムメール基地ってのは、もし受け付け時にユーザーにメールを送信する場合、他人のメールアドレスを入力されるとそっちへメールが飛ぶことを悪用されること。
文面に悪意あるURLを書かれると、それを踏まされちゃうかもしれない。
対策はいろいろあると思うけど完璧な対策は難しく、どこかを妥協することになると思う(メール送るのやめるとか)。
272270 (ワッチョイ 2ad0-kMcx)
2018/07/16(月) 14:33:10.45ID:HXh/vnsc0273デフォルトの名無しさん (ワッチョイ c576-4qPP)
2018/07/16(月) 15:47:41.60ID:+45YTdov0274270 (ワッチョイ 2ad0-kMcx)
2018/07/16(月) 15:53:45.47ID:HXh/vnsc0275デフォルトの名無しさん (ワッチョイ c576-4qPP)
2018/07/16(月) 16:20:11.41ID:+45YTdov0276270 (ワッチョイ 2ad0-kMcx)
2018/07/16(月) 19:00:14.50ID:HXh/vnsc0277デフォルトの名無しさん (ワッチョイ ead2-1dqK)
2018/07/16(月) 21:18:00.33ID:UPJrQacm0 書きっぷりから本人の気がするな
278デフォルトの名無しさん (ワッチョイ 6d5d-LQig)
2018/07/16(月) 21:23:20.97ID:ui8Qw0tX0 練習なら色々気を遣うトレーニングになるからいいけど, 実際に公開する場合にはよく使われてるメールライブラリを使うべきだろうな
279デフォルトの名無しさん (ワッチョイ b5b3-Y8gp)
2018/07/16(月) 21:31:31.14ID:KfOaKyfW0280デフォルトの名無しさん (ワッチョイ 5ed5-uzwL)
2018/07/16(月) 22:09:49.12ID:S86tTn750 >>279
それはライブラリでどうこうできる問題じゃなさそうだよね。
個別にトレードオフ見て仕様化してる。
送信されることを緩和するならボットチェック(と言うのか知らんが)入れるとか、本文の悪用防止ならメールに入力本文は転記しないとか入力本文中のURLを伏せて転記するとか、
あるいはそもそもメール送らないとか、悪用元が分かってるならIPアドレスチェックして内部処理変えるとか。
本文転記のニーズは高いから難しいのよね。
それはライブラリでどうこうできる問題じゃなさそうだよね。
個別にトレードオフ見て仕様化してる。
送信されることを緩和するならボットチェック(と言うのか知らんが)入れるとか、本文の悪用防止ならメールに入力本文は転記しないとか入力本文中のURLを伏せて転記するとか、
あるいはそもそもメール送らないとか、悪用元が分かってるならIPアドレスチェックして内部処理変えるとか。
本文転記のニーズは高いから難しいのよね。
281デフォルトの名無しさん (ワッチョイ 89e9-Y8gp)
2018/07/17(火) 15:39:21.70ID:7HO9UDJa0 自動投稿系のスパムはハニーポットしかけるのが楽
<input type="text" name="mail" value="">
みたいなよくあるname値をもたせたダミーの<input>タグをcssとかで非表示にして
GETやPOSTメソッドでnameの値が飛んできたらスパム扱いにするだけ
初心者でも簡単に実装できるのがメリット
<input type="text" name="mail" value="">
みたいなよくあるname値をもたせたダミーの<input>タグをcssとかで非表示にして
GETやPOSTメソッドでnameの値が飛んできたらスパム扱いにするだけ
初心者でも簡単に実装できるのがメリット
282デフォルトの名無しさん (ワッチョイ bfe9-ljVq)
2018/07/24(火) 16:30:53.54ID:noMJmsz30 クラスAを継承したクラスA1、クラスA2を作りました
クラスA1ではB1、クラスA2ではB2クラスをuse Bx as Bとして読み込み
クラスAにクラスBを操作する処理を書けばクラスA1、A2に共通の処理を書かなくて済むかと思ったのですが、名前空間的にnew BとするとクラスAを基準としたパスで読み込もうとしてnot foundになってしまいます
親クラス側から子クラスで読み込む前提のクラスに対しての操作を書く方法はありますでしょうか?
クラスA1ではB1、クラスA2ではB2クラスをuse Bx as Bとして読み込み
クラスAにクラスBを操作する処理を書けばクラスA1、A2に共通の処理を書かなくて済むかと思ったのですが、名前空間的にnew BとするとクラスAを基準としたパスで読み込もうとしてnot foundになってしまいます
親クラス側から子クラスで読み込む前提のクラスに対しての操作を書く方法はありますでしょうか?
283デフォルトの名無しさん (アウアウカー Saab-egWL)
2018/07/24(火) 21:31:33.69ID:hRNBzg1Ya >>282
コード無いからエスパーするとinterface使え
コード無いからエスパーするとinterface使え
284デフォルトの名無しさん (ワッチョイ ffb8-2T1L)
2018/07/25(水) 23:37:30.51ID:DQL2gxnr0 エスパーすると設計がおかしい
285デフォルトの名無しさん (ワッチョイ f2ab-53i4)
2018/07/26(木) 12:53:46.16ID:kn/Cla8U0 少しマニアックな可能性はありますが
シーサーブログへの自作エディタを作成したいと思っています。
プルダウン方式で時刻を簡単に選んだり
その他を大分楽にすすめる事ができるのが目的です。
PHPでライブドアへの投稿ツールを少し作成してみたり
PHP、pythonあたりを少しだけ知っている、というのが
現状の自分かと分析していますが
ネットで少し検索してもシーサーブログへの投稿のためのプログラムは
PHPであまり引っかかりませんでした。
最終的には、タイトル変更、カテゴリ選択、時刻設定、定型文の挿入あたりの出来る
ツールを目指しているのですが、
スレッドのPHPとは離れますが
もし良いツールが出来るならPerl、Rubyなどもチャレンジしてみるしかないのか、
と思うのですが、
現状、攻めれそうな言語、もしくは方法を・・
本当にすみませんが、大まかなアドバイスでもいただけたら有難いです・・
よろしくお願いします。
シーサーブログへの自作エディタを作成したいと思っています。
プルダウン方式で時刻を簡単に選んだり
その他を大分楽にすすめる事ができるのが目的です。
PHPでライブドアへの投稿ツールを少し作成してみたり
PHP、pythonあたりを少しだけ知っている、というのが
現状の自分かと分析していますが
ネットで少し検索してもシーサーブログへの投稿のためのプログラムは
PHPであまり引っかかりませんでした。
最終的には、タイトル変更、カテゴリ選択、時刻設定、定型文の挿入あたりの出来る
ツールを目指しているのですが、
スレッドのPHPとは離れますが
もし良いツールが出来るならPerl、Rubyなどもチャレンジしてみるしかないのか、
と思うのですが、
現状、攻めれそうな言語、もしくは方法を・・
本当にすみませんが、大まかなアドバイスでもいただけたら有難いです・・
よろしくお願いします。
286デフォルトの名無しさん (ワッチョイ d3e9-tjON)
2018/07/26(木) 14:21:12.96ID:YpwlC3d50 >>285
結局APIをAPIの仕様に沿って叩くだけなんだから
言語なんか別に何でもいい
SeesaaのAPIはXML-RPC互換らしいが
XML-RPCを採用しているPHP製CMSで有名なのはWordPress
だから情報は豊富にあるかと
結局APIをAPIの仕様に沿って叩くだけなんだから
言語なんか別に何でもいい
SeesaaのAPIはXML-RPC互換らしいが
XML-RPCを採用しているPHP製CMSで有名なのはWordPress
だから情報は豊富にあるかと
287デフォルトの名無しさん (ワッチョイ f2ab-53i4)
2018/07/26(木) 14:36:09.87ID:kn/Cla8U0 >>286
有難うございます。なるほど、そういう事ですか…。
確かにWordPressのそういう解説はある程度あると思われますし、
まずそこを自分も作って、それをシーサー向きにカスタマイズ、
という方向にもっていってみるのが得策ですかね。
プログラム等々色々しっかり理解できていないので
例えば、テストのワードプレスに投稿がうまくいっても
それをシーサーに対応させる、その箇所でいかにも自分はつまずきそうですが…
やってみようと思います!ありがとうございました!
有難うございます。なるほど、そういう事ですか…。
確かにWordPressのそういう解説はある程度あると思われますし、
まずそこを自分も作って、それをシーサー向きにカスタマイズ、
という方向にもっていってみるのが得策ですかね。
プログラム等々色々しっかり理解できていないので
例えば、テストのワードプレスに投稿がうまくいっても
それをシーサーに対応させる、その箇所でいかにも自分はつまずきそうですが…
やってみようと思います!ありがとうございました!
288デフォルトの名無しさん (ワッチョイ d68a-tjON)
2018/07/26(木) 19:50:32.44ID:3rgn08oe0 formからfileタイプでファイルを送信するとき、一緒にカスタムデータも渡したいんですが
phpでカスタムデータを取得するにはどうすればいいんでしょうか
phpでカスタムデータを取得するにはどうすればいいんでしょうか
289デフォルトの名無しさん (ワッチョイ 1ed5-Q2wQ)
2018/07/26(木) 20:08:56.19ID:scJUypQr0 カスタムデータってなに
290デフォルトの名無しさん (オイコラミネオ MM33-QTTq)
2018/07/26(木) 23:45:01.90ID:IPVWqDZwM ほんと質問の意味が全く分からんなw
291デフォルトの名無しさん (アウアウイー Sa87-Gcp3)
2018/07/27(金) 01:47:39.64ID:Cv6I99asa カスタムデータはバックエンドやのうてフロントエンドで使うもんや
292デフォルトの名無しさん (ワッチョイ 92d2-YcwS)
2018/07/27(金) 04:29:13.10ID:2LlMOc7f0 javascript じゃないの?
MDNとにらめっこするよろしー
https://developer.mozilla.org/ja/docs/Web/API/File/Using_files_from_web_applications
MDNとにらめっこするよろしー
https://developer.mozilla.org/ja/docs/Web/API/File/Using_files_from_web_applications
293デフォルトの名無しさん (ワッチョイ 16b8-/DSX)
2018/07/28(土) 03:40:13.45ID:zAnhzC560 html5の属性にdata-がつくってやつ?
submitを動作のない通常のbuttonにしてjsでsubmitするようにして
submitの前にjsでdata-要素を探して中身を
hiddenフィールドに追加する処理書けば渡せる
onsubmit時にやってもいいけどjavascriptオフだと想定したデータを受け取れない
buttonにしてjsでsubmitすればjavascriptオフだとsubmit自体ができなくなるが
そっちのほうが開発者には都合がいい
submitを動作のない通常のbuttonにしてjsでsubmitするようにして
submitの前にjsでdata-要素を探して中身を
hiddenフィールドに追加する処理書けば渡せる
onsubmit時にやってもいいけどjavascriptオフだと想定したデータを受け取れない
buttonにしてjsでsubmitすればjavascriptオフだとsubmit自体ができなくなるが
そっちのほうが開発者には都合がいい
294デフォルトの名無しさん (ワッチョイ 92d2-YcwS)
2018/07/28(土) 19:53:18.72ID:lnl3z2ED0 スレチ
295デフォルトの名無しさん (ワッチョイ 16b8-/DSX)
2018/07/28(土) 21:32:05.50ID:zAnhzC560 スレチちゃうやろー
296デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/07/28(土) 21:36:21.75ID:aLrZyGnX0 質問内容がPHPに関してではないし
回答もjavascriptを使用してと言うことだし
Web製作板なら全般に渡って質疑しても良いけど
プログラム板に設置したPHPスレとしては
ちょっと違う感じを否めない
回答もjavascriptを使用してと言うことだし
Web製作板なら全般に渡って質疑しても良いけど
プログラム板に設置したPHPスレとしては
ちょっと違う感じを否めない
297デフォルトの名無しさん (ワッチョイ 16b8-/DSX)
2018/07/28(土) 22:21:44.16ID:zAnhzC560 webprogのほうは手取り足取りしてほしけりゃこっちこいって
初心者こっちに丸投げしてんだよな
だから多少ズレててもしょうがない
初心者こっちに丸投げしてんだよな
だから多少ズレててもしょうがない
298デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/07/28(土) 22:36:05.72ID:aLrZyGnX0 難民受け入れる?
嫌がる人がいないなら、自分は反対はしない
嫌がる人がいないなら、自分は反対はしない
299デフォルトの名無しさん (アウアウイー Sa87-Gcp3)
2018/07/29(日) 00:42:21.80ID:5d6XvWgua 開発者都合を優先する愚か者がいると聞きまして
300デフォルトの名無しさん (ワッチョイ 16b8-/DSX)
2018/07/29(日) 09:07:26.00ID:6Xs8CgHh0 今どきレガシーIE使ってるのとJavaScript使えない環境なんて考慮する必要ある?
そういう人たちの考えを改めさせるためにも甘やかしてはだめだ
あと広告ブロッカーなど入れてる人間にはおかえりいただくのだ
そういう人たちの考えを改めさせるためにも甘やかしてはだめだ
あと広告ブロッカーなど入れてる人間にはおかえりいただくのだ
301デフォルトの名無しさん (ワッチョイ 1222-Hl5m)
2018/07/31(火) 22:09:39.35ID:jEXf5efo0 IE11は新機能も追加されないのに
2025年10月までサポート続く
頭の固い奴がいつまでも使い続けそう
2025年10月までサポート続く
頭の固い奴がいつまでも使い続けそう
302デフォルトの名無しさん (アウアウイー Sa87-Gcp3)
2018/08/01(水) 00:53:10.63ID:BvwC4qZXa そのレベルまで言うならサーバサイド使う必要性あるか?
303デフォルトの名無しさん (ワッチョイ 16b8-/DSX)
2018/08/01(水) 07:58:48.60ID:Vw19BKKS0304デフォルトの名無しさん (アウアウイー Sa87-Gcp3)
2018/08/01(水) 14:08:02.83ID:/ct8Nmlma JS書けないオジサンだな
305デフォルトの名無しさん (ワッチョイ d3e9-tjON)
2018/08/01(水) 17:38:42.26ID:bHIdHVss0 うむ
306デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/08/01(水) 17:48:51.49ID:a1G0tkY30 オジサンだとPHPも難しいと思う
307デフォルトの名無しさん (ワッチョイ 2346-gKJj)
2018/08/01(水) 18:05:25.96ID:zQceqn770 cakePHP3を使ってます。
mysqlに保存する場合、メールアドレスも暗号化した上で保存したほうがいいの?
mysqlに保存する場合、メールアドレスも暗号化した上で保存したほうがいいの?
308デフォルトの名無しさん (ワッチョイ d3e9-tjON)
2018/08/01(水) 18:07:30.41ID:bHIdHVss0 CakePHPの名前を出す意味が分からんが
動かす環境や設計思想によるとしか
動かす環境や設計思想によるとしか
309デフォルトの名無しさん (アウアウウー Sa43-53i4)
2018/08/01(水) 21:49:19.72ID:leTOpWGGa curl_setoptをphp.iniの中で設定したいのですが、そんなこと出来ますか?
310デフォルトの名無しさん (アウアウウー Sa43-53i4)
2018/08/01(水) 23:56:12.68ID:leTOpWGGa curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'ecdhe_ecdsa_aes_256_sha');
と同じ設定をiniファイルで設定できるかと
curl.ssl_cipher_list="ecdhe_ecdsa_aes_256_sha"
とcurl.iniに書いてみましたが、うまくいきませんでした
iniファイルで設定するのはやはり無理なのでしょうか?
と同じ設定をiniファイルで設定できるかと
curl.ssl_cipher_list="ecdhe_ecdsa_aes_256_sha"
とcurl.iniに書いてみましたが、うまくいきませんでした
iniファイルで設定するのはやはり無理なのでしょうか?
311デフォルトの名無しさん (アウアウイー Sac7-DU3o)
2018/08/02(木) 00:00:30.23ID:YVITecbMa curl使うタイミングで関数使ってやってください
312デフォルトの名無しさん (アウアウウー Saa7-Xflc)
2018/08/02(木) 00:10:24.86ID:ZUaPNP+za そうですか
VPSで動かしているTinyTinyRSSで、HTTPSのスクレイピング時にエラーが出ていて
CURLOPT_SSL_CIPHER_LISTを設定すればいいということまでは分かったのですが
コードを書き換えたとしてもアップデートで上書きされてしまう可能性があるので
設定ファイルでデフォルト値を設定できないかと思ったのですが、残念です・・
ありがとうございました
VPSで動かしているTinyTinyRSSで、HTTPSのスクレイピング時にエラーが出ていて
CURLOPT_SSL_CIPHER_LISTを設定すればいいということまでは分かったのですが
コードを書き換えたとしてもアップデートで上書きされてしまう可能性があるので
設定ファイルでデフォルト値を設定できないかと思ったのですが、残念です・・
ありがとうございました
313デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/02(木) 00:37:20.93ID:xZR22mJ60 >>310
自前のiniファイルを適当に用意し、parse_ini_file関数で読み込む
自前のiniファイルを適当に用意し、parse_ini_file関数で読み込む
314デフォルトの名無しさん (アウアウウー Saa7-lVen)
2018/08/02(木) 02:01:14.88ID:ZUaPNP+za それだとcurl呼び出し部分のコードを結局書き換えないとですよね?
設定ファイルで設定したいと言ったのは
コードに手を加えずに挙動を変えたいという意味でした
目的じゃなくて手段です
設定ファイルで設定したいと言ったのは
コードに手を加えずに挙動を変えたいという意味でした
目的じゃなくて手段です
315デフォルトの名無しさん (ワッチョイ a35d-Xflc)
2018/08/02(木) 11:54:14.81ID:G7lRGrKt0316デフォルトの名無しさん (ワッチョイ a35d-Xflc)
2018/08/02(木) 11:56:18.56ID:G7lRGrKt0 infoじゃねぇや curl -v だわ
317デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/02(木) 12:20:37.41ID:VtR7nk5s0318デフォルトの名無しさん (ワッチョイ f39d-Eno9)
2018/08/02(木) 14:47:11.29ID:mV4uuTxi0 curl直接使うよりguzzle通じて使った方が良いよね?
よっぽどシンプルなプログラムとかでも無い限り
AWS SDK for PHPでも内部で使ってた
よっぽどシンプルなプログラムとかでも無い限り
AWS SDK for PHPでも内部で使ってた
319デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/02(木) 15:22:19.78ID:VtR7nk5s0 手続き型の書き方しかできないcURL関数群をラッピングして
オブジェクト指向型のインターフェースを提供するライブラリは色々とあるから
実用的にはそっち使った方がいい(もちろん今ならguzzleが第一選択肢)
車輪の再発明をする必要はないが
guzzleみたいにガッツリじゃなくて
cURLのうすーいラッパークラスを作っとくと
ちゃちゃっと何かしたい時に便利ではある
オブジェクト指向型のインターフェースを提供するライブラリは色々とあるから
実用的にはそっち使った方がいい(もちろん今ならguzzleが第一選択肢)
車輪の再発明をする必要はないが
guzzleみたいにガッツリじゃなくて
cURLのうすーいラッパークラスを作っとくと
ちゃちゃっと何かしたい時に便利ではある
320デフォルトの名無しさん (ワッチョイ a35d-Xflc)
2018/08/02(木) 15:39:52.12ID:G7lRGrKt0321デフォルトの名無しさん (スププ Sd1f-9bbN)
2018/08/02(木) 15:46:53.52ID:qudvT6qVd TinyTinyRSSの中でguzzleを使った方がいいよねなんて話は誰もしてないかと
322デフォルトの名無しさん (ワッチョイ 635b-0PbX)
2018/08/02(木) 16:04:41.08ID:j3ZbymyT0323デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/02(木) 16:20:05.83ID:VtR7nk5s0 >>322
例えば、http://example.com/の出力結果を取りたいってだけなら
file_get_contents('http://example.com/');
だけでいいけど、もう少しだけ色々としたい時
例えば、POSTメソッドで「hage=fuge」を投げつつ
ユーザーエージェント「Mona」、リファラ「http://2ch.net/」にした時の
http://example.com/のステータスコードを取りたいなんて時
$status = Curl_Wrapper::getInstance()
->requestPost('hage', 'fuge')
->setUserAgent('Mona')
->setReferer('http://2ch.net/')
->getStatusCode('http://example.com/');
こんな風に書けるクラスを用意しとくと気持ちいいってだけの話
大した話じゃないから意味不明ならスルーでw
>>321
うん
例えば、http://example.com/の出力結果を取りたいってだけなら
file_get_contents('http://example.com/');
だけでいいけど、もう少しだけ色々としたい時
例えば、POSTメソッドで「hage=fuge」を投げつつ
ユーザーエージェント「Mona」、リファラ「http://2ch.net/」にした時の
http://example.com/のステータスコードを取りたいなんて時
$status = Curl_Wrapper::getInstance()
->requestPost('hage', 'fuge')
->setUserAgent('Mona')
->setReferer('http://2ch.net/')
->getStatusCode('http://example.com/');
こんな風に書けるクラスを用意しとくと気持ちいいってだけの話
大した話じゃないから意味不明ならスルーでw
>>321
うん
324デフォルトの名無しさん (ワッチョイ 635b-0PbX)
2018/08/02(木) 16:38:35.04ID:j3ZbymyT0 >>323
なるほど
やりたい事を書いた文章がそのままPHPのソースになってる感じですごく分かりやすい
->setUserAgent('Mona')
->setReferer('http://2ch.net/')
こういう書き方ははじめて見た
;のつけ忘れではないよね?
なるほど
やりたい事を書いた文章がそのままPHPのソースになってる感じですごく分かりやすい
->setUserAgent('Mona')
->setReferer('http://2ch.net/')
こういう書き方ははじめて見た
;のつけ忘れではないよね?
325デフォルトの名無しさん (ワッチョイ a35d-Xflc)
2018/08/02(木) 16:40:40.32ID:G7lRGrKt0326デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/02(木) 16:52:37.54ID:VtR7nk5s0 >>324
$curl = new Curl_Wrapper;
$curl->setUserAgent();
$curl->setReferer();
$status = $curl->getStatusCode();
普通はこう書くけど面倒くさいから
Curl_Wrapperクラス内のメソッド(setUserAgentやsetReferer)で
Curl_Wrapper自身のインスタンス(PHPなら$this)をreturnする
そのメソッドを鎖のように繋ぐから「メソッドチェーン」って呼ばれる
「PHP メソッドチェーン」とかでググってみるといい
上手く使えばすっきり書けるけどデメリットもあるのでケース・バイ・ケースで
$curl = new Curl_Wrapper;
$curl->setUserAgent();
$curl->setReferer();
$status = $curl->getStatusCode();
普通はこう書くけど面倒くさいから
Curl_Wrapperクラス内のメソッド(setUserAgentやsetReferer)で
Curl_Wrapper自身のインスタンス(PHPなら$this)をreturnする
そのメソッドを鎖のように繋ぐから「メソッドチェーン」って呼ばれる
「PHP メソッドチェーン」とかでググってみるといい
上手く使えばすっきり書けるけどデメリットもあるのでケース・バイ・ケースで
327デフォルトの名無しさん (ワッチョイ 635b-0PbX)
2018/08/02(木) 17:07:33.04ID:j3ZbymyT0328デフォルトの名無しさん (ワッチョイ cf8a-9e/1)
2018/08/05(日) 11:19:39.90ID:EoLQ53rz0 質問です
/aaa.php
/bbb.php
/ccc.php
/ddd.php
... ばらばらに作って使うのと
/xxx.php?aaa
/xxx.php?bbb
/xxx.php?ccc
/xxx.php?ddd
... 一枚にまとめて使うのと
どっちがパフォーマンスいいでしょうか?
よろしくお願いします
/aaa.php
/bbb.php
/ccc.php
/ddd.php
... ばらばらに作って使うのと
/xxx.php?aaa
/xxx.php?bbb
/xxx.php?ccc
/xxx.php?ddd
... 一枚にまとめて使うのと
どっちがパフォーマンスいいでしょうか?
よろしくお願いします
329デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/05(日) 11:27:52.65ID:ekimy5CU0 まとめても数百行程度なら、性能上は変わらないと思うが
メンテナンスする上では、機能別に分けて置く方が楽かも
メンテナンスする上では、機能別に分けて置く方が楽かも
330デフォルトの名無しさん (ワッチョイ a35d-Xflc)
2018/08/05(日) 11:31:24.74ID:gTgyUF8y0 実体は別ファイルにしてエントリポイントからrouterで振り分ける
331デフォルトの名無しさん (ワッチョイ 6fd5-IwSV)
2018/08/05(日) 13:40:30.63ID:Klpi4erd0 バラした方が各スクリプトのサイズが小さいなら、物理的な読み取りとパースの分速くはなるんじゃね。
でもそんな細かいことよりメンテ性のいい方を選んだ方がいいんじゃないかな。
でもそんな細かいことよりメンテ性のいい方を選んだ方がいいんじゃないかな。
332デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 10:30:49.64ID:933yDlcJ0 >>328
よく100万回ループ回した時の実行速度の差を比較したりする人がいるけど
ハッキリいってやるだけ時間の無駄
そんな事を気にするならそもそもPHPなんか使わない方がいい
webアプリのボトルネックというのは
大抵はDB周りだったりするわけで
そのボトルネックを正確に計測し解決する手段を身につける事が遥かに大事
というかそんな事を気にしてるって時点で
何かしらのフレームワークは使ってないんだろうけど
なぜ使わないの?
よく100万回ループ回した時の実行速度の差を比較したりする人がいるけど
ハッキリいってやるだけ時間の無駄
そんな事を気にするならそもそもPHPなんか使わない方がいい
webアプリのボトルネックというのは
大抵はDB周りだったりするわけで
そのボトルネックを正確に計測し解決する手段を身につける事が遥かに大事
というかそんな事を気にしてるって時点で
何かしらのフレームワークは使ってないんだろうけど
なぜ使わないの?
333デフォルトの名無しさん (ワッチョイ cf8a-9e/1)
2018/08/06(月) 11:23:57.83ID:zcUvwpke0334デフォルトの名無しさん (ワッチョイ 6fd5-IwSV)
2018/08/06(月) 12:20:51.12ID:ng9YxNhi0 PHPに関してフレームワーク使って良かったと思える場面て正直ほとんど無いな。
PHP自体がごった煮状態にしてまでいろいろできるようにしてある中で、フレームワークで実現しようとしている目標がいまいちわからん。
生産性にも得してるように思えないどころか、フレームワーク自体のメンテがだるい。
まあそれほどフレームワーク使ったわけでもなく、古くはSmarty、ちょっと前はCakePHP使ったくらいで、それも他所のベンダが作ったのを引き継いだくらいだから偏見に満ちてる可能性はある。
PHP自体がごった煮状態にしてまでいろいろできるようにしてある中で、フレームワークで実現しようとしている目標がいまいちわからん。
生産性にも得してるように思えないどころか、フレームワーク自体のメンテがだるい。
まあそれほどフレームワーク使ったわけでもなく、古くはSmarty、ちょっと前はCakePHP使ったくらいで、それも他所のベンダが作ったのを引き継いだくらいだから偏見に満ちてる可能性はある。
335デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 12:22:54.58ID:933yDlcJ0 >>333
そか
フレームワークに頼らずに作るのも
DBに頼らずテキストベースで読み書きするのも
とても良い経験にはなるから頑張って
ただ○万回ループした時の実行時間の差を気にするなんてのは
本当にただの無駄でしかないから
コードの見通しの良さとか管理のしやすさとか
そっちを最優先で
root.php?mode=aaa ⇒ mode/aaa.phpを読む
root.php?mode=bbb ⇒ mode/bbb.phpを読む
root.php?mode=ccc ⇒ mode/ccc.phpを読む
なんて作り方もある
今これがベストだと思って設計しても
どうせ1年後にはもっと良い設計が閃くさ
だから色々と試してみるといい
そか
フレームワークに頼らずに作るのも
DBに頼らずテキストベースで読み書きするのも
とても良い経験にはなるから頑張って
ただ○万回ループした時の実行時間の差を気にするなんてのは
本当にただの無駄でしかないから
コードの見通しの良さとか管理のしやすさとか
そっちを最優先で
root.php?mode=aaa ⇒ mode/aaa.phpを読む
root.php?mode=bbb ⇒ mode/bbb.phpを読む
root.php?mode=ccc ⇒ mode/ccc.phpを読む
なんて作り方もある
今これがベストだと思って設計しても
どうせ1年後にはもっと良い設計が閃くさ
だから色々と試してみるといい
336デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 12:33:44.81ID:933yDlcJ0 >>334
大規模開発をした経験がないとそうなるかもね
PHPはとてもいい加減な言語なんで
”正しく”書くにはかなりの知識と経験が必要
ネット上のPHPコードの多くが糞なのを見てもよく分かる
だから特定の規則さえ覚えれば”正しく”書ける
フレームワークってのは大規模開発では必須になる
あとは生産性の問題やね
スクリプト言語なんてものはいかに短時間で簡単にものを生産するかが鍵なので
個人開発であっても何かしらのフレームワークは使え
ってのが俺の意見
俺々マイクロフレームワークでもいいからさ
大規模開発をした経験がないとそうなるかもね
PHPはとてもいい加減な言語なんで
”正しく”書くにはかなりの知識と経験が必要
ネット上のPHPコードの多くが糞なのを見てもよく分かる
だから特定の規則さえ覚えれば”正しく”書ける
フレームワークってのは大規模開発では必須になる
あとは生産性の問題やね
スクリプト言語なんてものはいかに短時間で簡単にものを生産するかが鍵なので
個人開発であっても何かしらのフレームワークは使え
ってのが俺の意見
俺々マイクロフレームワークでもいいからさ
337デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/06(月) 12:38:09.33ID:Xt7Beabr0 フレームワークの選択を誤ると、
数年後「まだそんなの使っているのか!」
ってエラーが頻発して苦労する
数年後「まだそんなの使っているのか!」
ってエラーが頻発して苦労する
338デフォルトの名無しさん (スププ Sd1f-j3zu)
2018/08/06(月) 12:48:26.08ID:UALza30Cd ネット上のソースのカオスさはPHPとJavaScriptが抜きん出てるよな
本ですら平気で間違った事を書いてるから
初心者ならこれを読めって本がなかなかない
if ($_POST['foo'] == 'var')
こんなコードを見ると目眩がする
>>337
それはあるな
ただ今はLaravel使っとけば間違いはないんじゃないかと
本ですら平気で間違った事を書いてるから
初心者ならこれを読めって本がなかなかない
if ($_POST['foo'] == 'var')
こんなコードを見ると目眩がする
>>337
それはあるな
ただ今はLaravel使っとけば間違いはないんじゃないかと
339デフォルトの名無しさん (ワッチョイ 6fd5-IwSV)
2018/08/06(月) 12:48:56.87ID:ng9YxNhi0 >>336
フレームワークを使うにしても、それをどう使うかは結局設計して周知しないといけないわけで、その手間ってフレームワーク使わない場合とそう変わらなくない?
むしろフレームワークが足かせになってそこから外れる部分をトリッキーに遠回りに書くことになったりのデメリットの方が目についてくる感じだ。
工数削減は俺々ライブラリでやれるし、それを周知する手間も前述の周知に比べて多大なわけでもなく、必要ならライブラリを好き勝手に育てられるから、むしろ身軽で早いと思うがな。
この辺はとりわけ既にいろいろお膳立てされてるPHPならではというか。
大規模開発だとどんなメリットが効いてくると考えてるかについては興味あるけどね。
フレームワークを使うにしても、それをどう使うかは結局設計して周知しないといけないわけで、その手間ってフレームワーク使わない場合とそう変わらなくない?
むしろフレームワークが足かせになってそこから外れる部分をトリッキーに遠回りに書くことになったりのデメリットの方が目についてくる感じだ。
工数削減は俺々ライブラリでやれるし、それを周知する手間も前述の周知に比べて多大なわけでもなく、必要ならライブラリを好き勝手に育てられるから、むしろ身軽で早いと思うがな。
この辺はとりわけ既にいろいろお膳立てされてるPHPならではというか。
大規模開発だとどんなメリットが効いてくると考えてるかについては興味あるけどね。
340デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 13:00:50.54ID:933yDlcJ0 >>338
フレームワークを使わずに
リクエストパラメータを変数に入れて比較してみましょう
って超初歩的な事でも
$foo = (string) filter_input(INPUT_POST, 'foo');
if ($foo === 'var') {}
と正しく書けてる本が何冊あることやら…
$foo = (isset($_POST['foo'])) ? $_POST['foo'] : NULL;
と書けてたらまだマシで酷いのになると
$foo = $_POST['foo'];
だからPHPはヤバすぎる…
フレームワークを使わずに
リクエストパラメータを変数に入れて比較してみましょう
って超初歩的な事でも
$foo = (string) filter_input(INPUT_POST, 'foo');
if ($foo === 'var') {}
と正しく書けてる本が何冊あることやら…
$foo = (isset($_POST['foo'])) ? $_POST['foo'] : NULL;
と書けてたらまだマシで酷いのになると
$foo = $_POST['foo'];
だからPHPはヤバすぎる…
341デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/06(月) 13:13:28.36ID:Xt7Beabr0 PHPがヤバいのではなく、使う奴がいい加減なだけだろう
きちんと書ける奴は、何使っても大丈夫
きちんと書ける奴は、何使っても大丈夫
342デフォルトの名無しさん (スププ Sd1f-j3zu)
2018/08/06(月) 13:19:55.19ID:UALza30Cd フレームワークの重要性が理解できない内は3流以下と自覚すべき
php以外の言語を書けない人に多い
php以外の言語を書けない人に多い
343デフォルトの名無しさん (ワッチョイ 6fd5-IwSV)
2018/08/06(月) 13:21:13.75ID:ng9YxNhi0 >>340
強制的に string でキャストして情報落とすのが正しいと言われてもなって感じだし、
$foo = $_POST['foo']; がダメというのもそんなの条件次第だろって気もするし、
大事なのは画一的な書き方じゃなくてやり方を適切に選べることなんじゃないの?
強制的に string でキャストして情報落とすのが正しいと言われてもなって感じだし、
$foo = $_POST['foo']; がダメというのもそんなの条件次第だろって気もするし、
大事なのは画一的な書き方じゃなくてやり方を適切に選べることなんじゃないの?
344デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/06(月) 13:28:14.07ID:Xt7Beabr0 オレはこんな感じで書いてるな
$foo = "";
if (array_key_exists('foo', $_POST)){
$foo = $_POST['foo'];
}
$foo = "";
if (array_key_exists('foo', $_POST)){
$foo = $_POST['foo'];
}
345デフォルトの名無しさん (ワッチョイ 6fd5-IwSV)
2018/08/06(月) 13:33:40.11ID:ng9YxNhi0 >>344
そのケースなら isset 使ってる。
100万回ループのパフォーマンスなんて気にするなという話の後で言うのもアレだけど、isset の方が速いし短いから。
多重配列の時もそのまま書けるし。
そのケースなら isset 使ってる。
100万回ループのパフォーマンスなんて気にするなという話の後で言うのもアレだけど、isset の方が速いし短いから。
多重配列の時もそのまま書けるし。
346デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 13:37:32.22ID:933yDlcJ0347デフォルトの名無しさん (スププ Sd1f-j3zu)
2018/08/06(月) 13:50:50.84ID:UALza30Cd >>346も書いてるが
?foo[]=1&foo[][]=2&foo[][][]=3
の時の$_GETの中身を見れば$fooがスカラー型になると決めつけていたらだめだと分かるはず
頭の良い人がせっかくフレームワークってのを作ってくれてるんだから我々凡人はそっち使えばいい
だからPHPerって馬鹿にされんだよw
?foo[]=1&foo[][]=2&foo[][][]=3
の時の$_GETの中身を見れば$fooがスカラー型になると決めつけていたらだめだと分かるはず
頭の良い人がせっかくフレームワークってのを作ってくれてるんだから我々凡人はそっち使えばいい
だからPHPerって馬鹿にされんだよw
348デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 14:07:27.66ID:933yDlcJ0 >>347
応用パターンとしては
<input type="checkbox" name="foo[]" value="1">
<input type="checkbox" name="foo[]" value="2">
<input type="checkbox" name="foo[]" value="3">
というフォームがあった時に
$_GET['foo']が一次元配列になると決めつけてしまってるケース
$_GET['foo']がスカラー型にも二次元にも三次元にもなる可能性を考慮してないから
バリデーションなんかでエラーをだす残念コードがネット上にはたくさん転がってる
そういうのを初心者が真似してしまうのが問題なんだよね
応用パターンとしては
<input type="checkbox" name="foo[]" value="1">
<input type="checkbox" name="foo[]" value="2">
<input type="checkbox" name="foo[]" value="3">
というフォームがあった時に
$_GET['foo']が一次元配列になると決めつけてしまってるケース
$_GET['foo']がスカラー型にも二次元にも三次元にもなる可能性を考慮してないから
バリデーションなんかでエラーをだす残念コードがネット上にはたくさん転がってる
そういうのを初心者が真似してしまうのが問題なんだよね
349デフォルトの名無しさん (ワッチョイ 635b-0PbX)
2018/08/06(月) 14:19:09.94ID:Hk1kxuZq0 filter_inputというものをはじめて知った(´・ω・`)
issetでチェックしなさいというのは最近覚えたけどこっちの方が短く書けるね
勉強になるなあ
issetでチェックしなさいというのは最近覚えたけどこっちの方が短く書けるね
勉強になるなあ
350デフォルトの名無しさん (ワッチョイ 6fd5-IwSV)
2018/08/06(月) 14:21:43.09ID:ng9YxNhi0 >>346
最後については同意。
ただ細かい話、キャストの件は filter_input のオプション無しなら配列は取得されないんじゃないかと。
元々値があったのかどうかの判定が出来なくなるのもまた問題じゃないかね。
だからフレームワークにやってもらえばいいじゃんという立場だとは思うけどさ。
>>347
その程度のバリデーションライブラリも書けない凡人のために(ありものの)フレームワークがあるということであれば、やはりあまり縁の無い話かなと思えてくる。
隣のコンビニになら歩いて行けばいいのに、なぜ車を用意してナビまでセットする?みたいな。
フレームワークってのは、端的に言えば誰が書いても同じ書き方になる仕組みで細かいこと周知しなくてもそうなるから多人数で書いても認識が共有できる、という思想なのかと思ってたよ。
思想通りに実現されるならよさそうだが、現実はそうでもないなって感じてるけど。
PHPみたいにWebに特化してない他の言語なんかは、イチからやるよりはフレームワーク使うのが現実的だと思うし、
PHPでも俺々マイクロフレームワークの話であればその実態は必要ライブラリと雛型くらいのものだろうから、そういうのに異論は無いけどね。
最後については同意。
ただ細かい話、キャストの件は filter_input のオプション無しなら配列は取得されないんじゃないかと。
元々値があったのかどうかの判定が出来なくなるのもまた問題じゃないかね。
だからフレームワークにやってもらえばいいじゃんという立場だとは思うけどさ。
>>347
その程度のバリデーションライブラリも書けない凡人のために(ありものの)フレームワークがあるということであれば、やはりあまり縁の無い話かなと思えてくる。
隣のコンビニになら歩いて行けばいいのに、なぜ車を用意してナビまでセットする?みたいな。
フレームワークってのは、端的に言えば誰が書いても同じ書き方になる仕組みで細かいこと周知しなくてもそうなるから多人数で書いても認識が共有できる、という思想なのかと思ってたよ。
思想通りに実現されるならよさそうだが、現実はそうでもないなって感じてるけど。
PHPみたいにWebに特化してない他の言語なんかは、イチからやるよりはフレームワーク使うのが現実的だと思うし、
PHPでも俺々マイクロフレームワークの話であればその実態は必要ライブラリと雛型くらいのものだろうから、そういうのに異論は無いけどね。
351デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 14:46:52.11ID:933yDlcJ0 >>349
Filter関数は意外と浸透してないっぽい
$foo = filter_input(INPUT_POST, 'foo');
は
$foo = (isset($_POST['foo']) && is_string($_POST['foo'])) ? $_POST['foo'] : false;
と書くのとほぼ同じ意味になる
上の方が楽だよね
Filter関数は意外と浸透してないっぽい
$foo = filter_input(INPUT_POST, 'foo');
は
$foo = (isset($_POST['foo']) && is_string($_POST['foo'])) ? $_POST['foo'] : false;
と書くのとほぼ同じ意味になる
上の方が楽だよね
352デフォルトの名無しさん (ワッチョイ 635b-0PbX)
2018/08/06(月) 15:06:29.57ID:Hk1kxuZq0 >>351
下の?を使う書き方が苦手なんよね
頭がわるいからこう書かないと理解できない(´・ω・`)
if(isset($_POST['foo'])){
$foo = $_POST['foo'];
}else{
$foo = false;
}
下の?を使う書き方が苦手なんよね
頭がわるいからこう書かないと理解できない(´・ω・`)
if(isset($_POST['foo'])){
$foo = $_POST['foo'];
}else{
$foo = false;
}
353デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 15:40:31.71ID:933yDlcJ0 >>352
PHP7からはもっと短く
$foo = $_POST['foo'] ?? false;
と書けたりもする
三項演算子は別に無理して使わなくていいけど
他の言語を経験してると$fooを初期化せずに
if (isset($_POST['foo'])) {
$foo = $_POST['foo'];
} else {
$foo = false;
}
と$fooをif〜elseの中に入れてしまうのはとても気持ち悪い
三項演算子を使わないなら自分はこう書くかな
$foo = false;
if (isset($_POST['foo'])) {
$foo = $_POST['foo'];
}
細かい話なのであまり気にしないくてOK
PHP7からはもっと短く
$foo = $_POST['foo'] ?? false;
と書けたりもする
三項演算子は別に無理して使わなくていいけど
他の言語を経験してると$fooを初期化せずに
if (isset($_POST['foo'])) {
$foo = $_POST['foo'];
} else {
$foo = false;
}
と$fooをif〜elseの中に入れてしまうのはとても気持ち悪い
三項演算子を使わないなら自分はこう書くかな
$foo = false;
if (isset($_POST['foo'])) {
$foo = $_POST['foo'];
}
細かい話なのであまり気にしないくてOK
354デフォルトの名無しさん (ワッチョイ 635b-0PbX)
2018/08/06(月) 15:58:25.55ID:Hk1kxuZq0 ifとelseの中に書くのはあまりよくないのか(´・ω・`)
全部こうやって書いてた。。。
理由が理解できないあほですまんけど次からはfilter_inputを使うから許して
全部こうやって書いてた。。。
理由が理解できないあほですまんけど次からはfilter_inputを使うから許して
355デフォルトの名無しさん (スププ Sd1f-j3zu)
2018/08/06(月) 16:05:18.97ID:UALza30Cd if (条件A) {
$foo = 'a';
} elseif (条件B) {
$foo = 'b';
}
var_dump($foo);
条件AもBも満たさなかった時にエラーになるわな
まずはvar_dumpが参照できるレベルで$fooを定義して必ず参照できることを保証しろってこと
phpしか書けないPHPerだとelseを書けばいいだろと思うかもしれんがそうじゃないそうじゃないんだ
$foo = 'a';
} elseif (条件B) {
$foo = 'b';
}
var_dump($foo);
条件AもBも満たさなかった時にエラーになるわな
まずはvar_dumpが参照できるレベルで$fooを定義して必ず参照できることを保証しろってこと
phpしか書けないPHPerだとelseを書けばいいだろと思うかもしれんがそうじゃないそうじゃないんだ
356デフォルトの名無しさん (ワッチョイ 635b-0PbX)
2018/08/06(月) 16:29:32.52ID:Hk1kxuZq0 >>355
$test = "c";
if ($test == "a") {
$foo = 'a';
} elseif ($test == "b") {
$foo = 'b';
}
var_dump($foo);
エラーはでずにNULLと出るんだが。。何か間違ってる?
$test = "c";
if ($test == "a") {
$foo = 'a';
} elseif ($test == "b") {
$foo = 'b';
}
var_dump($foo);
エラーはでずにNULLと出るんだが。。何か間違ってる?
357デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 16:39:22.00ID:933yDlcJ0 >>356
<?php
の次の行に
error_reporting(-1);
ini_set('display_errors', 1);
を書こう。大雑把にいうとエラーを全部出力するって意味になる
Notice: Undefined variable: foo($fooっていう変数が定義されてない)
ってエラーが出力されるはず
あと条件式は
($test == "a") じゃなくて
($test === "a") と「=」3つ使って比較しよう
理由は「PHP 型 比較」とかで適当にググって
<?php
の次の行に
error_reporting(-1);
ini_set('display_errors', 1);
を書こう。大雑把にいうとエラーを全部出力するって意味になる
Notice: Undefined variable: foo($fooっていう変数が定義されてない)
ってエラーが出力されるはず
あと条件式は
($test == "a") じゃなくて
($test === "a") と「=」3つ使って比較しよう
理由は「PHP 型 比較」とかで適当にググって
358デフォルトの名無しさん (スププ Sd1f-j3zu)
2018/08/06(月) 17:11:21.74ID:UALza30Cd >>356
エラーレベルってのがあってデフォの設定だとnoticeレベルのエラーとかは出ないようになってる
http://php.net/manual/ja/errorfunc.configuration.php#ini.error-reporting
undefineってのは未定義ってエラーなんで消したいなら最初に
$foo = null; なり $foo = ""; なりまずは$fooを定義(define)しろって事
エラーレベルってのがあってデフォの設定だとnoticeレベルのエラーとかは出ないようになってる
http://php.net/manual/ja/errorfunc.configuration.php#ini.error-reporting
undefineってのは未定義ってエラーなんで消したいなら最初に
$foo = null; なり $foo = ""; なりまずは$fooを定義(define)しろって事
359デフォルトの名無しさん (ワッチョイ 635b-0PbX)
2018/08/06(月) 17:25:08.30ID:Hk1kxuZq0 エラーが出たし理由もなんとなく分かったよ サンクス
でも今まで書いたやつにもエラーが出まくり 本を写しただけなのに(´・ω・`)
買う本を間違えたかな。。。初心者は何を買えばええんや。。。
でも今まで書いたやつにもエラーが出まくり 本を写しただけなのに(´・ω・`)
買う本を間違えたかな。。。初心者は何を買えばええんや。。。
360デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/06(月) 17:36:11.38ID:933yDlcJ0 >>359
エラーの設定ってのは学習時に一番最初にやるべき事で
本来はphp.ini(PHPの設定ファイル)の方へ設定すべき事なので
それについて書かれてないのならその本はハズレだろうねw
あと本を写したって書いてるけど
ソースコードを見たまままま打ち込む(写経と呼ばれる)作業は
何かしらの言語をもう少し書けるようになってからでいいと思う
(決して無駄ってわけじゃないけど)
今の段階だとソースが付録として付いてたり
ウェブからダウンロードできるようになってる方が良いんじゃないかな
具体的にこの本が良いと答えられたらいいんだけど
知らないんだ…すまない
エラーの設定ってのは学習時に一番最初にやるべき事で
本来はphp.ini(PHPの設定ファイル)の方へ設定すべき事なので
それについて書かれてないのならその本はハズレだろうねw
あと本を写したって書いてるけど
ソースコードを見たまままま打ち込む(写経と呼ばれる)作業は
何かしらの言語をもう少し書けるようになってからでいいと思う
(決して無駄ってわけじゃないけど)
今の段階だとソースが付録として付いてたり
ウェブからダウンロードできるようになってる方が良いんじゃないかな
具体的にこの本が良いと答えられたらいいんだけど
知らないんだ…すまない
361デフォルトの名無しさん (スププ Sd1f-j3zu)
2018/08/06(月) 17:42:18.16ID:UALza30Cd 最近はネットで動画を見ながら学習できるサービスが色々とあるからそういうのもいいんじゃね?
本は俺も知らん
phpのまともな本を探すのってウンコの山から金の塊を探すようなもんだ
本は俺も知らん
phpのまともな本を探すのってウンコの山から金の塊を探すようなもんだ
362デフォルトの名無しさん (ワッチョイ 8395-j3zu)
2018/08/06(月) 20:26:24.27ID:FCdiHJQQ0 未だにフレームワークを使う意味が分かんないとか言ってるのは中小零細の底辺ペチパーやろな
SQLとかを生で書いて文字列結合とかやってるんだぜきっと
LaravelあたりのモダンなFWを理解する頭もなさそう
SQLとかを生で書いて文字列結合とかやってるんだぜきっと
LaravelあたりのモダンなFWを理解する頭もなさそう
363デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/06(月) 21:01:33.08ID:Xt7Beabr0 ウンコはすぐ分かる
まずそれを踏まないようにしよう
まずそれを踏まないようにしよう
364デフォルトの名無しさん (ササクッテロレ Spc7-gWEw)
2018/08/07(火) 06:40:30.60ID:TazhAm3Np 「サーバーを書く」っていうのはどういう意味?phpで書いたプログラムをサーバーに置いて動作するようにすることも含むの?まったく違う概念?
365デフォルトの名無しさん (ワッチョイ c376-SA/8)
2018/08/07(火) 07:57:29.50ID:fqjZQqpG0 サーバーサイドプログラムを書くってことじゃないかな
基本的には動作するところまでも含むと思うが、
そんな表現使う人の気持ち次第ってところもあるかと
基本的には動作するところまでも含むと思うが、
そんな表現使う人の気持ち次第ってところもあるかと
366デフォルトの名無しさん (ワッチョイ ff7f-gWEw)
2018/08/07(火) 08:28:33.60ID:uocr6YSL0 >>365
ありがとう
ありがとう
367デフォルトの名無しさん (ワッチョイ 6f17-j3zu)
2018/08/07(火) 10:42:59.89ID:5VqtIgbz0 サーバーサイドという言葉でくくってしまうとPHPはサーバーサイドで動くものなので語弊があるが
PHPは得意とするフロントを作る以外に例えばProxyサーバとして動作するものを短い行数で書いたりもできる
サーバーを書くってのはそういうものをPHPなり他の言語なりで書く時に使う表現かと
PHPは得意とするフロントを作る以外に例えばProxyサーバとして動作するものを短い行数で書いたりもできる
サーバーを書くってのはそういうものをPHPなり他の言語なりで書く時に使う表現かと
368デフォルトの名無しさん (ワッチョイ ff7f-gWEw)
2018/08/07(火) 10:50:55.53ID:uocr6YSL0 >>367
例えばオンライン要素(マルチプレイ)のあるゲームを作る際に、サーバーにあるDBにアクセスしてデータを出し入れするプログラムをPHPで書いた場合は「サーバーを書く」と言っていいの?
例えばオンライン要素(マルチプレイ)のあるゲームを作る際に、サーバーにあるDBにアクセスしてデータを出し入れするプログラムをPHPで書いた場合は「サーバーを書く」と言っていいの?
369デフォルトの名無しさん (ワッチョイ 8395-j3zu)
2018/08/07(火) 11:02:53.49ID:7NW2zIgs0 >>368
そういう用途では使わないと思う
Proxyみたいにサーバ上でスタンドアローンで動作するアプリと言えばいいかな?そういうものを書くイメージ
例えばwebminはhttpサーバ機能をperlで書いてるがそういうものをサーバーを書いたと言うのはしっくりと来る
そういう用途では使わないと思う
Proxyみたいにサーバ上でスタンドアローンで動作するアプリと言えばいいかな?そういうものを書くイメージ
例えばwebminはhttpサーバ機能をperlで書いてるがそういうものをサーバーを書いたと言うのはしっくりと来る
370デフォルトの名無しさん (ワッチョイ ff7f-gWEw)
2018/08/07(火) 11:04:40.27ID:uocr6YSL0371デフォルトの名無しさん (ワッチョイ 3323-SA/8)
2018/08/07(火) 11:16:29.34ID:i+V5/5w80 てか、こんなイミフ表現使うなよw
372デフォルトの名無しさん (ワッチョイ 8395-j3zu)
2018/08/07(火) 11:20:35.05ID:7NW2zIgs0 イミフか?知らないだけだろ
373デフォルトの名無しさん (ワッチョイ 6f17-j3zu)
2018/08/07(火) 11:51:01.42ID:5VqtIgbz0 ちょっとググるとguzzleでproxy書いてるのとかあったからやってみればいいんじゃないかな
そうすればサーバーを書くというのはどういうものなのか何となく分かるのでは
そうすればサーバーを書くというのはどういうものなのか何となく分かるのでは
374デフォルトの名無しさん (ワッチョイ cfb8-2Kil)
2018/08/07(火) 13:53:06.05ID:XXpusaA40 サーバってのはsocket関数使ってポートlistenしたデーモンであること
>>368はたんにバックエンドなだけ
>>368はたんにバックエンドなだけ
375デフォルトの名無しさん (ワッチョイ ff7f-gWEw)
2018/08/07(火) 14:37:02.01ID:uocr6YSL0376デフォルトの名無しさん (ワッチョイ e3cc-Xflc)
2018/08/08(水) 16:21:48.35ID:Ao8ga7ES0 VB/VBA(クラス無し)しか書かけないけど、PHP(5?)を触ることになった
入門書探してるんだけど、尼のカスタマーレビュー見るとどれも賛否両論でまともなのがない
「これ買え」ってのない?
内容全部が役に立つわけないのはわかってるから、本の特徴が知りたい
入門書探してるんだけど、尼のカスタマーレビュー見るとどれも賛否両論でまともなのがない
「これ買え」ってのない?
内容全部が役に立つわけないのはわかってるから、本の特徴が知りたい
377デフォルトの名無しさん (ワッチョイ ffd4-Mv1r)
2018/08/08(水) 16:24:03.76ID:ic4eKuJe0 リンクをクリックすると問い合わせに回答するメールの画面が開くという処理があるのですが、
EdgeとIEでは正常に動作するのですが、Chromeだと何も起こらない時があります。
$val = mb_convert_encoding($_POST['body'], "SJIS", "UTF-8");
body(本文)が短いとChromeでも正常に動作するのでbodyの内容が長い時に↑のエンコード時に何か異常が起きてると思うんですけどわかる方いますか?
EdgeとIEでは正常に動作するのですが、Chromeだと何も起こらない時があります。
$val = mb_convert_encoding($_POST['body'], "SJIS", "UTF-8");
body(本文)が短いとChromeでも正常に動作するのでbodyの内容が長い時に↑のエンコード時に何か異常が起きてると思うんですけどわかる方いますか?
378デフォルトの名無しさん (ワッチョイ ffd0-10BI)
2018/08/08(水) 17:06:31.24ID:/J/gevQO0 input要素の入力の有無を確認する方法で一般的な方法を教えてください。
1. if($hoge == ''){・・・}
2. if($hoge === ''){・・・}
3. if(empty($hoge)){・・・}
4. if(!$hoge){・・・}
5. if(!strlen($hoge)){・・・}
6. 他の良い方法も教えてください。
PHPを初めて日が浅いので変な質問をすると思いますが、よろしくお願いします。
1. if($hoge == ''){・・・}
2. if($hoge === ''){・・・}
3. if(empty($hoge)){・・・}
4. if(!$hoge){・・・}
5. if(!strlen($hoge)){・・・}
6. 他の良い方法も教えてください。
PHPを初めて日が浅いので変な質問をすると思いますが、よろしくお願いします。
379デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/08(水) 17:18:00.31ID:Evm53zpf0 >>378
<form action="" method="post">
<input type="text" name="hoge">
のフォームから飛んでくる$_POST['hoge']の値が空かどうかは
if ((string) filter_input(INPUT_POST, 'hoge') === '')
と書くのが実用的(正しいというと語弊があるので「実用的」と表現しとく)
少なくとも3や4は使っちゃ駄目
hogeに'0'が入っていても空として判定されてしまう
<form action="" method="post">
<input type="text" name="hoge">
のフォームから飛んでくる$_POST['hoge']の値が空かどうかは
if ((string) filter_input(INPUT_POST, 'hoge') === '')
と書くのが実用的(正しいというと語弊があるので「実用的」と表現しとく)
少なくとも3や4は使っちゃ駄目
hogeに'0'が入っていても空として判定されてしまう
380デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/08(水) 17:24:45.45ID:Evm53zpf0 >>377
<a href="mailto:aaa@example.com?body={$val}">〜</a>
としてリンクをクリックした時に
メーラーの本文に$valが書かれた状態にしたいって話だろうか?
もしそうならbodyに何byteまで指定できるかは環境依存なので
その方法は止めて
ローカルのMTAやSMTP使ってメールを飛ばすようにした方がいい
<a href="mailto:aaa@example.com?body={$val}">〜</a>
としてリンクをクリックした時に
メーラーの本文に$valが書かれた状態にしたいって話だろうか?
もしそうならbodyに何byteまで指定できるかは環境依存なので
その方法は止めて
ローカルのMTAやSMTP使ってメールを飛ばすようにした方がいい
381デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/08(水) 17:30:58.81ID:Evm53zpf0 >>376
ちょっと上でも話が出てるがPHPには初心者ならこれ!という本が本当にない
強いていうならPHP公式サイトにあるPHPマニュアルが一番いい
何かを作りながら学びたいのであれば
ドットインストールみたいなサービスも選択肢になるかも
ちょっと上でも話が出てるがPHPには初心者ならこれ!という本が本当にない
強いていうならPHP公式サイトにあるPHPマニュアルが一番いい
何かを作りながら学びたいのであれば
ドットインストールみたいなサービスも選択肢になるかも
382デフォルトの名無しさん (アウアウカー Sa07-8Mjq)
2018/08/08(水) 17:37:04.15ID:4S5+d1joa プログラミング言語として学ぶだけならいざ知らず, PHPの場合はほぼ確実にサーバサイドプログラミングのお作法とセットだから難しい
構文だけは簡単だけど実用しようと思うと全く初心者向けじゃないと思うわ
(サーバサイドアプリケーション自体初心者向きじゃないとは思う)
構文だけは簡単だけど実用しようと思うと全く初心者向けじゃないと思うわ
(サーバサイドアプリケーション自体初心者向きじゃないとは思う)
383デフォルトの名無しさん (ワッチョイ 3323-SA/8)
2018/08/08(水) 17:44:35.51ID:tT8nsbXK0 本屋で色々見て一番読みやすそうなの買えばいいんだよ
何が読みやすいなんて人それぞれなんだから
何が読みやすいなんて人それぞれなんだから
384378 (ワッチョイ ffd0-10BI)
2018/08/08(水) 18:05:55.26ID:/J/gevQO0385デフォルトの名無しさん (ワッチョイ e3cc-Xflc)
2018/08/08(水) 18:19:09.01ID:Ao8ga7ES0 >>381-383
やっぱなぁ
入るスキルがバラバラだからコレっつーのが難しいんだな
「PHPマニュアル」が一番ってのはわかるんだが、リファレンスであって教本じゃない感じ
XAMPP(MySQLでPHP5)環境だから、大きい本屋であさって、尼で中古買うわ
やっぱなぁ
入るスキルがバラバラだからコレっつーのが難しいんだな
「PHPマニュアル」が一番ってのはわかるんだが、リファレンスであって教本じゃない感じ
XAMPP(MySQLでPHP5)環境だから、大きい本屋であさって、尼で中古買うわ
386デフォルトの名無しさん (ワッチョイ cfb8-2Kil)
2018/08/08(水) 18:29:33.84ID:JZIh8c1S0 自分が始めた10年ぐらい前は赤マンモス本とかが流行ってたけどね
今はもう古いんじゃないかなあ
困ったときはとりあえずみんなオライリーって言うけど誰も言ってなかった
今はもう古いんじゃないかなあ
困ったときはとりあえずみんなオライリーって言うけど誰も言ってなかった
387デフォルトの名無しさん (ワッチョイ f3e9-0Uuo)
2018/08/08(水) 18:37:52.38ID:Evm53zpf0 >>384
> 3と4の方法は、日本語のみの場合、使っても問題ないということでしょうか
例えば if (empty($hoge)) は
1.$hogeが未定義(undefined)
2.$hoge = NULL
3.$hoge = (bool) false
4.$hoge = (int|float) 0
5.$hoge = (string) 0 or (string) ''
6.$hoge = (array) array() (空の配列)
なんかの時に真になる
意味を分かって使うのであれば別に絶対駄目だという訳じゃないよ
「日本語のみ」というのはPHPではどう判定するのか
そもそも日本語をどう定義するのかって話はあるけど
> 3と4の方法は、日本語のみの場合、使っても問題ないということでしょうか
例えば if (empty($hoge)) は
1.$hogeが未定義(undefined)
2.$hoge = NULL
3.$hoge = (bool) false
4.$hoge = (int|float) 0
5.$hoge = (string) 0 or (string) ''
6.$hoge = (array) array() (空の配列)
なんかの時に真になる
意味を分かって使うのであれば別に絶対駄目だという訳じゃないよ
「日本語のみ」というのはPHPではどう判定するのか
そもそも日本語をどう定義するのかって話はあるけど
388378 (ワッチョイ ffd0-10BI)
2018/08/08(水) 19:16:28.90ID:/J/gevQO0389デフォルトの名無しさん (ワッチョイ 4ad4-AlRe)
2018/08/09(木) 10:37:03.17ID:eox88/ri0 >>380
ありがとうございます。mailtoじゃなくjavascriptですけどメーラー本文に問い合わせ内容が書かれた状態にしたいです。
私は専門はオフコンなのでほとんどPHP等の知識はないのですが、作った人がもういないので仕方なく探り探りやってる状態です。
ありがとうございます。mailtoじゃなくjavascriptですけどメーラー本文に問い合わせ内容が書かれた状態にしたいです。
私は専門はオフコンなのでほとんどPHP等の知識はないのですが、作った人がもういないので仕方なく探り探りやってる状態です。
390デフォルトの名無しさん (ワッチョイ 0fe9-Qb5F)
2018/08/09(木) 11:17:35.06ID:MNGTuu+R0 >>389
今JavaScriptでやってるという方法も
結局は内部的にmailtoスキームを使ってるのではないかと思う
その方法はブラウザやブラウザから呼ばれるメールソフトに依存してしまう
しかも環境によってはそもそもメールソフトが起動しない
つまりPHPの処理の問題ではないって事ね
Googleフォームみたいに
問い合わせフォームを簡単に作れるサービスがたくさんあるので
そういうのを使ってみるのはどうだろう?
「問い合わせフォーム 作成」とかでググってみるとか
今JavaScriptでやってるという方法も
結局は内部的にmailtoスキームを使ってるのではないかと思う
その方法はブラウザやブラウザから呼ばれるメールソフトに依存してしまう
しかも環境によってはそもそもメールソフトが起動しない
つまりPHPの処理の問題ではないって事ね
Googleフォームみたいに
問い合わせフォームを簡単に作れるサービスがたくさんあるので
そういうのを使ってみるのはどうだろう?
「問い合わせフォーム 作成」とかでググってみるとか
391デフォルトの名無しさん (ワッチョイ 0fe9-Qb5F)
2018/08/09(木) 11:27:54.29ID:MNGTuu+R0 >>389
試しに実験してみたけど
Chromeはやはり?body=に長過ぎる文字列を指定してると
mailtoが反応しなくなるっぽいね
適当に10,000byteのbodyを与えみたら
Chromeはmailtoをクリックしても何も起こらなくなる
Firefoxだと2046byte以降が削除される
これはもう仕様なので他の方法にするしかないだろうね
今までも環境によっては動いてなかったんだと思うよ
試しに実験してみたけど
Chromeはやはり?body=に長過ぎる文字列を指定してると
mailtoが反応しなくなるっぽいね
適当に10,000byteのbodyを与えみたら
Chromeはmailtoをクリックしても何も起こらなくなる
Firefoxだと2046byte以降が削除される
これはもう仕様なので他の方法にするしかないだろうね
今までも環境によっては動いてなかったんだと思うよ
392デフォルトの名無しさん (ワッチョイ 6781-2km2)
2018/08/09(木) 11:39:44.99ID:2CPDzClL0393デフォルトの名無しさん (スププ Sdea-jQgE)
2018/08/09(木) 11:51:13.12ID:icZP1PWcd >>392
いやそういう問題じゃないだろ
いやそういう問題じゃないだろ
394デフォルトの名無しさん (ワッチョイ 4ad4-AlRe)
2018/08/09(木) 13:07:46.86ID:eox88/ri0395デフォルトの名無しさん (ワッチョイ 0fe9-Qb5F)
2018/08/09(木) 13:23:22.82ID:MNGTuu+R0 >>394
問い合わせ内容がメールで来るわけではなく画面に表示されて
画面内のリンクをクリックしたら返信用にメーラーが立ち上がるみたいな仕組みなのかな?
問い合わせ内容が何かしらのメールアドレス宛に届くようにしさえすれば
あとは運用で解決する問題なような気がするけど…
問い合わせ内容がメールで来るわけではなく画面に表示されて
画面内のリンクをクリックしたら返信用にメーラーが立ち上がるみたいな仕組みなのかな?
問い合わせ内容が何かしらのメールアドレス宛に届くようにしさえすれば
あとは運用で解決する問題なような気がするけど…
396394 (ワッチョイ 4ad4-AlRe)
2018/08/10(金) 10:53:33.88ID:Jh09aF/n0397デフォルトの名無しさん (ワッチョイ 06d5-++Qy)
2018/08/10(金) 12:02:22.10ID:9AhDfxBI0 運用でカバーするなら今のままでIE使わせればいいって話でもあるわな。
398デフォルトの名無しさん (ワッチョイ 8ad0-SkTr)
2018/08/11(土) 17:46:10.17ID:3QKmHOOO0 $var = $_POST['var'];
よりも
$var = filter_input(INPUT_POST,'var');
が良いんですか !?
前者は危険だと聞いた(´・ω・`)
勉強中の身だけどムズカシイ
よりも
$var = filter_input(INPUT_POST,'var');
が良いんですか !?
前者は危険だと聞いた(´・ω・`)
勉強中の身だけどムズカシイ
399デフォルトの名無しさん (ワッチョイ 6376-IYYR)
2018/08/11(土) 17:51:08.49ID:sk2SMDv70 filter_inputで少しぐぐれば出てくるでしょ
分からない単語出てきたらまたぐぐるってやってけば分かるさ
分からない単語出てきたらまたぐぐるってやってけば分かるさ
400デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/11(土) 21:17:42.60ID:8ZYocvEQ0 >>399
前者が危険な理由はキーワード知らないと filter_input でググってもでてこないと思うけど。
前者が危険な理由はキーワード知らないと filter_input でググってもでてこないと思うけど。
401デフォルトの名無しさん (ワッチョイ 6376-IYYR)
2018/08/12(日) 00:03:01.67ID:iFUBY5JA0402デフォルトの名無しさん (ワッチョイ 6781-2km2)
2018/08/12(日) 00:08:01.15ID:B+zL8m/c0 単刀直入にやらないと、無駄にスレを消費する
403デフォルトの名無しさん (オイコラミネオ MMeb-++Qy)
2018/08/12(日) 00:31:14.89ID:UYzABTVRM filter_input だと便利な場面があるというだけで、$_POST はこれまでみんな使ってきたものだし留意点を押さえれば問題があるわけじゃない。
$_POST での参照は、そもそもそのパラメタが設定されているか、期待する型かとかを自分で判定する必要があるというだけで、fi-ter_input はそれを場合によって便利にするユーティリティ関数程度のもの。
$_POST での参照は、そもそもそのパラメタが設定されているか、期待する型かとかを自分で判定する必要があるというだけで、fi-ter_input はそれを場合によって便利にするユーティリティ関数程度のもの。
404デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 01:12:20.29ID:9ChOuHra0 $_POST が危険って言われるのは、変更可能なスーパーグローバルだから。
filter_input は HTTP で投げられた値を直接参照するので、$_POST とは全然別物。
ググってでてくる情報で、変数汚染に触れてる記事はないので、概要知らないとたどり着けないんだぜぃ!
filter_input は HTTP で投げられた値を直接参照するので、$_POST とは全然別物。
ググってでてくる情報で、変数汚染に触れてる記事はないので、概要知らないとたどり着けないんだぜぃ!
405デフォルトの名無しさん (ワッチョイ 06d5-++Qy)
2018/08/12(日) 07:20:34.52ID:l4hCxpRe0 変更可能だとどんな危険が考えられるの?
406デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 09:08:50.60ID:9ChOuHra0 >>405
行儀の悪いモジュールやライブラリとか使うと書き換えられるかも。ってぐらい。
実際にはそれほど気にしなくて良いレベルだけど、それを気にしなきゃいけないプログラムは多い。
読みやすく/使いやすく/再利用性の高いコード書くってことは、結合を疎に保つことが重要なんで、そのあたり理解してると $_POST はまず使わん。
行儀の悪いモジュールやライブラリとか使うと書き換えられるかも。ってぐらい。
実際にはそれほど気にしなくて良いレベルだけど、それを気にしなきゃいけないプログラムは多い。
読みやすく/使いやすく/再利用性の高いコード書くってことは、結合を疎に保つことが重要なんで、そのあたり理解してると $_POST はまず使わん。
407デフォルトの名無しさん (ワッチョイ 0a7f-EgBt)
2018/08/12(日) 15:04:58.70ID:9ilCyu/u0 GETも同じ?
408デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 15:27:03.70ID:bsEI5sh70 >>404
>$_POST が危険って言われるのは、変更可能なスーパーグローバルだから。
>filter_input は は HTTP で投げられた値を直接参照するので、$_POST とは全然別物。
$_POST が危険って言うのは聞いたことがないんだが、
Webサーバーが受けとったリクエストをPHPが取得して変数に代入している訳だろう?
PHPスクリプトが変数の値を参照するのに誰かが割り込めるのかな
リクエスト内容を直接参照すれば他が割り込めなくなるとは思えないが
filter_input がやれるなら、他も出来ると言うことだろう
>$_POST が危険って言われるのは、変更可能なスーパーグローバルだから。
>filter_input は は HTTP で投げられた値を直接参照するので、$_POST とは全然別物。
$_POST が危険って言うのは聞いたことがないんだが、
Webサーバーが受けとったリクエストをPHPが取得して変数に代入している訳だろう?
PHPスクリプトが変数の値を参照するのに誰かが割り込めるのかな
リクエスト内容を直接参照すれば他が割り込めなくなるとは思えないが
filter_input がやれるなら、他も出来ると言うことだろう
409デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 15:35:31.72ID:bsEI5sh70 $HTTP_POST_VARS って変数があり、
これはスーパーグローバルではないけれど
現在は非推奨となってる
これはスーパーグローバルではないけれど
現在は非推奨となってる
410デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 20:02:51.29ID:9ChOuHra0 >>408
ここで言う「危険」は「セキュアじゃない」って意味ではなくて、「コードが意図した通り動かない可能性がある」とかの意味。
$_POST は「スーパーグローバル変数」なので、コード内のいたる箇所で書き換えることが可能。
で、書き換えちゃった場合、それを使用している他の箇所にも影響出るよね。ってことを危険っ言ってる。
普通は書き換え行うようなことはしないけど、何かの意図があって書き換えた場合、後に想定を超える影響を及ぼす可能性が大。
filter_input は読み取りのみが保証されるので、疎結合なコードを書くには filter_input を使用することが必須。
>> 407
GET も考え方は同じ。
ここで言う「危険」は「セキュアじゃない」って意味ではなくて、「コードが意図した通り動かない可能性がある」とかの意味。
$_POST は「スーパーグローバル変数」なので、コード内のいたる箇所で書き換えることが可能。
で、書き換えちゃった場合、それを使用している他の箇所にも影響出るよね。ってことを危険っ言ってる。
普通は書き換え行うようなことはしないけど、何かの意図があって書き換えた場合、後に想定を超える影響を及ぼす可能性が大。
filter_input は読み取りのみが保証されるので、疎結合なコードを書くには filter_input を使用することが必須。
>> 407
GET も考え方は同じ。
411デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 20:18:35.31ID:bsEI5sh70 >>410
そういうのはバグって行って、POSTスーパーグローバル変数の問題ではないなあ
使い方が間違えているか、ワザとそうしているかだろう
普通に推奨されている方法をあえてとらないって 意味が無いと思う
自分だけでやってシステムが終わるまでメンテするって言うなら良いけど
そういうのはバグって行って、POSTスーパーグローバル変数の問題ではないなあ
使い方が間違えているか、ワザとそうしているかだろう
普通に推奨されている方法をあえてとらないって 意味が無いと思う
自分だけでやってシステムが終わるまでメンテするって言うなら良いけど
412デフォルトの名無しさん (ワッチョイ 0a7f-EgBt)
2018/08/12(日) 20:51:00.05ID:9ilCyu/u0 >>410
なるほど、ありがとう
なるほど、ありがとう
413デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 20:56:57.73ID:9ChOuHra0 >>411
バグの入る余地をなくして、読みやすく/使いやすく/再利用性の高い危険を回避したコードを書くには、結合を疎に保つことが重要
で、結合を疎に保つには filter_input を使用することが推奨されるって話なんだけど、通じてる?
普通に推奨されている方法をあえてとらないって 意味が無いと思う
自分だけでやってシステム終わるまでメンテするって言うなら良いけど
バグの入る余地をなくして、読みやすく/使いやすく/再利用性の高い危険を回避したコードを書くには、結合を疎に保つことが重要
で、結合を疎に保つには filter_input を使用することが推奨されるって話なんだけど、通じてる?
普通に推奨されている方法をあえてとらないって 意味が無いと思う
自分だけでやってシステム終わるまでメンテするって言うなら良いけど
414デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 21:02:18.40ID:bsEI5sh70 あえて書き直すほどの事は無いと思う
開発する人間が注意すれば避けられること
そこまで拘るなら、Webサーバー使わずに
自前でリクエストを受けとってしまえば良いんじゃない?
普通に推奨されているとは思わないよ。そんな関数初めて聞いたし。
どこでそんな事で大騒ぎになっているの?サイト教えて
開発する人間が注意すれば避けられること
そこまで拘るなら、Webサーバー使わずに
自前でリクエストを受けとってしまえば良いんじゃない?
普通に推奨されているとは思わないよ。そんな関数初めて聞いたし。
どこでそんな事で大騒ぎになっているの?サイト教えて
415デフォルトの名無しさん (ワッチョイ 06d5-++Qy)
2018/08/12(日) 21:24:00.23ID:l4hCxpRe0 疎結合と filter_input がいまいち結び付かん。
HTTPリクエストから必要パラメタを取り出しオブジェクト化して、後はそのオブジェクトを使ってパラメタにアクセスしましょうってんならHTTPリクエストを隠蔽できて疎かなって気もするが。
$_POST の代わりに filter_input を使うと何と何が疎になるの?って感じ。
HTTPリクエストから必要パラメタを取り出しオブジェクト化して、後はそのオブジェクトを使ってパラメタにアクセスしましょうってんならHTTPリクエストを隠蔽できて疎かなって気もするが。
$_POST の代わりに filter_input を使うと何と何が疎になるの?って感じ。
416デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 21:37:43.85ID:9ChOuHra0 >>414
変数のスコープのの話なんて、適当に探せばいくらでも出てくるだろうに^^;
堅牢なコードを理解してないみたいなんで、これでも見て意識改善するといいよ。
https://youtu.be/17i1EL9pBwA
変数のスコープのの話なんて、適当に探せばいくらでも出てくるだろうに^^;
堅牢なコードを理解してないみたいなんで、これでも見て意識改善するといいよ。
https://youtu.be/17i1EL9pBwA
417デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 21:44:39.30ID:9ChOuHra0 >>415
> HTTPリクエストから必要パラメタを取り出しオブジェクト化して、後はそのオブジェクトを使ってパラメタにアクセスしましょうってんならHTTPリクエストを隠蔽できて疎かなって気もするが。
その認識で正しいと思うよ。
ただ、それはそれ。
取り出しの時に行儀の悪いモジュールやライブラリ使用したときに、邪魔される可能性は残る。
取り出しのときにでかいスコープを回避できる 読み取り専用の関数を使用すると、予防的にコードが書けるってことです。
> HTTPリクエストから必要パラメタを取り出しオブジェクト化して、後はそのオブジェクトを使ってパラメタにアクセスしましょうってんならHTTPリクエストを隠蔽できて疎かなって気もするが。
その認識で正しいと思うよ。
ただ、それはそれ。
取り出しの時に行儀の悪いモジュールやライブラリ使用したときに、邪魔される可能性は残る。
取り出しのときにでかいスコープを回避できる 読み取り専用の関数を使用すると、予防的にコードが書けるってことです。
418デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 22:17:31.77ID:bsEI5sh70 PHPを扱うサイトでfilter_input が話題になっている所あるの?
見つからないんだけど
普通に推奨されている位だから、たくさんあってもおかしくはないよね?
見つからないんだけど
普通に推奨されている位だから、たくさんあってもおかしくはないよね?
419デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 22:25:25.71ID:bsEI5sh70 Webサーバーからリクエストを受けとるのに隠蔽も何もないと思うけどね
グローバル変数だから書き換えられる可能性があるというのも変
書き換えているのは自分じゃないか。人のせいには出来ないでしょう
大勢で開発しているなら、その処理を行う担当以外は操作禁止にするだけだし
グローバル変数だから書き換えられる可能性があるというのも変
書き換えているのは自分じゃないか。人のせいには出来ないでしょう
大勢で開発しているなら、その処理を行う担当以外は操作禁止にするだけだし
420デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 22:26:50.06ID:9ChOuHra0421デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 22:29:18.96ID:9ChOuHra0 >>419
@t_wada の前でも同じこと言えんの?
@t_wada の前でも同じこと言えんの?
422デフォルトの名無しさん (ワッチョイ 1b5d-2km2)
2018/08/12(日) 22:31:31.01ID:mMH07JtW0 既存コードを修正すべきだとまでは言わないが, 新規コードにはfilter_inputを使うべきだという点に関しては疑う余地がない
423デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 22:40:35.81ID:bsEI5sh70 >>420
つまり、公開されているPHP関連のサイトではそのような話題が出ていないと言うことでOK?
つまり、公開されているPHP関連のサイトではそのような話題が出ていないと言うことでOK?
424デフォルトの名無しさん (ワッチョイ 06d5-++Qy)
2018/08/12(日) 22:49:31.76ID:l4hCxpRe0 >>419
んまあデバッグしたりコマンドラインでも実行できるようにしたりする可能性を考えると、HTTPリクエストの扱いは浮かせて置いた方がいいかなって気はするよ。
後は同意。
$_POST がダメで filter_input ならいいって話には繋がらないと思うし、$_POST をわざわざ書き換えるならあえてそういう設計なんだろうけど、それが甘いか明確になってないだけじゃねとしか思わん。
そういう設計はかくかく然々でお勧めしないよって話ならまだ聞ける。
ちなみに >>416 は見たよ。
話のうまいやつで面白かったよ。
PHP にも assert あったのね。しかも運用時にいないことにできるとか、なかなかいいじゃないか。
んまあデバッグしたりコマンドラインでも実行できるようにしたりする可能性を考えると、HTTPリクエストの扱いは浮かせて置いた方がいいかなって気はするよ。
後は同意。
$_POST がダメで filter_input ならいいって話には繋がらないと思うし、$_POST をわざわざ書き換えるならあえてそういう設計なんだろうけど、それが甘いか明確になってないだけじゃねとしか思わん。
そういう設計はかくかく然々でお勧めしないよって話ならまだ聞ける。
ちなみに >>416 は見たよ。
話のうまいやつで面白かったよ。
PHP にも assert あったのね。しかも運用時にいないことにできるとか、なかなかいいじゃないか。
425デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 22:55:53.50ID:bsEI5sh70 キーワードで検索出来ないってことがとても不自然に感じるんだけど
普通に推奨されていると言うなら、行う記事があってもおかしくはないよね
まさか、この関数が非公開関数で秘密にしないといけないものだったりして
普通に推奨されていると言うなら、行う記事があってもおかしくはないよね
まさか、この関数が非公開関数で秘密にしないといけないものだったりして
426デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 22:59:03.40ID:9ChOuHra0427デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 22:59:36.87ID:bsEI5sh70428デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 23:01:06.85ID:bsEI5sh70429デフォルトの名無しさん (ワッチョイ 06d5-++Qy)
2018/08/12(日) 23:04:19.57ID:l4hCxpRe0 >>426
よく言われるようなグローバル使うなって話は、自分で定義するのは極力避けましょうってことであり、用意されてるものを使うなって話ではないんじゃない?
よく言われるようなグローバル使うなって話は、自分で定義するのは極力避けましょうってことであり、用意されてるものを使うなって話ではないんじゃない?
430デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 23:07:19.08ID:bsEI5sh70 そんな事実上の内部バグを問題にするよりも
リクエスト投げてくるのは、こちらが用意したフォームとは限らない、
想定外のリクエストに乗せられることが現実に発生するんだし、
そちらのチェックの方が重要だと思うよ
そういう実際的な話題を提供して議論する方が良いと思うな
リクエスト投げてくるのは、こちらが用意したフォームとは限らない、
想定外のリクエストに乗せられることが現実に発生するんだし、
そちらのチェックの方が重要だと思うよ
そういう実際的な話題を提供して議論する方が良いと思うな
431デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 23:08:04.47ID:9ChOuHra0432デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 23:09:31.00ID:9ChOuHra0 途中で投稿してしまった。
> $_POST が危険って言われるのは、変更可能なスーパーグローバルだから。
> filter_input は HTTP で投げられた値を直接参照するので、$_POST とは全然別物。
> ググってでてくる情報で、変数汚染に触れてる記事はないので、概要知らないとたどり着けないんだぜぃ!
> $_POST が危険って言われるのは、変更可能なスーパーグローバルだから。
> filter_input は HTTP で投げられた値を直接参照するので、$_POST とは全然別物。
> ググってでてくる情報で、変数汚染に触れてる記事はないので、概要知らないとたどり着けないんだぜぃ!
433デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/12(日) 23:15:01.27ID:9ChOuHra0 >>429
改変されるリスクの有無は同じなので、限定した話ではない。
改変されるリスクの有無は同じなので、限定した話ではない。
434デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 23:15:09.06ID:bsEI5sh70 ググっても出てこない関数がどうして普通に推奨されていると言うのか、
その根拠を聞きたかったんですが
そんなに話題に上らない関数と言うことで良いんでしょうか?
その根拠を聞きたかったんですが
そんなに話題に上らない関数と言うことで良いんでしょうか?
435デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/12(日) 23:17:10.07ID:bsEI5sh70 しつこくて済みませんが、グローバル変数を使うなと言うのは、一種の宗教だと思うんです
信じる人はそうすれば良いけど、信じない人はそうしなくてもいいと言う程度で
信じる人はそうすれば良いけど、信じない人はそうしなくてもいいと言う程度で
436デフォルトの名無しさん (ワッチョイ 1b5d-2km2)
2018/08/12(日) 23:32:41.22ID:mMH07JtW0 PHP The Right Wayくらいは必読だと思う
ttps://www.phptherightway.com/#data_filtering
理由もなくスーパーグローバルを直接叩くようなコードを新しく書いたならそれだけでrejectするに足る
それ以外のグローバル変数も納得出来る説明がコードやコメントに無いならreject
ttps://www.phptherightway.com/#data_filtering
理由もなくスーパーグローバルを直接叩くようなコードを新しく書いたならそれだけでrejectするに足る
それ以外のグローバル変数も納得出来る説明がコードやコメントに無いならreject
437デフォルトの名無しさん (ワッチョイ 0a7f-EgBt)
2018/08/12(日) 23:50:35.68ID:9ilCyu/u0 エラーが起きない方法をとるのに越した事はないと思うけど、何をそんなにむきになってるのだろう
438デフォルトの名無しさん (オイコラミネオ MMeb-++Qy)
2018/08/13(月) 01:59:19.53ID:eWNl9K1lM >>436
そこからどこまで読めばお前さんの言いたいことが書いてあるのが分からんが、とりあえず外部データをサニタイズせずに使うことの危険性なんかを説明してるのかな?
それを解決するのに filter_input や filter_var を使えますよという話だよね?
グローバル使うな的な話は書いてないようだが、ただ実はもしやと思ってたんだけど、register_globals を使うなって話と混同してるんじゃない?
それは危ないから使わない方がいいよ。
そしてそれは $_POST を使うななんてこととは全く関係無い。
そこからどこまで読めばお前さんの言いたいことが書いてあるのが分からんが、とりあえず外部データをサニタイズせずに使うことの危険性なんかを説明してるのかな?
それを解決するのに filter_input や filter_var を使えますよという話だよね?
グローバル使うな的な話は書いてないようだが、ただ実はもしやと思ってたんだけど、register_globals を使うなって話と混同してるんじゃない?
それは危ないから使わない方がいいよ。
そしてそれは $_POST を使うななんてこととは全く関係無い。
439デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 11:03:05.76ID:rjxAd60g0 >>434
ずっと同じことのループやねぇ。。。
> ググっても出てこない関数がどうして普通に推奨されていると言うのか、
ググって出てこないのは、$_POST の危険な理由。
関数としては各所で便利だぜぃ。って紹介されている。
PHP The Right Way もその一つ。
ずっと同じことのループやねぇ。。。
> ググっても出てこない関数がどうして普通に推奨されていると言うのか、
ググって出てこないのは、$_POST の危険な理由。
関数としては各所で便利だぜぃ。って紹介されている。
PHP The Right Way もその一つ。
440デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 11:05:41.03ID:rjxAd60g0 >>435
> しつこくて済みませんが、グローバル変数を使うなと言うのは、一種の宗教だと思うんです
宗教じゃなくて、意識の話。読みやすく/使いやすく/再利用性の高いコード書くことを意識していれば、グローバル変数の使用はまず避けるように設計する。
避ける気がないのは、読みやすく/使いやすく/再利用性の高いコード書く意識が無いってだけ。
> しつこくて済みませんが、グローバル変数を使うなと言うのは、一種の宗教だと思うんです
宗教じゃなくて、意識の話。読みやすく/使いやすく/再利用性の高いコード書くことを意識していれば、グローバル変数の使用はまず避けるように設計する。
避ける気がないのは、読みやすく/使いやすく/再利用性の高いコード書く意識が無いってだけ。
441デフォルトの名無しさん (ワッチョイ 6bcc-2km2)
2018/08/13(月) 11:35:41.06ID:V6shauct0442デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 11:43:06.68ID:XxWurSAu0 filter_input 自体は $_POST使っているんでしょ?
443デフォルトの名無しさん (オイコラミネオ MM56-++Qy)
2018/08/13(月) 12:32:33.81ID:ZXAQ0ZmcM444デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 12:48:25.49ID:rjxAd60g0445デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 12:50:40.98ID:rjxAd60g0446デフォルトの名無しさん (オイコラミネオ MM56-++Qy)
2018/08/13(月) 13:13:48.26ID:ZXAQ0ZmcM >>444
あ、ごめん
別の人と混同してたわ
それはそれとして結合を疎にする話、自分でグローバル変数を用意してそれを介して複数クラスやモジュールでコミュニケーションするって話ならそれは結合が密だと言えると思う。
でもただシステムが用意してるリソースを参照するからと言ってそれが密かと言えばそうじゃないし、密だったとしてそれを疎にするためにラップしなさいっていうならそれは分かる。
filter_input 使ったところで何が疎になってるの?って感じだけど、そこらへんどうなの?
若干繰り返しになるけど、PHP固有の関数である filter_input 自体を直接参照せずラップしましょうってところまで行ってるのであれば、そういう方法論もあるかと思うよ。
グローバル変数誰かが書き換えたら不具合が起こるって、スコープが狭いだけでクラスメンバ変数を誰かが書き換えちゃったらという話と同じような話でしょ。
早い話、選定してるものを仕様通りに使ってないという問題なんだかrさ。
あ、ごめん
別の人と混同してたわ
それはそれとして結合を疎にする話、自分でグローバル変数を用意してそれを介して複数クラスやモジュールでコミュニケーションするって話ならそれは結合が密だと言えると思う。
でもただシステムが用意してるリソースを参照するからと言ってそれが密かと言えばそうじゃないし、密だったとしてそれを疎にするためにラップしなさいっていうならそれは分かる。
filter_input 使ったところで何が疎になってるの?って感じだけど、そこらへんどうなの?
若干繰り返しになるけど、PHP固有の関数である filter_input 自体を直接参照せずラップしましょうってところまで行ってるのであれば、そういう方法論もあるかと思うよ。
グローバル変数誰かが書き換えたら不具合が起こるって、スコープが狭いだけでクラスメンバ変数を誰かが書き換えちゃったらという話と同じような話でしょ。
早い話、選定してるものを仕様通りに使ってないという問題なんだかrさ。
447デフォルトの名無しさん (ワッチョイ 6beb-dFjz)
2018/08/13(月) 13:22:06.99ID:+hDvRkt20 個人的には $_POST をリードオンリーにして使ってるが、俺だけだろうな
448デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 13:41:09.92ID:rjxAd60g0 >>446
filter_input は HTTP で投げられた値を直接参照するので、$_POST とは全然別物
スーパグローバル変数は「参照」できるだけでなく、「書き込む」こともできるのでどう使っても密になる。
オブジェクトのプロパティに「POST内容を突っ込んでおく」場合でも、スーパーグローバル変数を使用して取り出すと行儀の悪いモジュールやライブラリに邪魔される可能性が残る。
取り出しのときに読み取り専用の関数を使用すると、そういった結合を疎にすることができ、予防的にコードが書ける。
で、ここで言う読み取り用の関数が filter_input
> グローバル変数誰かが書き換えたら不具合が起こるって、スコープが狭いだけでクラスメンバ変数を誰かが書き換えちゃったらという話と同じような話でしょ。
読みやすく/使いやすく/再利用性の高いコード書く場合は、発想が逆でそういった事をさせないように設計する。
堅牢なコードを理解してないみたいなんで、これでも見て意識改善するといいよ。
https://youtu.be/17i1EL9pBwA
filter_input は HTTP で投げられた値を直接参照するので、$_POST とは全然別物
スーパグローバル変数は「参照」できるだけでなく、「書き込む」こともできるのでどう使っても密になる。
オブジェクトのプロパティに「POST内容を突っ込んでおく」場合でも、スーパーグローバル変数を使用して取り出すと行儀の悪いモジュールやライブラリに邪魔される可能性が残る。
取り出しのときに読み取り専用の関数を使用すると、そういった結合を疎にすることができ、予防的にコードが書ける。
で、ここで言う読み取り用の関数が filter_input
> グローバル変数誰かが書き換えたら不具合が起こるって、スコープが狭いだけでクラスメンバ変数を誰かが書き換えちゃったらという話と同じような話でしょ。
読みやすく/使いやすく/再利用性の高いコード書く場合は、発想が逆でそういった事をさせないように設計する。
堅牢なコードを理解してないみたいなんで、これでも見て意識改善するといいよ。
https://youtu.be/17i1EL9pBwA
449デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 14:57:40.05ID:XxWurSAu0 これ以上やっても信仰する宗教のようなのでやめますが
php.netで $_POST変数が非推奨になり、filter_input関数が推奨になったら
その時に考えることにします
今は、いくつかある対策方法の一つとして聞いておきます
php.netで $_POST変数が非推奨になり、filter_input関数が推奨になったら
その時に考えることにします
今は、いくつかある対策方法の一つとして聞いておきます
450デフォルトの名無しさん (オイコラミネオ MMdf-++Qy)
2018/08/13(月) 15:25:20.03ID:6I003ZzcM451デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 15:48:38.75ID:rjxAd60g0 >>450
複数クラスやモジュールでコミュニケーションしてしまう状態
複数クラスやモジュールでコミュニケーションしてしまう状態
452デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 15:54:21.02ID:XxWurSAu0 あなたはそういう風に使いたいのかも知れないが
普通の人はそうは使わない
いつまで自分の信仰に拘るんだろう
普通の人はそうは使わない
いつまで自分の信仰に拘るんだろう
453デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 16:14:12.67ID:rjxAd60g0454デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 16:22:06.43ID:XxWurSAu0 汚染する犯人は自分以外にいないんですが
多重人格者でもなければ心配ないでしょう
多重人格者でもなければ心配ないでしょう
455デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 16:27:52.12ID:rjxAd60g0456デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 16:29:04.74ID:XxWurSAu0 汚染の原因なんて事前に特定出来るでしょう
それが出来ない人だから、こんなことするの?
それが出来ない人だから、こんなことするの?
457デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 16:33:01.17ID:rjxAd60g0458デフォルトの名無しさん (ワッチョイ 1b5d-2km2)
2018/08/13(月) 16:33:50.13ID:LXDaPxOa0 一か月前の自分は他人だよ
一年も経てば細部なんて何も覚えてない
俺は自分にそこまで自信を持てないわ
一年も経てば細部なんて何も覚えてない
俺は自分にそこまで自信を持てないわ
459デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 16:44:20.77ID:XxWurSAu0 防げるのはせいぜい自分が書く内部バグくらい?
外部からの攻撃については無力
コツコツとバリッドチェックを用意することになるのは変わらない
こんなんでも堅牢なシステムだって言えるんだろうか
外部からの攻撃については無力
コツコツとバリッドチェックを用意することになるのは変わらない
こんなんでも堅牢なシステムだって言えるんだろうか
460デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 16:46:25.51ID:XxWurSAu0 グローバル変数に対して誤って代入している箇所を見つける事が
そんなに難しいことなんだろうか?
そんなに難しいことなんだろうか?
461デフォルトの名無しさん (ワッチョイ 0a7f-EgBt)
2018/08/13(月) 16:50:37.23ID:B8BpXPvN0 >>456 は結局のところ「注意すれば事足りるでしょ?」ってことを昨日からずっと言い続けてるよね
その注意をかける負担を減らせる手段を一つでも盛り込む事に反発する理由なんて一つもないと思うんだけどな
俺の頭がおかしいのかそうじゃないのかよく分かんなくなってくるじゃん
その注意をかける負担を減らせる手段を一つでも盛り込む事に反発する理由なんて一つもないと思うんだけどな
俺の頭がおかしいのかそうじゃないのかよく分かんなくなってくるじゃん
462デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 16:51:42.20ID:XxWurSAu0 誤った代入ならローカル変数にだってあり得るが
こういうロジックミスはそれを使っても防ぎようがない
丹念にチェックし潰していくしかない
こういうロジックミスはそれを使っても防ぎようがない
丹念にチェックし潰していくしかない
463デフォルトの名無しさん (ワッチョイ 0a7f-EgBt)
2018/08/13(月) 16:55:21.28ID:B8BpXPvN0 あと宗教だの信仰だの言ってるけど、頑として自分の主張を曲げずにずっと言い続けてるってのは、結局のところそれは「別の宗教(信仰)」なのでは……?
464デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 17:01:08.48ID:XxWurSAu0 経験により積み重ねてきた手法を変えるというのは
それだけの説得力が必要なんだと思います
だから布教は大変なんでしょう
それだけの説得力が必要なんだと思います
だから布教は大変なんでしょう
465デフォルトの名無しさん (ワッチョイ 0a7f-EgBt)
2018/08/13(月) 17:04:05.65ID:B8BpXPvN0 >>464
俺はあなたの事を話してるんですが
俺はあなたの事を話してるんですが
466デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 17:13:09.68ID:XxWurSAu0 堅牢と言っているけども、何から堅牢かと言えば、自分自身が書く記述の誤りから堅牢になると言うこと
プログラムから見たら、グローバル変数だけをガードしてからと言ってバグフリーになるわけじゃない
また、Webサイトとして堅牢をうたうなら、それは外部からの攻撃に対しての話だし
今回提案された関数を使おうと、その点については無力のまま
この辺が改善されたら導入を考えようと思うんですが、如何ですか?
プログラムから見たら、グローバル変数だけをガードしてからと言ってバグフリーになるわけじゃない
また、Webサイトとして堅牢をうたうなら、それは外部からの攻撃に対しての話だし
今回提案された関数を使おうと、その点については無力のまま
この辺が改善されたら導入を考えようと思うんですが、如何ですか?
467デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 17:26:15.20ID:rjxAd60g0468デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/13(月) 17:47:45.32ID:XxWurSAu0469デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 17:54:32.31ID:rjxAd60g0470デフォルトの名無しさん (オイコラミネオ MMdf-++Qy)
2018/08/13(月) 18:22:02.91ID:6I003ZzcM >>461
注意すれば足りるっつうか、$_POST に値を代入しないようにコードを書くのがそんなに大変なの?
わざわざそういう設計をしなけりゃそんなことしないし、そうしてるなら必要だからしたんだろうから仕様に沿って使えばいいんじゃね?
ということなんじゃないの。
いや別に filter_input を使うなと言ってるのではないし使えばいいじゃんと思ってるが、$_POST をそこまで忌み嫌うのが意味分からんてことだよ。
それで疎にするとか持ち出してきて、$_POST の代わりに filter_input 使えば疎になるって何のこっちゃ?って感じだろう?
堅牢になるぜならまだ分かるが、疎って?ってさ。
疎にするって話ならと >>415 みたいな手法を持ち出してみたらそれには同意してもらえてるっぽいが、filter_input 使えば疎って話ではないだろってところは通じてないっぽいんだよな。
なんつうか、意識高い系なんだろうなって感じ。
注意すれば足りるっつうか、$_POST に値を代入しないようにコードを書くのがそんなに大変なの?
わざわざそういう設計をしなけりゃそんなことしないし、そうしてるなら必要だからしたんだろうから仕様に沿って使えばいいんじゃね?
ということなんじゃないの。
いや別に filter_input を使うなと言ってるのではないし使えばいいじゃんと思ってるが、$_POST をそこまで忌み嫌うのが意味分からんてことだよ。
それで疎にするとか持ち出してきて、$_POST の代わりに filter_input 使えば疎になるって何のこっちゃ?って感じだろう?
堅牢になるぜならまだ分かるが、疎って?ってさ。
疎にするって話ならと >>415 みたいな手法を持ち出してみたらそれには同意してもらえてるっぽいが、filter_input 使えば疎って話ではないだろってところは通じてないっぽいんだよな。
なんつうか、意識高い系なんだろうなって感じ。
471デフォルトの名無しさん (ワッチョイ 6bcc-2km2)
2018/08/13(月) 18:45:11.35ID:V6shauct0 チームで開発したことないんだろ、きっと
それか、一人で十分な開発規模
あるいはチームでテレパシーw
それか、一人で十分な開発規模
あるいはチームでテレパシーw
472デフォルトの名無しさん (ワッチョイ 1b5d-2km2)
2018/08/13(月) 18:55:06.81ID:LXDaPxOa0 スーパーグローバルとfilter_inputに関してはPHP特有だし多少議論があるのは理解する
それでもfilter_inputの方がベターだと思うが
しかしグローバル変数使うなが納得出来ないというのはお話にならない
それでもfilter_inputの方がベターだと思うが
しかしグローバル変数使うなが納得出来ないというのはお話にならない
473デフォルトの名無しさん (ワッチョイ 6376-IYYR)
2018/08/13(月) 19:31:08.20ID:Mozi/syi0 正直、ここしばらくフレームワークの世話になってたから
$_POSTもfilter_inputも明示的につかったことない
でも、ざっと見た限りではよっぽどトリッキーなことしない限り
filter_inputをつかわない理由はないな
$_POSTもfilter_inputも明示的につかったことない
でも、ざっと見た限りではよっぽどトリッキーなことしない限り
filter_inputをつかわない理由はないな
474デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/13(月) 19:59:59.97ID:rjxAd60g0 >>470
密とか疎に対して「結合」って使ったから良くなかったかもね。
結合というより、関係性かなぁ。
$_POST が変更可能な変数であり、かつどこでも使用できるため、使用箇所の関係性が密になってしまう。
値が変更になれば、当然後続が影響を受けるから密ね。
だから、http から直接値を引っ張ってくる filter_input 使用することで、どこで使用しても一律な値を保証できるよう関係性を疎に保とうよ。
って書きたかったんだわ。
結局、$_POST 使用するたびに、プロジェクト全体を grep するとかアホらしいので、新規にコード書くならまず $_POST は使わん。って程度の決意。
密とか疎に対して「結合」って使ったから良くなかったかもね。
結合というより、関係性かなぁ。
$_POST が変更可能な変数であり、かつどこでも使用できるため、使用箇所の関係性が密になってしまう。
値が変更になれば、当然後続が影響を受けるから密ね。
だから、http から直接値を引っ張ってくる filter_input 使用することで、どこで使用しても一律な値を保証できるよう関係性を疎に保とうよ。
って書きたかったんだわ。
結局、$_POST 使用するたびに、プロジェクト全体を grep するとかアホらしいので、新規にコード書くならまず $_POST は使わん。って程度の決意。
475デフォルトの名無しさん (オイコラミネオ MMdf-++Qy)
2018/08/14(火) 01:08:32.39ID:WPb6+388M ところで $_FILES や $_SESSION へのアクセスはどうやってるの?
476デフォルトの名無しさん (ワッチョイ b3b3-Qb5F)
2018/08/14(火) 07:14:07.57ID:fH8thKa+0 >>475
回避不能だねw
基本はフレームワークに閉じ込めて、自分では $_FILES とか $_SESSION は書かない。
で、どうしても自分で書かなきゃいけないときは、念のため grep するぐらいしか対応できない。
回避不能だねw
基本はフレームワークに閉じ込めて、自分では $_FILES とか $_SESSION は書かない。
で、どうしても自分で書かなきゃいけないときは、念のため grep するぐらいしか対応できない。
477デフォルトの名無しさん (ワッチョイ ffe9-hdxI)
2018/08/14(火) 13:40:34.53ID:Ph65nOXq0 追いついた。
単にグローバル変数を使わないようなコードを書きましょうねって話よね。
大昔BASICからCに移行したときに見た話かな。
単にグローバル変数を使わないようなコードを書きましょうねって話よね。
大昔BASICからCに移行したときに見た話かな。
478デフォルトの名無しさん (ワッチョイ bbe9-hE18)
2018/08/16(木) 11:14:39.29ID:wpZ5Mbd20 >>477
同じくくだらない話に今追いついたが
たったそれだけの話だよな
グローバル変数なんか感覚的・直感的に気持ち悪いと感じないようじゃ
いちいち細かい理由を説明しないと理解できない時点で
プログラマとして失格だと思う
趣味でやってて自分1人さえ理解できればよくて
メンテも一生自分1人でやるのなら好きにやりゃいいけどさ
同じくくだらない話に今追いついたが
たったそれだけの話だよな
グローバル変数なんか感覚的・直感的に気持ち悪いと感じないようじゃ
いちいち細かい理由を説明しないと理解できない時点で
プログラマとして失格だと思う
趣味でやってて自分1人さえ理解できればよくて
メンテも一生自分1人でやるのなら好きにやりゃいいけどさ
479デフォルトの名無しさん (オイコラミネオ MM0f-PVJR)
2018/08/16(木) 11:54:48.48ID:Z+yvFL8qM >>477,478
追い付いたというからにはそれなりに読んだんだろうに、それで単にグローバル変数を使う話に見えるならプログラマー失格だと思うよ
追い付いたというからにはそれなりに読んだんだろうに、それで単にグローバル変数を使う話に見えるならプログラマー失格だと思うよ
480デフォルトの名無しさん (ササクッテロレ Sp8f-qI6C)
2018/08/16(木) 12:07:23.80ID:Fm6q1Ws8p >>479
では解説どうぞ
では解説どうぞ
481デフォルトの名無しさん (ワッチョイ 0fe8-upR2)
2018/08/16(木) 12:21:40.67ID:w2Vsd24V0 >>479様がマウントを取りたいがために風呂敷を拡げ始めたと聞いてバックネット裏の席を確保しました
482デフォルトの名無しさん (オイコラミネオ MM0f-PVJR)
2018/08/16(木) 12:23:26.84ID:Z+yvFL8qM >>480
PHPの仕様として存在しPHP自体が用意してる参照が非推薦ともされていない情報に対する参照がグローバル(スーパーグローバル)というだけでなぜいけないのか?という話だよ。
自分で勝手グローバルを作ろうって話じゃない。
PHPの仕様として存在しPHP自体が用意してる参照が非推薦ともされていない情報に対する参照がグローバル(スーパーグローバル)というだけでなぜいけないのか?という話だよ。
自分で勝手グローバルを作ろうって話じゃない。
483デフォルトの名無しさん (ササクッテロレ Sp8f-qI6C)
2018/08/16(木) 12:35:32.96ID:Fm6q1Ws8p484デフォルトの名無しさん (アウアウカー Sa0f-Rbm/)
2018/08/16(木) 12:43:49.69ID:NlvTq02Da485デフォルトの名無しさん (ワッチョイ 0fe8-upR2)
2018/08/16(木) 12:43:50.15ID:w2Vsd24V0 人の話を聞かないまま退散したあのかたが蒸し返しで再登板しただけでした
解散
解散
486デフォルトの名無しさん (スププ Sdbf-V6hB)
2018/08/16(木) 13:02:04.93ID:qFV5giwld グローバル変数云々の話以外だと例えば
?foo[]=1&foo[][]=2&foo[][][]=3
の時の
htmlspecialchars($_GET['foo']);
はエラーになるわな
なのにis_set($_GET['foo']) や array_key_exists('foo', $_GET) 程度で満足してるウンココードだらけで
そういうウンココードが書籍にまで書かれててウンコが量産されてるのもphpの問題だな
htmlspecialchars(filter_input(INPUT_GET, 'foo'));
ならエラーにはならないが、現実的にはfilter_input()も直接は使わないわけで
フレームワークを通さずに書きたいなら$_GET['foo']よりはベターってだけ
フレームワークを使わない便利な関数を使わないって人ってのは
大した頭もないくせして車輪の再発明が大好きなんだろうとお察しする
絶対に一緒に仕事をしたくないタイプ
?foo[]=1&foo[][]=2&foo[][][]=3
の時の
htmlspecialchars($_GET['foo']);
はエラーになるわな
なのにis_set($_GET['foo']) や array_key_exists('foo', $_GET) 程度で満足してるウンココードだらけで
そういうウンココードが書籍にまで書かれててウンコが量産されてるのもphpの問題だな
htmlspecialchars(filter_input(INPUT_GET, 'foo'));
ならエラーにはならないが、現実的にはfilter_input()も直接は使わないわけで
フレームワークを通さずに書きたいなら$_GET['foo']よりはベターってだけ
フレームワークを使わない便利な関数を使わないって人ってのは
大した頭もないくせして車輪の再発明が大好きなんだろうとお察しする
絶対に一緒に仕事をしたくないタイプ
487デフォルトの名無しさん (ワッチョイ bbe9-hE18)
2018/08/16(木) 13:14:38.66ID:wpZ5Mbd20 register_globalsやmagic_quotes_gpcみたいなPHPの黒歴史や
伝説の名言「例えば、PHPを避ける」なんかを知らない人も
増えてるんだろうなと思う
今から10数年前のPHP4を勉強してた頃の自分なら
$_GETや$_POSTを直接使って何が悪いの?と言ってた筈
プログラミングの世界は1年前の自分ですら赤の他人だし
いつか理解できる日が来るといいね
理解できなくても食うに困らない稼ぎがあるなら
それはそれでいいんじゃない?(周りの人は迷惑だけどw)
伝説の名言「例えば、PHPを避ける」なんかを知らない人も
増えてるんだろうなと思う
今から10数年前のPHP4を勉強してた頃の自分なら
$_GETや$_POSTを直接使って何が悪いの?と言ってた筈
プログラミングの世界は1年前の自分ですら赤の他人だし
いつか理解できる日が来るといいね
理解できなくても食うに困らない稼ぎがあるなら
それはそれでいいんじゃない?(周りの人は迷惑だけどw)
488デフォルトの名無しさん (アウアウカー Sa0f-Rbm/)
2018/08/16(木) 13:24:30.70ID:NlvTq02Da PHPの開発方針がめちゃくちゃ保守的だってことも知らないのだろう
https://externals.io/message/100087
php-internalsでも$_POSTや$_GETをimmutableにしないのはあくまで後方互換性が崩れるからだとしか言われてない($_ENVや$_SERVERはまた別だが)
スーパーグローバルの(スーパーグローバルの書き換えとは独立した)immutable版があればいいのにと思う
https://externals.io/message/100087
php-internalsでも$_POSTや$_GETをimmutableにしないのはあくまで後方互換性が崩れるからだとしか言われてない($_ENVや$_SERVERはまた別だが)
スーパーグローバルの(スーパーグローバルの書き換えとは独立した)immutable版があればいいのにと思う
489デフォルトの名無しさん (スププ Sdbf-V6hB)
2018/08/16(木) 14:08:54.52ID:qFV5giwld PHPしか書いた事ないやつだとimmutableという概念を知らない可能性もありそう
そもそもさ
?foo=bar
$_GET['foo'] = 'hage';
var_dump($_GET['foo']); // string(4) "hage"
var_dump(filter_input(INPUT_GET, 'foo')); // string(3) "bar"
↑これ理解できてるんだろうか?
あと素朴な疑問だが
$_GETや$_POSTを直接使ってるやつってユニットテストはどうやってんの?
ブラウザで表示させて実際に値を入力してテストとかやってそうw
そもそもさ
?foo=bar
$_GET['foo'] = 'hage';
var_dump($_GET['foo']); // string(4) "hage"
var_dump(filter_input(INPUT_GET, 'foo')); // string(3) "bar"
↑これ理解できてるんだろうか?
あと素朴な疑問だが
$_GETや$_POSTを直接使ってるやつってユニットテストはどうやってんの?
ブラウザで表示させて実際に値を入力してテストとかやってそうw
490デフォルトの名無しさん (ワッチョイ 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の前者って使うことないものなの?
590デフォルトの名無しさん (ワッチョイ 955b-zBrR)
2018/09/03(月) 11:36:23.62ID:Shssq38w0 >>587
ネタにマジレスしとくと
dieの発音は「ディエ」じゃなく「ダイ」だし
exitとdieは等価なので、エラーログに残るとかは嘘
exitの方が一般的だとは思うが好きな方を使えばOK
あくまで予想だが、die()はperl言語出身者に配慮して作ったんじゃなかろうか
ネタにマジレスしとくと
dieの発音は「ディエ」じゃなく「ダイ」だし
exitとdieは等価なので、エラーログに残るとかは嘘
exitの方が一般的だとは思うが好きな方を使えばOK
あくまで予想だが、die()はperl言語出身者に配慮して作ったんじゃなかろうか
591デフォルトの名無しさん (スププ Sd43-Oaw6)
2018/09/03(月) 12:01:10.60ID:Nk9MF4uYd height
align
allow
deny
web系に関わってるのにこういう単語の読み方がおかしな人の言う事は疑ってかかった方がいいという経験則
align
allow
deny
web系に関わってるのにこういう単語の読み方がおかしな人の言う事は疑ってかかった方がいいという経験則
592デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/03(月) 12:08:27.54ID:lQhKIzFA0 >>590
すまん。perlの関数と勘違いしてた…
PHPにおいてはexitもdieも同じらしい。
dieの引数も標準出力されたw
プログラムは読み手に意図を伝えた方が良い場合もあるから、
exit(1)よりdieの方が致命的エラーなのかなと思わせることはできるかな。
しかし標準出力されるんじゃあ使えないな。
嘘こいてすまん。
すまん。perlの関数と勘違いしてた…
PHPにおいてはexitもdieも同じらしい。
dieの引数も標準出力されたw
プログラムは読み手に意図を伝えた方が良い場合もあるから、
exit(1)よりdieの方が致命的エラーなのかなと思わせることはできるかな。
しかし標準出力されるんじゃあ使えないな。
嘘こいてすまん。
593デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/03(月) 12:11:22.59ID:lQhKIzFA0594デフォルトの名無しさん (ワッチョイ 955b-zBrR)
2018/09/03(月) 12:27:19.50ID:Shssq38w0 >>591
ハイト
アライン
アラウ
ディナイ
どれも高校入試の時の発音問題頻出単語(要するに中学レベルの単語)だったような遠い20年以上前の記憶
うんざりする程しつこく教えてくれた当時の英語担任に感謝しないといかん
ハイト
アライン
アラウ
ディナイ
どれも高校入試の時の発音問題頻出単語(要するに中学レベルの単語)だったような遠い20年以上前の記憶
うんざりする程しつこく教えてくれた当時の英語担任に感謝しないといかん
595デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/03(月) 12:40:39.44ID:lQhKIzFA0 アラウか…
何かそこだけ妙にネイティブだな。
アローですまん…
何かそこだけ妙にネイティブだな。
アローですまん…
596デフォルトの名無しさん (ワッチョイ 0b81-tpL7)
2018/09/03(月) 12:41:40.31ID:wBpew+1c0 本来ネイティブの発音に合わせて読むべきなんだろうけど、
アラウやディナイと発音しても、日本人相手だと通じなかったりする
アラウやディナイと発音しても、日本人相手だと通じなかったりする
597デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/03(月) 12:44:28.91ID:lQhKIzFA0 アラウはちょっとなあ…
それ言い出すとonlyはオウンリイだし。
日頃はカタカナ英語でいいです。
それ言い出すとonlyはオウンリイだし。
日頃はカタカナ英語でいいです。
598デフォルトの名無しさん (スププ Sd43-Oaw6)
2018/09/03(月) 12:55:17.57ID:Nk9MF4uYd ネタなのかマジなのかわからなくなってきたけど正解はもちろん>>594
allow,denyをアローデニーと読んでいた自称サーバー管理者が設定したウンコみたいなサーバーに泣かされて以来トラウマです
そして今なおallow,denyという単語を目にするという事はそれ即ち、去年末にサポートが終わったApache2.2系をまだ使い続けてるというトラウマの再来になる可能性がががが
allow,denyをアローデニーと読んでいた自称サーバー管理者が設定したウンコみたいなサーバーに泣かされて以来トラウマです
そして今なおallow,denyという単語を目にするという事はそれ即ち、去年末にサポートが終わったApache2.2系をまだ使い続けてるというトラウマの再来になる可能性がががが
599デフォルトの名無しさん (オイコラミネオ MM21-Ngx2)
2018/09/03(月) 13:42:47.41ID:Q3fOl+JcM warning はどうよ
600デフォルトの名無しさん (ワッチョイ 955b-zBrR)
2018/09/03(月) 14:06:21.30ID:Shssq38w0 ウォーニング
まぁ会社によって方言みたいなのはあるよね
内心そうじゃないだろ…(ため息)と思いつつ相手に合わせる事も大事
まぁ会社によって方言みたいなのはあるよね
内心そうじゃないだろ…(ため息)と思いつつ相手に合わせる事も大事
601デフォルトの名無しさん (ワッチョイ 5de9-zBrR)
2018/09/03(月) 14:10:12.54ID:fNzMywLO0 今の所全問正解っぽくて安心した
falseをファルスと読む人を見る度に
パルスのファルシのルシがコクーンでパージを思い出す
falseをファルスと読む人を見る度に
パルスのファルシのルシがコクーンでパージを思い出す
602デフォルトの名無しさん (ワッチョイ 0bb8-Wsjv)
2018/09/03(月) 14:18:24.08ID:bh6+crPg0 アリグンとかデニーとかいってるならヘイグヒトぐらいにしないと
603デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/03(月) 14:53:06.39ID:lQhKIzFA0 あんまりこだわると意識高い系とか嫌味を言われそうだし、
まあわかればいいやね…
ここじゃないかもだかど、どっかのPHPスレで
エチョーと書いたらウケたよ。
まあわかればいいやね…
ここじゃないかもだかど、どっかのPHPスレで
エチョーと書いたらウケたよ。
604デフォルトの名無しさん (ワッチョイ 0b81-tpL7)
2018/09/03(月) 14:55:19.36ID:wBpew+1c0 >>603
コーヒー吹くとこだったぞ
コーヒー吹くとこだったぞ
605デフォルトの名無しさん (アウアウカー Sa61-lQkG)
2018/09/03(月) 15:27:39.33ID:/uGmskjCa allowというかau音はアゥからオゥに寄った側に聞こえるからカタカナ英語的にはアロゥはアリかなと思う
arrowと区別したいときはアラゥと言うべきだと思うけど
デニーとかアリグンは流石にねーなw
arrowと区別したいときはアラゥと言うべきだと思うけど
デニーとかアリグンは流石にねーなw
606デフォルトの名無しさん (ワッチョイ 23d2-6oUK)
2018/09/03(月) 16:58:16.51ID:MppWbPja0 ini → イニ? アイエヌアイ?
array → アレイ? アライ?
あと正直str系の関数が読めない
strlen strpos当たりはわかるけど
stripos strrpos strripos
あたり
array → アレイ? アライ?
あと正直str系の関数が読めない
strlen strpos当たりはわかるけど
stripos strrpos strripos
あたり
607デフォルトの名無しさん (ワッチョイ 955b-zBrR)
2018/09/03(月) 17:56:38.19ID:Shssq38w0 array:アレイ
ini:initializationの略
stripos:string case-insensitive postionの略だと勝手に思ってる
strrpos:string reverse positionの略だと勝手に思ってる
かっこよく読みたいなら元の単語を略さずに読めばいいんだろうが
実用的にはアルファベットをそのまま読めばいいじゃなかろうか
ini:initializationの略
stripos:string case-insensitive postionの略だと勝手に思ってる
strrpos:string reverse positionの略だと勝手に思ってる
かっこよく読みたいなら元の単語を略さずに読めばいいんだろうが
実用的にはアルファベットをそのまま読めばいいじゃなかろうか
608デフォルトの名無しさん (ワッチョイ b58a-zBrR)
2018/09/03(月) 19:06:04.00ID:w8msLsZZ0 if
イフ
then
ゼン?
else
エルス?
true
トゥルー?
false
フォールス?
try
トライ?
throw
スロー?
catch
キャッチ?
イフ
then
ゼン?
else
エルス?
true
トゥルー?
false
フォールス?
try
トライ?
throw
スロー?
catch
キャッチ?
609デフォルトの名無しさん (ワッチョイ 1d9f-J7KC)
2018/09/04(火) 00:34:18.87ID:3EnQXiZU0610デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/04(火) 11:43:27.54ID:2slzjYMb0 routes.phpとかは?
アプリのリダイレクトなのか、
apacheのリダイレクトなのか切り分けていくと良いのでは。
アプリのリダイレクトなのか、
apacheのリダイレクトなのか切り分けていくと良いのでは。
611デフォルトの名無しさん (ワッチョイ db9e-J7KC)
2018/09/04(火) 21:34:32.07ID:8BTVVQRQ0612デフォルトの名無しさん (ワッチョイ 0b80-4Jnz)
2018/09/04(火) 22:55:22.87ID:JkSql3w10 >include('/path/file.txt');
/ から始まっているから、何かからの絶対パスかな?
プロジェクトルートか、公開サイトのルートからの絶対パスかな?
/ から始まっているから、何かからの絶対パスかな?
プロジェクトルートか、公開サイトのルートからの絶対パスかな?
613デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/04(火) 23:04:14.00ID:2slzjYMb0 上のは言ってみればfile://になるんじゃないの? 違う?
614デフォルトの名無しさん (ワッチョイ a3d0-hHnA)
2018/09/05(水) 16:46:47.73ID:dwWFM3zt0 公式のmail()とmb_send_mail()のページを見ていたのですが、
mail()のsubjectは表題、messageはメッセージ、
mb_send_mail()のsubjectは件名、messageは本文となっていました。
これは何かが違うということでしょうか。
くだらない質問と思いますが、よろしくお願いします。
mail()のsubjectは表題、messageはメッセージ、
mb_send_mail()のsubjectは件名、messageは本文となっていました。
これは何かが違うということでしょうか。
くだらない質問と思いますが、よろしくお願いします。
615デフォルトの名無しさん (ワッチョイ 0be8-Bzg2)
2018/09/05(水) 17:13:31.91ID:eC5bTWUj0 全く同じ意味ですが異なります
この事に気をつけて厳密に取捨選択し、
どっちでもいいから適当に使いましょう
この事に気をつけて厳密に取捨選択し、
どっちでもいいから適当に使いましょう
616デフォルトの名無しさん (ワッチョイ 5b9f-SMhC)
2018/09/05(水) 17:23:40.98ID:HJ2kcLma0 mailはエンコードしてくれないから自分でしてから呼び出す。
mbはエンコードしてくれる。
というか、ググれよ!
mbはエンコードしてくれる。
というか、ググれよ!
617デフォルトの名無しさん (ワッチョイ 65b3-zBrR)
2018/09/05(水) 17:28:21.76ID:+CD9GwZX0 どっちの関数も直接使うには勝手が悪いので、さっさと基礎理解してライブラリ使うようにしましょう。
618デフォルトの名無しさん (ワッチョイ a3d0-hHnA)
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でも値が取れるのですが、そういうもんですか?
$_GETを使うのが普通だと思うのですが
$_POSTでも値が取れるのですが、そういうもんですか?
620デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/06(木) 17:39:08.61ID:bmlthp5L0 普通だけど普通じゃなくなって来たから、filter_input使う。
このスレの上の方にも出てる。
このスレの上の方にも出てる。
621デフォルトの名無しさん (ワッチョイ ae81-7GfT)
2018/09/06(木) 19:14:57.47ID:xdo6cDUj0622デフォルトの名無しさん (ワッチョイ 969e-O+me)
2018/09/06(木) 20:05:38.46ID:kzkzi/Yy0623デフォルトの名無しさん (ワッチョイ 569f-vdZN)
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でサブミットしてんのになんでそんなことがおきんの?
というのが質問の主旨と理解した
低学歴知恵遅れがその質問をどう解釈したかは知らない
HTTPプロトコルではcontent bodyの部分は空になる
そういう仕様だからな
つまり通常postで取得できる部分はからっぽ
methodをpostでサブミットしてるなら
そういう状況はHTTPプロトコルでも十分にありえる
uriにurlエンコードされた文字列が含まれる状況でpostしたケースならありえるということになる
ちなみにオレはスクリプトの変数にその値がどう格納されるかは知らない
質問してるヤツは
getでサブミットしてんのになんでそんなことがおきんの?
というのが質問の主旨と理解した
低学歴知恵遅れがその質問をどう解釈したかは知らない
625デフォルトの名無しさん (ワッチョイ ae81-7GfT)
2018/09/06(木) 21:39:08.51ID:xdo6cDUj0626デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/06(木) 22:24:24.23ID:bmlthp5L0627デフォルトの名無しさん (ワッチョイ 8b80-f65Y)
2018/09/06(木) 22:27:25.22ID:64ZwjQvb0 はい低学歴知恵遅れ図星
ごまかそうとしても
もうバレてるからな
分かりやすいわ。。。
ごまかそうとしても
もうバレてるからな
分かりやすいわ。。。
628デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/06(木) 22:52:05.75ID:bmlthp5L0 正解です。でも知恵遅れはないよ。
629デフォルトの名無しさん (ワッチョイ ae81-7GfT)
2018/09/06(木) 22:55:48.48ID:xdo6cDUj0 冗談は冗談が通じる相手にしないと
この質問者はPOSTとGETについて理解できていないんだから
冗談だとは受けとってないと思うぞ
この質問者はPOSTとGETについて理解できていないんだから
冗談だとは受けとってないと思うぞ
630デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/06(木) 22:59:57.65ID:bmlthp5L0 冗談とは言え、とりあえずパケットキャプチャしてみたら?に行き着いて欲しかったんだけどな。
その後、フレームワークなりの変数の検査するとか。
やり方を切り分けて絞り込んでいかないといけない。
その後、フレームワークなりの変数の検査するとか。
やり方を切り分けて絞り込んでいかないといけない。
631デフォルトの名無しさん (ワッチョイ 7ad0-O+me)
2018/09/07(金) 09:44:56.47ID:9ghtkfrV0 PHPを始めたのですが分からないことがあるので教えてください。
https://qiita.com/mpyw/items/2f9955db1c02eeef43ea
上記ウェブサイトに次のコードがあるのですが、配列?を使用する理由を教えてください。
if (!isset($_POST['email'])) {
$errors[] = 'Eメールアドレスが送信されていません';
} elseif ($_POST['email'] === '') {
$errors[] = 'Eメールアドレスが入力されていません';
}
よろしくお願いします。
https://qiita.com/mpyw/items/2f9955db1c02eeef43ea
上記ウェブサイトに次のコードがあるのですが、配列?を使用する理由を教えてください。
if (!isset($_POST['email'])) {
$errors[] = 'Eメールアドレスが送信されていません';
} elseif ($_POST['email'] === '') {
$errors[] = 'Eメールアドレスが入力されていません';
}
よろしくお願いします。
632デフォルトの名無しさん (ワッチョイ bbb3-fTNn)
2018/09/07(金) 10:03:27.93ID:0+aYiLfb0 >>631
この例文の中では特に意味はない。post したページに戻る際、エラーをまとめて送る時に使う。
この例文の中では特に意味はない。post したページに戻る際、エラーをまとめて送る時に使う。
633631 (ワッチョイ 7ad0-O+me)
2018/09/07(金) 10:16:38.86ID:9ghtkfrV0634デフォルトの名無しさん (ワッチョイ 7ad0-O+me)
2018/09/09(日) 16:54:11.51ID:kcIkPUJb0 HTMLとPHPを使ってメールを送信するため、次のように書いたのですが、良いか悪いか判断ができません。
右も左も分からないため、どのようなことでも構いませんのでアドバイスをください。
メールは【入力】→【確認】→【送信】の流れで送信されます。
どうか、よろしくお願いします。
【input.php】
https://ideone.com/cEGHAA
↓
【check.php】
https://ideone.com/R9GueN
↓
【thanks.php】
https://ideone.com/R2mR1b
右も左も分からないため、どのようなことでも構いませんのでアドバイスをください。
メールは【入力】→【確認】→【送信】の流れで送信されます。
どうか、よろしくお願いします。
【input.php】
https://ideone.com/cEGHAA
↓
【check.php】
https://ideone.com/R9GueN
↓
【thanks.php】
https://ideone.com/R2mR1b
635デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/10(月) 09:10:57.34ID:LEZi3nV80 form.php
confirm.php
send.php
こうすると良いと思う
confirm.php
send.php
こうすると良いと思う
636634 (ワッチョイ 7ad0-O+me)
2018/09/10(月) 14:59:46.15ID:Jh3v7l2E0637デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/10(月) 20:03:31.22ID:LEZi3nV80 ネタにマジレスしてるんで、仕方ないからチラ見してみた。
このスレのダメな例の集大成みたいだな。
受け取った値の長さに制限を掛けて、巨大データを受け入れないようにする。
HTML側でもmaxlengthやtype="email"やrequiredを使うと気休めになるかも。
PHP側でも長さをチェックする。
filter_inputの使い方が違う。
受け取った価をあえて$_SESSIONに入れてどうする?
それは使わずに$subjectとかに代入する。
mail関数に入れるデータはエンコードするか、mb_send_mailを使う。
あとは動いてるならいいんじゃない?
このスレのダメな例の集大成みたいだな。
受け取った値の長さに制限を掛けて、巨大データを受け入れないようにする。
HTML側でもmaxlengthやtype="email"やrequiredを使うと気休めになるかも。
PHP側でも長さをチェックする。
filter_inputの使い方が違う。
受け取った価をあえて$_SESSIONに入れてどうする?
それは使わずに$subjectとかに代入する。
mail関数に入れるデータはエンコードするか、mb_send_mailを使う。
あとは動いてるならいいんじゃない?
638デフォルトの名無しさん (オイコラミネオ MM53-eFvF)
2018/09/10(月) 21:25:32.24ID:AQjUY5xrM 勉強のためならいいけどガチでサービスに導入とかはしない方がいいと思うよ
既存のサービス使った方が絶対に安全
既存のサービス使った方が絶対に安全
639デフォルトの名無しさん (ワッチョイ 532a-5rD0)
2018/09/11(火) 12:49:51.36ID:swAVBRLl0 class内のプロパティに関数って指定できないでしょうか?
class Test {
public $date = date("Y-m-d");
}
というイメージです。これを記述しても
Parse error: syntax error, unexpected '(', expecting ',' or ';'
というエラーが出るので無理だと思っているのですが、
できる方法があれば教えてください。
class Test {
public $date = date("Y-m-d");
}
というイメージです。これを記述しても
Parse error: syntax error, unexpected '(', expecting ',' or ';'
というエラーが出るので無理だと思っているのですが、
できる方法があれば教えてください。
640デフォルトの名無しさん (ワッチョイ 8723-eFvF)
2018/09/11(火) 13:07:18.10ID:B2tEflKb0 やり方はいろいろあるが、一般的にはコンストラクタの中で代入するんじゃないかな
641デフォルトの名無しさん (オイコラミネオ MM53-eFvF)
2018/09/11(火) 13:07:35.88ID:7DNsPvsqM やり方はいろいろあるが、一般的にはコンストラクタの中で代入するんじゃないかな
642634 (ワッチョイ 7ad0-O+me)
2018/09/11(火) 17:53:48.50ID:sA/7deNB0 >>637
アドバイスありがとうございます。
次を課題に学習を進めたいと思います。
・HTMLとPHPで値の長さに制限を掛ける
・filter_inputの使い方を理解する
mail関数に関してもmb_send_mail関数と合わせて考え直します。
セッション変数については入力されたデータを持ちまわる体で使用しようと考えているのですが、type="hidden"の方が良いのでしょうか。
今は自身の理解が不足しているので、もう一度最初から取り組みます。
アドバイスありがとうございました。
>>638
アドバイスありがとうございます。
やはり既存のサービスの方が安全ですか。
今は自身のために勉強したいと思います。
アドバイスありがとうございました。
アドバイスありがとうございます。
次を課題に学習を進めたいと思います。
・HTMLとPHPで値の長さに制限を掛ける
・filter_inputの使い方を理解する
mail関数に関してもmb_send_mail関数と合わせて考え直します。
セッション変数については入力されたデータを持ちまわる体で使用しようと考えているのですが、type="hidden"の方が良いのでしょうか。
今は自身の理解が不足しているので、もう一度最初から取り組みます。
アドバイスありがとうございました。
>>638
アドバイスありがとうございます。
やはり既存のサービスの方が安全ですか。
今は自身のために勉強したいと思います。
アドバイスありがとうございました。
643デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/11(火) 19:04:42.02ID:Of5zYKw20644デフォルトの名無しさん (ワッチョイ 96d5-tygy)
2018/09/11(火) 20:24:28.80ID:NY6FXi0j0 このくらいのフォームなら hidden の方がいいんじゃね。
セッションでなんかメリットある?
セッションでなんかメリットある?
645デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/11(火) 21:33:19.08ID:Of5zYKw20 使い方を間違えてるから正した方が良いと思っただけ
646634 (ワッチョイ 7ad0-O+me)
2018/09/12(水) 08:16:38.34ID:uWMSldyR0647デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/12(水) 08:31:17.86ID:t1WfAWi+0 >>646
う、うん。
でも一番はそこじゃないんだな。
スーパーグローバル変数を書き換えるべきではないのに、
そらをしてしまっているところね。
そもそもスーパーグローバルを使わないためのfilter_inputだから。
最初は誰でもそんなもんだから頑張ってね。
う、うん。
でも一番はそこじゃないんだな。
スーパーグローバル変数を書き換えるべきではないのに、
そらをしてしまっているところね。
そもそもスーパーグローバルを使わないためのfilter_inputだから。
最初は誰でもそんなもんだから頑張ってね。
648634 (ワッチョイ 7ad0-O+me)
2018/09/12(水) 08:36:21.52ID:uWMSldyR0649デフォルトの名無しさん (ワッチョイ 5e92-fTNn)
2018/09/12(水) 11:26:01.33ID:/jhmkHwQ0 どうしてもわからないので質問お願いします。
私はWindows7でxamppを使いPHPを動かしています。
類似画像の比較のため「libpuzzle」というライブラリを使いたいのですが、インストールのやり方がわかりません。
インストールが簡単とのことで下記のページを参考にしようと思っているのですが、何をやっているのかわかりません。
https://fei-yen.jp/maya/wordpress/blog/2011/05/05/php%E3%81%A7%E7%94%BB%E5%83%8F%E3%81%AE%E9%A1%9E%E4%BC%BC%E5%BA%A6%E5%88%A4%E5%AE%9A%E3%81%AE%E3%81%A7%E3%81%8D%E3%82%8B%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA/
ひとまず「libpuzzle-0.11.tar.bz2」はダウンロードしました。
私はWindows7でxamppを使いPHPを動かしています。
類似画像の比較のため「libpuzzle」というライブラリを使いたいのですが、インストールのやり方がわかりません。
インストールが簡単とのことで下記のページを参考にしようと思っているのですが、何をやっているのかわかりません。
https://fei-yen.jp/maya/wordpress/blog/2011/05/05/php%E3%81%A7%E7%94%BB%E5%83%8F%E3%81%AE%E9%A1%9E%E4%BC%BC%E5%BA%A6%E5%88%A4%E5%AE%9A%E3%81%AE%E3%81%A7%E3%81%8D%E3%82%8B%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA/
ひとまず「libpuzzle-0.11.tar.bz2」はダウンロードしました。
650デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/12(水) 12:09:08.51ID:t1WfAWi+0 そのURLを見たけど、tarファイルを展開してLinuxでコンパイルしてるよね。
この時点でWindowsはまったく該当しないので見てもわかるわけない。
Windows用のコンパイル済みバイナリをインストールするのが正解かと。
それか、そのファイルをWindowsで自前コンパイルするか。
この時点でWindowsはまったく該当しないので見てもわかるわけない。
Windows用のコンパイル済みバイナリをインストールするのが正解かと。
それか、そのファイルをWindowsで自前コンパイルするか。
651デフォルトの名無しさん (ワッチョイ 5e92-fTNn)
2018/09/12(水) 12:24:56.89ID:/jhmkHwQ0 ありがとうございます。
いくつか調べてlibpuzzleがC言語で作られているはわかりました。
Windowsだとsoファイルではなくdllファイルで動かすみたいだから
libpuzzle.cをコンパイルしてdllにする、という感じなのでしょうか?
いくつか調べてlibpuzzleがC言語で作られているはわかりました。
Windowsだとsoファイルではなくdllファイルで動かすみたいだから
libpuzzle.cをコンパイルしてdllにする、という感じなのでしょうか?
652デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/12(水) 12:36:07.34ID:t1WfAWi+0 はい。恐らく…
653デフォルトの名無しさん (ワッチョイ 5e92-fTNn)
2018/09/12(水) 14:11:08.65ID:/jhmkHwQ0 C言語は…、ちょっというかさっぱりわからないですね…。
GitHubでlibpuzzleの解凍されたフォルダが有りました。
https://github.com/jedisct1/libpuzzle
もし参考になれば
GitHubでlibpuzzleの解凍されたフォルダが有りました。
https://github.com/jedisct1/libpuzzle
もし参考になれば
654デフォルトの名無しさん (ワッチョイ 96d5-tygy)
2018/09/12(水) 16:38:39.22ID:bjh9HqnE0 >>647
そこで言ってるスーパーグローバルの書き換えって $_SESSION のこと?
そこで言ってるスーパーグローバルの書き換えって $_SESSION のこと?
655デフォルトの名無しさん (ワッチョイ 569f-vdZN)
2018/09/12(水) 19:23:24.37ID:t1WfAWi+0 >>654
そう。
言われてハッとしたんだが、もしかして俺すげー嘘ついてる?
フレームワーク無しなら$_SESSIONに代入せざるを得ないか?
何かもう忘れたわ。
適当な記憶でたまに嘘ぶっこくから少し自重する。
そう。
言われてハッとしたんだが、もしかして俺すげー嘘ついてる?
フレームワーク無しなら$_SESSIONに代入せざるを得ないか?
何かもう忘れたわ。
適当な記憶でたまに嘘ぶっこくから少し自重する。
656デフォルトの名無しさん (ワッチョイ ae81-7GfT)
2018/09/12(水) 19:28:11.72ID:WDc70fCa0 面白い議論だと思ってたんだけど
できれば続けてくださいな
セッションは使用禁止にすべきかどうかまで
できれば続けてくださいな
セッションは使用禁止にすべきかどうかまで
657デフォルトの名無しさん (ワッチョイ 96d5-tygy)
2018/09/12(水) 21:31:55.13ID:bjh9HqnE0658デフォルトの名無しさん (ワッチョイ 5e92-fTNn)
2018/09/12(水) 23:14:04.91ID:/jhmkHwQ0 libpuzzleはインストールが困難と判断したので、
他のものを調べたところ、Perceptual Hashが良さそうだったので変更しました。
コンポーザーをダンロードして、インストールはできました。
ですが、実行すると「Uncaught Error: Class 'Jenssegers\ImageHash\ImageHash' not found」といったように認識されません。
Windows7のXAMPPだとuseの書き方が違うのでしょうか?
ソースは以下の通りです。
use Jenssegers\ImageHash\ImageHash;
use Jenssegers\ImageHash\Implementations\DifferenceHash;
$hasher = new ImageHash(new DifferenceHash());
$hash = $hasher->hash('path/to/image.jpg');
echo $hash;
// or
echo $hash->toHex();
他のものを調べたところ、Perceptual Hashが良さそうだったので変更しました。
コンポーザーをダンロードして、インストールはできました。
ですが、実行すると「Uncaught Error: Class 'Jenssegers\ImageHash\ImageHash' not found」といったように認識されません。
Windows7のXAMPPだとuseの書き方が違うのでしょうか?
ソースは以下の通りです。
use Jenssegers\ImageHash\ImageHash;
use Jenssegers\ImageHash\Implementations\DifferenceHash;
$hasher = new ImageHash(new DifferenceHash());
$hash = $hasher->hash('path/to/image.jpg');
echo $hash;
// or
echo $hash->toHex();
659デフォルトの名無しさん (ワッチョイ 5e92-fTNn)
2018/09/12(水) 23:14:32.81ID:/jhmkHwQ0660デフォルトの名無しさん (ワッチョイ 9776-ebpV)
2018/09/13(木) 00:39:50.34ID:Mmakf2Wk0 ちゃんとautoload.phpをrequireしてるか?
661デフォルトの名無しさん (ワッチョイ bf9f-ID1G)
2018/09/13(木) 07:41:47.23ID:WElsz8IU0662デフォルトの名無しさん (ワッチョイ 17b3-+ow7)
2018/09/13(木) 08:13:46.95ID:1dHQYyj40 投稿フォームは、確認画面なくすと session 使う必要がなくて、スマートな実装になるよ。
そもそも確認が必要な内容かどうか検討してみると良いです。
確認が必須なら、モーダルで一旦表示させて投稿させると UX も向上して happy。
ただ、画面はちょっとややこしくなるけどねぇ。。。
そもそも確認が必要な内容かどうか検討してみると良いです。
確認が必須なら、モーダルで一旦表示させて投稿させると UX も向上して happy。
ただ、画面はちょっとややこしくなるけどねぇ。。。
663デフォルトの名無しさん (ワッチョイ 7f92-+ow7)
2018/09/13(木) 09:25:37.97ID:Rrxby3/D0664デフォルトの名無しさん (ワッチョイ 9fd0-cC+K)
2018/09/13(木) 17:07:19.50ID:yxnhKk7t0 >>634のfilter_inputって使い方間違ってるん?(´・ω・`)
665デフォルトの名無しさん (ワッチョイ bf9f-ID1G)
2018/09/13(木) 18:13:28.78ID:WElsz8IU0 美しさはともかく、間違ってはいない。
勘違いしていたのは俺…
申し訳ないです。
勘違いしていたのは俺…
申し訳ないです。
666デフォルトの名無しさん (スッップ Sdbf-t6RF)
2018/09/14(金) 11:13:27.37ID:LYVyvVvXd 提唱者が逃げ出したから、
こういう時にどう使ったら良いか
教えてくれない
こういう時にどう使ったら良いか
教えてくれない
667デフォルトの名無しさん (ワッチョイ 9fd0-cC+K)
2018/09/15(土) 11:16:20.77ID:h4tGgfju0 ユーザー入力を画面上に表示する場合、どんな時でもhtmlspecialchars関数を使った方がいいんですか !?
668デフォルトの名無しさん (ワッチョイ 17b3-+ow7)
2018/09/15(土) 11:29:57.48ID:4K9/kzuG0 >>667
個人的にはここの説明が納得しやすかった
https://qiita.com/mpyw/items/19e6fed835ccdbcb0d6d
画面表示で Content-Type: text/plain の時は、当然だけど必要無い。
text/html な中で、text/plain はちょっと思いつかなかった。
だれかフォローよろしくw
個人的にはここの説明が納得しやすかった
https://qiita.com/mpyw/items/19e6fed835ccdbcb0d6d
画面表示で Content-Type: text/plain の時は、当然だけど必要無い。
text/html な中で、text/plain はちょっと思いつかなかった。
だれかフォローよろしくw
669デフォルトの名無しさん (ワッチョイ 97b8-Moip)
2018/09/16(日) 09:00:18.99ID:yeSA5Nar0 考えられるパターンとしては
1.入力値の検証はせずそのまま出力する
2.入力値の検証はせずhtmlspecialcharsを使う
3.入力値の検証→問題はないのでそのまま出力
4.入力値の検証→問題なのでhtmlspecialcharsを使う
5.入力値の検証→問題はないがhtmlspecialcharsを使う
6.入力値を出力前に無害化してそのまま出力
1は当然やっちゃだめ
6は元の入力値と異なる可能性が生まれるので使うなら重要でない箇所限定(非推奨)
5は冗長だが5が一番おすすめ
1.入力値の検証はせずそのまま出力する
2.入力値の検証はせずhtmlspecialcharsを使う
3.入力値の検証→問題はないのでそのまま出力
4.入力値の検証→問題なのでhtmlspecialcharsを使う
5.入力値の検証→問題はないがhtmlspecialcharsを使う
6.入力値を出力前に無害化してそのまま出力
1は当然やっちゃだめ
6は元の入力値と異なる可能性が生まれるので使うなら重要でない箇所限定(非推奨)
5は冗長だが5が一番おすすめ
670デフォルトの名無しさん (ワッチョイ 9f80-bWaM)
2018/09/16(日) 19:43:02.43ID:Fs79WbqO0 phpの質問じゃないかもしれないんだけど
URLから指定のディレクトリにアクセスした時に
ファイル名が何だろうと指定のファイルを参照させることって出来ますか?
hoge.com/rand/test.txt
hoge.com/rand/aaa.jpg
randディレクトリにアクセスしたら
ファイルの有無に関わらず
hoge.com/rand/index.phpを参照させて
test.txtやaaa.jpgのURL文字列に応じて
phpが振る舞いを変えてコンテンツを表示させたいです
そんなこと可能でしょうか?
URLから指定のディレクトリにアクセスした時に
ファイル名が何だろうと指定のファイルを参照させることって出来ますか?
hoge.com/rand/test.txt
hoge.com/rand/aaa.jpg
randディレクトリにアクセスしたら
ファイルの有無に関わらず
hoge.com/rand/index.phpを参照させて
test.txtやaaa.jpgのURL文字列に応じて
phpが振る舞いを変えてコンテンツを表示させたいです
そんなこと可能でしょうか?
671デフォルトの名無しさん (ワッチョイ 9f80-bWaM)
2018/09/16(日) 19:57:17.91ID:Fs79WbqO0 要するに
hoge.com/rand/aaa.jpg
を見てるつもりで
hoge.com/rand/index.php?q=aaa.jpg
で内部的に処理して返したいってことです
hoge.com/rand/aaa.jpg
を見てるつもりで
hoge.com/rand/index.php?q=aaa.jpg
で内部的に処理して返したいってことです
672デフォルトの名無しさん (ワッチョイ 9776-ebpV)
2018/09/16(日) 20:17:40.26ID:xrMzIoGe0 mod_rewrite使うとか
673デフォルトの名無しさん (ワッチョイ 7f9f-AvBu)
2018/09/16(日) 20:28:28.45ID:Lgam3puB0 file(”aaa.jpg”)
で表示できたような
で表示できたような
674デフォルトの名無しさん (ワッチョイ 7f9f-AvBu)
2018/09/16(日) 20:31:03.90ID:Lgam3puB0 print file($_GET[q])
だったかな
忘れた
だったかな
忘れた
675デフォルトの名無しさん (ワッチョイ ff81-okpm)
2018/09/17(月) 01:27:02.97ID:aY8QKU/10 >>671
mod_rewriteを使って、
RewriteCond %{REQUEST_FILENAME} hoge.com/rand/(.*)$
RewriteRule ^hoge.com/rand/(.*)$ %1/%2/index.php?q=$1
こんな感じでリクエストを書き直す?
うまく行くかちょっと自信ない
mod_rewriteを使って、
RewriteCond %{REQUEST_FILENAME} hoge.com/rand/(.*)$
RewriteRule ^hoge.com/rand/(.*)$ %1/%2/index.php?q=$1
こんな感じでリクエストを書き直す?
うまく行くかちょっと自信ない
676デフォルトの名無しさん (ワッチョイ 9fd0-cC+K)
2018/09/17(月) 11:11:17.62ID:B1zUo4Ps0 PHPの処理はHTMLの外で行い、結果だけをHTMLの中に表示する方法が良いんですか?(´・ω・`)
677デフォルトの名無しさん (ワッチョイ bfd5-Un1/)
2018/09/17(月) 12:21:19.45ID:hbuTlOjm0 >>676
その方がいいと思うよ。
HTMLを修正する理由と処理を修正する理由は大抵違うから、それぞれ分けておくと都合がいいと思う。
分業の面でもいいし、処理の見通しも良くなる。
ただそう作るなら、表示(見た目)のためのコードは処理側から排除するのがいいと思う。
エスケープはもちろん、例えばマイナスの数値を表示するのに▲を付ける仕様だったとして、それを行うコードはHTML側に実装する感じ。
処理側で▲付きの文字列を作るようなことするとカオスになっていく。
その方がいいと思うよ。
HTMLを修正する理由と処理を修正する理由は大抵違うから、それぞれ分けておくと都合がいいと思う。
分業の面でもいいし、処理の見通しも良くなる。
ただそう作るなら、表示(見た目)のためのコードは処理側から排除するのがいいと思う。
エスケープはもちろん、例えばマイナスの数値を表示するのに▲を付ける仕様だったとして、それを行うコードはHTML側に実装する感じ。
処理側で▲付きの文字列を作るようなことするとカオスになっていく。
678デフォルトの名無しさん (ワッチョイ bfd5-Un1/)
2018/09/17(月) 12:29:30.95ID:hbuTlOjm0 >>676
そしてPHPはHTMLを分けるというのが非常に簡単にできるから、やらなくちゃ損くらいに思った方がいい。
<?php
:
いろいろ処理;
:
include 'gamen.html';
?>
みたいに include するだけで表示されるんだから。
実際には gamen.html にはわずかなPHPコードも入る純粋な HTML ではないから拡張子を .html とするよりは、.php なり .tpl(テンプレート)なりそれっぽいのにしておくといいと思う。
案外 .php にしておくと、ブラウザからそれを直接見てもPHPのコードは直接見えないから手軽な安全策かも。
そしてPHPはHTMLを分けるというのが非常に簡単にできるから、やらなくちゃ損くらいに思った方がいい。
<?php
:
いろいろ処理;
:
include 'gamen.html';
?>
みたいに include するだけで表示されるんだから。
実際には gamen.html にはわずかなPHPコードも入る純粋な HTML ではないから拡張子を .html とするよりは、.php なり .tpl(テンプレート)なりそれっぽいのにしておくといいと思う。
案外 .php にしておくと、ブラウザからそれを直接見てもPHPのコードは直接見えないから手軽な安全策かも。
679デフォルトの名無しさん (ワッチョイ 9fd0-cC+K)
2018/09/17(月) 15:38:02.41ID:B1zUo4Ps0680デフォルトの名無しさん (アウアウカー Saeb-Gwc+)
2018/09/18(火) 18:36:46.23ID:LS9+DTCza 今回乗っ取りが可能な脆弱性が発見されましたが、その脆弱性を試したいです。
どうすればいいのでしょうか?
どうすればいいのでしょうか?
681デフォルトの名無しさん (ワッチョイ 97b8-Moip)
2018/09/19(水) 12:22:09.46ID:hsm6EpoV0 Bug #76582が原因らしいからバグレポート読んでみたら?
再現コードも書いてるよ
まぁ単にXSSが可能だったってだけでそれ以上でもそれ以下でもないが
再現コードも書いてるよ
まぁ単にXSSが可能だったってだけでそれ以上でもそれ以下でもないが
682デフォルトの名無しさん (ワッチョイ bf4b-72gh)
2018/09/19(水) 20:12:04.29ID:2g+A18ll0 laravelを始めようと思うのですがrailsと比べて何が良くて何が悪いのか聞きたいです
僕自身railsはチュートリアルやったくらいしか知りません
僕自身railsはチュートリアルやったくらいしか知りません
683デフォルトの名無しさん (ワッチョイ 2d8a-Lcjh)
2018/09/20(木) 08:52:56.46ID:2cUVSblD0 set_file_buffer (stream_set_write_buffer)が動作しないということが2003年ごろから言われているみたいですが
今さっき検証してみたところやはり-1が返ってきて動作していないようです
何故こんな関数が未だに存在しているのか、わかる方よろしくお願いします
http://jp2.php.net/stream_set_write_buffer
今さっき検証してみたところやはり-1が返ってきて動作していないようです
何故こんな関数が未だに存在しているのか、わかる方よろしくお願いします
http://jp2.php.net/stream_set_write_buffer
684デフォルトの名無しさん (ワッチョイ 82d0-Y82R)
2018/09/21(金) 10:36:19.22ID:0nwAv71v0 POSTされた値を最初に変数に代入してから検証するのと、
検証してから変数に代入するのとでは安全性に違いはありますか?
変な質問で申し訳ない(´・ω・`)
検証してから変数に代入するのとでは安全性に違いはありますか?
変な質問で申し訳ない(´・ω・`)
685デフォルトの名無しさん (ワッチョイ 6d23-v8+k)
2018/09/21(金) 12:16:47.46ID:CXW/z+bx0 一概には言えないが、値の検証はその値を使う直前にやるのが一番良い
検証の後に不用意に値が書き換わってたら検証の意味がない
検証の後に不用意に値が書き換わってたら検証の意味がない
686デフォルトの名無しさん (ワッチョイ 82d0-Y82R)
2018/09/21(金) 16:41:58.26ID:0nwAv71v0687デフォルトの名無しさん (ワッチョイ fe92-tHrl)
2018/09/21(金) 18:17:31.43ID:2dxDcAKa0688デフォルトの名無しさん (ワッチョイ 82d0-Y82R)
2018/09/25(火) 17:01:58.96ID:CUEvMMrT0 if($A === $B){
$A;
}else{
$B;
}
と
if($A !== $B){
$B;
}else{
$A;
}
って どっちが良いですか !?
って聞かれても俺にはわかんねーよ(´・ω・`)
というグチ
$A;
}else{
$B;
}
と
if($A !== $B){
$B;
}else{
$A;
}
って どっちが良いですか !?
って聞かれても俺にはわかんねーよ(´・ω・`)
というグチ
689デフォルトの名無しさん (ワッチョイ be9f-gsXS)
2018/09/25(火) 17:46:06.44ID:NyMQ4nya0 名前がつかない例外を受け取ることは難しいね
690デフォルトの名無しさん (オイコラミネオ MMf5-KkRk)
2018/09/25(火) 20:15:13.42ID:yenf1piQM >>688
!== より === の方がタイプする労力が小さいから前者
!== より === の方がタイプする労力が小さいから前者
691デフォルトの名無しさん (ワッチョイ c9b8-gcds)
2018/09/25(火) 20:25:06.12ID:YkAMOZHs0 結果は同じでもどちらに主軸をおくかによってニュアンスが変わる
例えばコンサート会場でチケットを持っている人は通し持ってない人は通さない場合
チケットを持っている人を通したいに主軸を置くと普通のスタッフを連想するが
チケットを持ってない人を通さないに主軸を置くと警備員のようなもっとお硬い物を連想する
$A===$Bを比較したいのか$A!==$Bを比較したいのか
自分が何をやりたいのかどこに主軸をおきたいのか考えれば自ずと答えは出るでしょう
例えばコンサート会場でチケットを持っている人は通し持ってない人は通さない場合
チケットを持っている人を通したいに主軸を置くと普通のスタッフを連想するが
チケットを持ってない人を通さないに主軸を置くと警備員のようなもっとお硬い物を連想する
$A===$Bを比較したいのか$A!==$Bを比較したいのか
自分が何をやりたいのかどこに主軸をおきたいのか考えれば自ずと答えは出るでしょう
692デフォルトの名無しさん (ワッチョイ c99e-IBuP)
2018/09/26(水) 01:33:34.79ID:QPkmxTlR0 thenが通常処理、elseが異常(エラー)処理ってイメージ
通常処理がn種類(複数)あるって感じな場合は、二択だったとしてもswitchにしてる
通常処理がn種類(複数)あるって感じな場合は、二択だったとしてもswitchにしてる
693デフォルトの名無しさん (ワッチョイ c198-DHaP)
2018/09/26(水) 14:54:46.71ID:eJD5a6UK0 $var = getA();
if (!$var) {
$var = getB();
}
if (!$var) {
$var = getC();
}
if (!$var) {
$var = getD();
}
if (!$var) {
return false;
}
return $var;
こういうコードをもっとスッキリさせる書き方ってないですか?
if (!$var) {
$var = getB();
}
if (!$var) {
$var = getC();
}
if (!$var) {
$var = getD();
}
if (!$var) {
return false;
}
return $var;
こういうコードをもっとスッキリさせる書き方ってないですか?
694デフォルトの名無しさん (ワッチョイ be9f-gsXS)
2018/09/26(水) 15:24:24.44ID:aA/f+lgF0 orを使うといいかも
695デフォルトの名無しさん (ワッチョイ c9b8-gcds)
2018/09/26(水) 18:40:59.41ID:we9WvBjb0 get($ident)的な関数作って
$var=false;で初期化して
["A", "B", "C", "D"]をぶん回して見つかれば$var上書きしてbreak
$var=false;で初期化して
["A", "B", "C", "D"]をぶん回して見つかれば$var上書きしてbreak
696デフォルトの名無しさん (ワッチョイ b165-coYL)
2018/09/26(水) 19:38:26.60ID:Rr41G2Hg0 短絡評価でbooleanが返ってくる言語だからなぁ
return getA() ?? getB() ?? getC() ?? getD() ?? false;
でnullが返ってくると順次後ろに落ちていくようには出来る
falseが返ってくると打ち切られて結果もfalseになる
return getA() ?? getB() ?? getC() ?? getD() ?? false;
でnullが返ってくると順次後ろに落ちていくようには出来る
falseが返ってくると打ち切られて結果もfalseになる
697デフォルトの名無しさん (ワッチョイ c198-DHaP)
2018/09/26(水) 23:01:39.30ID:eJD5a6UK0 みなさんレスありがとうございます
実際はもっとメソッド名が長く、引数が複数あり、一つ一つが若干重い処理なので
現状が一番スマートのような気がしてきました
実際はもっとメソッド名が長く、引数が複数あり、一つ一つが若干重い処理なので
現状が一番スマートのような気がしてきました
698デフォルトの名無しさん (ワッチョイ 579e-/YFy)
2018/09/27(木) 00:21:34.56ID:PI1koV5V0 Cなら関数ポインタを配列にツッコんでぶん回す
危険かどうかは触れない
危険かどうかは触れない
699デフォルトの名無しさん (ワッチョイ f7e9-S4i9)
2018/09/27(木) 10:36:27.42ID:kbPnGc7o0 メソッドに応じて引数も可変ならcall_user_func_array()使えばいいだけじゃない?
そんな大層な話しか?30秒で書けるがw
function hoge()
{
$methodArr = [
'A' => ['a', 'b'],
'B' => [],
'C' => ['c', 'd'],
];
foreach ($methodArr as $method => $params) {
if ($result = call_user_func_array($method, $params)) {
return $result;
}
}
return false;
}
そんな大層な話しか?30秒で書けるがw
function hoge()
{
$methodArr = [
'A' => ['a', 'b'],
'B' => [],
'C' => ['c', 'd'],
];
foreach ($methodArr as $method => $params) {
if ($result = call_user_func_array($method, $params)) {
return $result;
}
}
return false;
}
700デフォルトの名無しさん (ワッチョイ f7e9-S4i9)
2018/09/27(木) 10:42:54.79ID:kbPnGc7o0701デフォルトの名無しさん (ワッチョイ f7e9-S4i9)
2018/09/27(木) 10:50:13.05ID:kbPnGc7o0702デフォルトの名無しさん (ワッチョイ bfd5-E/Y9)
2018/09/27(木) 12:20:21.79ID:mllxUQ0M0703デフォルトの名無しさん (スププ Sdbf-4Fgi)
2018/09/27(木) 13:37:29.99ID:7B8reSZgd メソッドや引数が減ったり増えたり順序が変わったりした時に
699なら”コード”を触らず”定義”の修正だけで済むが
693だと”コード自体”を修正する必要があるな
699なら”コード”を触らず”定義”の修正だけで済むが
693だと”コード自体”を修正する必要があるな
704デフォルトの名無しさん (ワッチョイ 579e-/YFy)
2018/09/27(木) 13:54:32.47ID:PI1koV5V0 call_user_func_arrayなんてあったんだね。
じゃあこれ一択だわ。
理由は>703
じゃあこれ一択だわ。
理由は>703
705デフォルトの名無しさん (ワッチョイ bfd5-E/Y9)
2018/09/27(木) 13:55:31.21ID:mllxUQ0M0706デフォルトの名無しさん (ワッチョイ f7e9-S4i9)
2018/09/27(木) 14:00:23.22ID:kbPnGc7o0707デフォルトの名無しさん (ワッチョイ bfd5-E/Y9)
2018/09/27(木) 14:04:14.99ID:mllxUQ0M0708デフォルトの名無しさん (ワッチョイ 579e-/YFy)
2018/09/27(木) 14:06:18.58ID:PI1koV5V0 これは絶対にこうだって話でも何でもなく、おおよそこれまでの経験に基づく好みの方がデカいと思うけど。
>>693の実際のコードや運用保守まで知り得ないから、絶対こうだと第三者が結論づけるのはナンセンスだと思う。
自分は実際にこのようなケース(Cで)楽にメンテできた実績があるからこっちを選ぶけど、
こういう方法もあるよってディスカッションならどんどんやればいい。
>>693の実際のコードや運用保守まで知り得ないから、絶対こうだと第三者が結論づけるのはナンセンスだと思う。
自分は実際にこのようなケース(Cで)楽にメンテできた実績があるからこっちを選ぶけど、
こういう方法もあるよってディスカッションならどんどんやればいい。
709デフォルトの名無しさん (スププ Sdbf-4Fgi)
2018/09/27(木) 14:09:57.57ID:7B8reSZgd 今更include_onceなんかを使ってるしむしろ693より悪化してるという
699みたいに動作定義を配列変数にしておけばその中に更に変数やメソッドの返り値を持たせることだってできるだろうに
699みたいに動作定義を配列変数にしておけばその中に更に変数やメソッドの返り値を持たせることだってできるだろうに
710デフォルトの名無しさん (ワッチョイ bfd5-E/Y9)
2018/09/27(木) 14:10:07.99ID:mllxUQ0M0711デフォルトの名無しさん (ワッチョイ bfd5-E/Y9)
2018/09/27(木) 14:12:14.74ID:mllxUQ0M0 >>709
その変数やメソッドの返り値を定義した具体例を挙げてみてよ。
その変数やメソッドの返り値を定義した具体例を挙げてみてよ。
712デフォルトの名無しさん (ワッチョイ 175b-45+G)
2018/09/27(木) 14:15:44.50ID:dO3eQ5uW0 >>710
はたから見たらお前さんも同じようなもんだし喧嘩腰なのはむしろお前さんの方に見えるが
はたから見たらお前さんも同じようなもんだし喧嘩腰なのはむしろお前さんの方に見えるが
713デフォルトの名無しさん (ワッチョイ bfd5-E/Y9)
2018/09/27(木) 14:28:22.94ID:mllxUQ0M0714デフォルトの名無しさん (ワッチョイ 9fd0-ZVm4)
2018/09/28(金) 10:46:28.24ID:Lkb4ZCCn0 if ( ( string ) filter_input ( INPUT_POST , 'hoge' ) === '' ) { ・・・ }
↑だと入力欄が空の時に〜となりますが、
半角・全角のスペースが1つだけ入力されたの時も含めたい場合は どのように書くのが良いですか?
どなたか ご教授ください(´・ω・`)
↑だと入力欄が空の時に〜となりますが、
半角・全角のスペースが1つだけ入力されたの時も含めたい場合は どのように書くのが良いですか?
どなたか ご教授ください(´・ω・`)
715デフォルトの名無しさん (ワッチョイ 17b3-S4i9)
2018/09/28(金) 10:48:54.31ID:h3Rmmj6P0 >>714
filter_input のマニュアル見てみ。
filter_input のマニュアル見てみ。
716デフォルトの名無しさん (ワッチョイ f7e9-S4i9)
2018/09/28(金) 14:07:08.20ID:c+sKNdIa0 >>714
本当に半角スペースと全角スペースだけでいいの?
タブ"\t"とか改行コード"\rや\n"とかはOKなの?(たぶん駄目だよね)
本当に1つだけでいいの?
半角スペースが100個連続しているのはOKなの?(たぶん駄目だよね)
ってことで
UTF-8ならpreg_match()にuのパターン修飾子付けるのが楽
$hoge = (string) filter_input(INPUT_POST, 'hoge');
if ($hoge === '' || preg_match('/\A\s++\z/u', $hoge)) { }
もっと厳密にやりたいなら、弾きたい文字を文字プロパティで表現すればいい
例えば [\p{Z}\p{Cc}]++ みたいに
本当に半角スペースと全角スペースだけでいいの?
タブ"\t"とか改行コード"\rや\n"とかはOKなの?(たぶん駄目だよね)
本当に1つだけでいいの?
半角スペースが100個連続しているのはOKなの?(たぶん駄目だよね)
ってことで
UTF-8ならpreg_match()にuのパターン修飾子付けるのが楽
$hoge = (string) filter_input(INPUT_POST, 'hoge');
if ($hoge === '' || preg_match('/\A\s++\z/u', $hoge)) { }
もっと厳密にやりたいなら、弾きたい文字を文字プロパティで表現すればいい
例えば [\p{Z}\p{Cc}]++ みたいに
717デフォルトの名無しさん (ワッチョイ f7e9-S4i9)
2018/09/28(金) 14:08:24.39ID:c+sKNdIa0 で、更に言えばさw
'あいうえお'の前後に空白文字が1000個あるのはOKなの?って話にもなってくるんで
ちょいと考え方と変えて
$hoge = preg_replace('/\A\s++|\s++\z/u', '', $hoge);
こんな感じで先に文字列の前後の空白文字を取り除いてから
if ($hoge === '') { }
とするやり方なんかもあるな
'あいうえお'の前後に空白文字が1000個あるのはOKなの?って話にもなってくるんで
ちょいと考え方と変えて
$hoge = preg_replace('/\A\s++|\s++\z/u', '', $hoge);
こんな感じで先に文字列の前後の空白文字を取り除いてから
if ($hoge === '') { }
とするやり方なんかもあるな
718デフォルトの名無しさん (ワッチョイ 9765-aemA)
2018/09/28(金) 14:17:49.83ID:KTNzW9VA0 preg_match('/\A\s*+\z/u', $hoge) じゃない理由は何かあるのん
719デフォルトの名無しさん (ワッチョイ f7e9-S4i9)
2018/09/28(金) 14:29:52.16ID:c+sKNdIa0 >>718
空の時点で評価して正規表現に通さない方がいいから
だから本当に質問の通りでいいなら
if ($hoge === '' || $hoge === ' ' || $hoge === ' ')
で別にいいw
あと+じゃなく++と書いてる理由はReDoSでググればいいんじゃない?
Stack Exchange(違ったかもw)が
++じゃなく+使ってたせいでサービスダウンしたのはわりと有名
空の時点で評価して正規表現に通さない方がいいから
だから本当に質問の通りでいいなら
if ($hoge === '' || $hoge === ' ' || $hoge === ' ')
で別にいいw
あと+じゃなく++と書いてる理由はReDoSでググればいいんじゃない?
Stack Exchange(違ったかもw)が
++じゃなく+使ってたせいでサービスダウンしたのはわりと有名
720デフォルトの名無しさん (ワッチョイ 9fd0-ZVm4)
2018/09/28(金) 15:56:20.55ID:Lkb4ZCCn0721デフォルトの名無しさん (ワッチョイ 17b3-S4i9)
2018/09/28(金) 16:31:29.64ID:h3Rmmj6P0 >>720
filter として FILTER_VALIDATE_REGEXP つまり正規表現が使える。
FILTER_CALLBACK つまり、ユーザー定義の関数をコールしてデータをフィルタリングしても良い。
filter として FILTER_VALIDATE_REGEXP つまり正規表現が使える。
FILTER_CALLBACK つまり、ユーザー定義の関数をコールしてデータをフィルタリングしても良い。
722デフォルトの名無しさん (ワッチョイ 378a-tkB1)
2018/09/29(土) 10:56:37.08ID:6BMpRid40 if('aaa'==' aaa')//true
となることを発見したんですが、前方の空白は無視されるんですか?
これは正しい使い方でいいのですか?
よろしくお願いします
となることを発見したんですが、前方の空白は無視されるんですか?
これは正しい使い方でいいのですか?
よろしくお願いします
723720 (ワッチョイ 9fd0-ZVm4)
2018/09/29(土) 17:12:36.46ID:rR859Rl80724デフォルトの名無しさん (ワッチョイ 57b8-UjLZ)
2018/09/29(土) 18:16:41.98ID:DN2c19jF0725デフォルトの名無しさん (ワッチョイ ff8a-tkB1)
2018/09/30(日) 08:27:28.94ID:KcrMzjy/0726デフォルトの名無しさん (ワッチョイ 9fd0-ZVm4)
2018/09/30(日) 13:45:51.83ID:Cu2FNSd00 メール送信の際に確認と検証目的で画面上に表示させる時、気をつけるべきことって どのくらいあるものなのだろうか(´・ω・`)
htmlspecialchars() ? 未入力の確認 ? (´ρ`)
htmlspecialchars() ? 未入力の確認 ? (´ρ`)
727デフォルトの名無しさん (ワッチョイ bfd5-E/Y9)
2018/09/30(日) 18:23:11.88ID:+yuU+UfL0 >>726
単に表示するだけならそのくらいだろうけど、チェックも含むならメールのエンコーディングで使えない文字が含まれてないかとかかな。
単に表示するだけならそのくらいだろうけど、チェックも含むならメールのエンコーディングで使えない文字が含まれてないかとかかな。
728デフォルトの名無しさん (ワッチョイ 57b8-UjLZ)
2018/09/30(日) 18:40:30.48ID:0JTA57Qc0 >>725
http://php.net/manual/ja/language.operators.comparison.php
>整数値を文字列と比較したり、比較に数値形式の文字が含まれる場合は、文字列が 数値に変換され、 数値としての比較を行います。
要は文字列'1234'が数値形式(int型)なので↓のように比較される。
(int)'1234' == (int)' 1234'
> === あるいは !== による比較では型変換は発生しません。 この場合は値だけでなく型も比較します。
なのでこういう自動キャストが困るのであれば===で比較すること。
http://php.net/manual/ja/language.operators.comparison.php
>整数値を文字列と比較したり、比較に数値形式の文字が含まれる場合は、文字列が 数値に変換され、 数値としての比較を行います。
要は文字列'1234'が数値形式(int型)なので↓のように比較される。
(int)'1234' == (int)' 1234'
> === あるいは !== による比較では型変換は発生しません。 この場合は値だけでなく型も比較します。
なのでこういう自動キャストが困るのであれば===で比較すること。
729デフォルトの名無しさん (ワッチョイ 178a-tkB1)
2018/10/01(月) 01:43:36.31ID:4WHq1Bue0 >>728
ありがとうございました
ありがとうございました
730デフォルトの名無しさん (ワッチョイ 7f92-S4i9)
2018/10/01(月) 15:22:45.32ID:EoUwSVMY0 すまない。
微妙にスレチなのだが助けてほしい。
端的に言うとXAMPPの処理中にブルー画面になり、MySQLが壊れて動かくなった。
コントロール画面でStartを押しても一瞬動いてすぐ止まる。
調べてみたところ復旧方法がない。
XAMPPを外付けに移し、再インストールはうまくできた。
問題はSQLのデータをどのように移し替えればいいのかわからない。
エクスポートはできておらず、移行の仕方がわからない。
mysqlのdataファイルにデータベースの情報があるのはわかったが、
ここままファイル移動させただけでは動かないのです。
移行方法をご存知の方いらっしゃいましたらお教えください。
微妙にスレチなのだが助けてほしい。
端的に言うとXAMPPの処理中にブルー画面になり、MySQLが壊れて動かくなった。
コントロール画面でStartを押しても一瞬動いてすぐ止まる。
調べてみたところ復旧方法がない。
XAMPPを外付けに移し、再インストールはうまくできた。
問題はSQLのデータをどのように移し替えればいいのかわからない。
エクスポートはできておらず、移行の仕方がわからない。
mysqlのdataファイルにデータベースの情報があるのはわかったが、
ここままファイル移動させただけでは動かないのです。
移行方法をご存知の方いらっしゃいましたらお教えください。
731デフォルトの名無しさん (ワッチョイ 9fd0-ZVm4)
2018/10/01(月) 16:08:39.48ID:dk4eIPju0 ・echo htmlspecialchars($var = (string)filter_input(INPUT_POST,'var',ENT_QUOTES,'UTF-8'));
・echo $var = (string)filter_input(INPUT_POST,'var',FILTER_SANITIZE_FULL_SPECIAL_CHARS)
どっちが危険だと思う?
・echo $var = (string)filter_input(INPUT_POST,'var',FILTER_SANITIZE_FULL_SPECIAL_CHARS)
どっちが危険だと思う?
732デフォルトの名無しさん (ワッチョイ 17b3-S4i9)
2018/10/01(月) 18:58:30.27ID:Fhb8wAZ60 >>731
そんな汚いコード、読むまでもなく危険。
そんな汚いコード、読むまでもなく危険。
733デフォルトの名無しさん (ワッチョイ 57b8-UjLZ)
2018/10/01(月) 21:19:33.56ID:uTHNCD5Z0734デフォルトの名無しさん (ワッチョイ 7f92-S4i9)
2018/10/01(月) 23:30:37.04ID:EoUwSVMY0 >>733
#1932 - Table 'rssurl.imglist' doesn't exist in engine
(訳)#1932 - テーブル 'rssurl.imglist'はエンジンに存在しません
というエラーが出ます。
phpMyAdminのデータベースのページにはrssurlがあるのですが、
テーブルのimglistをクリックすると上記のエラーが出ます。
「ibdata1」「ib_logfile0」「ib_logfile1」を書き直せばいいというとこまではわかったのですが、
やり方までは分かりませんでした。
古いファイルもdataファイル内のものしかありません。
#1932 - Table 'rssurl.imglist' doesn't exist in engine
(訳)#1932 - テーブル 'rssurl.imglist'はエンジンに存在しません
というエラーが出ます。
phpMyAdminのデータベースのページにはrssurlがあるのですが、
テーブルのimglistをクリックすると上記のエラーが出ます。
「ibdata1」「ib_logfile0」「ib_logfile1」を書き直せばいいというとこまではわかったのですが、
やり方までは分かりませんでした。
古いファイルもdataファイル内のものしかありません。
735デフォルトの名無しさん (ワッチョイ 9fd0-ZVm4)
2018/10/02(火) 15:27:03.69ID:F0vZUT3n0736デフォルトの名無しさん (ワンミングク MM7f-xm3F)
2018/10/02(火) 15:44:49.78ID:ZToeE2jSM ワッチョイ 9fd0-ZVm4
そろそろ金払って誰かに個人レッスンしてもらいなさい
そろそろ金払って誰かに個人レッスンしてもらいなさい
737デフォルトの名無しさん (ワッチョイ 7723-jO+J)
2018/10/02(火) 17:55:01.30ID:nFqAwCYR0738デフォルトの名無しさん (ワッチョイ 7f92-S4i9)
2018/10/02(火) 22:16:36.49ID:nd3RRH6B0739デフォルトの名無しさん (ワンミングク MM7f-FaPL)
2018/10/03(水) 10:55:37.47ID:0581z6FqM740デフォルトの名無しさん (ワッチョイ 1f7e-S4i9)
2018/10/03(水) 11:42:25.53ID:GHy9f6hT0 MYSQLが吹っ飛んだ でググるといいかも
741デフォルトの名無しさん (ワッチョイ 7723-jO+J)
2018/10/03(水) 13:58:24.75ID:2El7vfsT0 >>738
それが壊れる前のファイルなら単純に差し替えれば動くだろう
バックアップあるならそこから引っ張ってくればいい
それが壊れたあとのファイルならそのファイル自体が壊れてるのだからあったところで意味がない
それが壊れる前のファイルなら単純に差し替えれば動くだろう
バックアップあるならそこから引っ張ってくればいい
それが壊れたあとのファイルならそのファイル自体が壊れてるのだからあったところで意味がない
742デフォルトの名無しさん (ワッチョイ 7f92-S4i9)
2018/10/03(水) 21:31:15.79ID:XKY8vr/j0743デフォルトの名無しさん (ワッチョイ d7b3-aemA)
2018/10/03(水) 22:33:44.05ID:bSsx2t9M0744デフォルトの名無しさん (ワッチョイ fd9e-XM+q)
2018/10/09(火) 19:35:33.43ID:DO0V6smF0 会社の先輩から受け継いだコードに
ini_set("allow_url_fopen", 1);
って有るのですが、何ですか?
PHP初めて三日目なので何も分かりません。
ini_set("allow_url_fopen", 1);
って有るのですが、何ですか?
PHP初めて三日目なので何も分かりません。
745デフォルトの名無しさん (ワッチョイ c4e3-5jP5)
2018/10/09(火) 21:29:54.26ID:gfRhaM0q0 文字通り
746デフォルトの名無しさん (ワッチョイ 3e6d-eH9n)
2018/10/10(水) 19:05:57.00ID:VQ/JYckG0 質問です
将来的にこういうアプリを作りたいと思っています
まずゲーム部分をunityで作って例えばオンラインランク的なネットワーク機能はphpで作るという物です
ここで疑問なのですがphpはサーバーとしてネットに公開するという事になりますよね?
俺はそのunityで作ったアプリからしかそのphpサーバーにアクセスして欲しくありません
でもネットに公開してる時点で普通にブラウザからでもアクセスできてしまうと思うのですが
こういう問題について世間の開発者の人たちはどういうやり方を用いているのでしょうか?
将来的にこういうアプリを作りたいと思っています
まずゲーム部分をunityで作って例えばオンラインランク的なネットワーク機能はphpで作るという物です
ここで疑問なのですがphpはサーバーとしてネットに公開するという事になりますよね?
俺はそのunityで作ったアプリからしかそのphpサーバーにアクセスして欲しくありません
でもネットに公開してる時点で普通にブラウザからでもアクセスできてしまうと思うのですが
こういう問題について世間の開発者の人たちはどういうやり方を用いているのでしょうか?
747デフォルトの名無しさん (ワッチョイ d881-t36n)
2018/10/10(水) 19:39:55.34ID:8sboglrA0748デフォルトの名無しさん (ワッチョイ 41b3-Qng4)
2018/10/10(水) 19:42:09.52ID:uL/SAi3N0 >>746
> unityで作ったアプリからしかそのphpサーバーにアクセスして欲しくありません
これと
> でもネットに公開してる時点で普通にブラウザからでもアクセスできてしまうと思う
これは全然別のレベル。
要件としては前者だと思うけど、各社のノウハウになるんじゃないかなぁ。
簡易的なものだと、header 触るぐらい。
> unityで作ったアプリからしかそのphpサーバーにアクセスして欲しくありません
これと
> でもネットに公開してる時点で普通にブラウザからでもアクセスできてしまうと思う
これは全然別のレベル。
要件としては前者だと思うけど、各社のノウハウになるんじゃないかなぁ。
簡易的なものだと、header 触るぐらい。
749デフォルトの名無しさん (ワッチョイ 3e6d-J+fU)
2018/10/10(水) 20:03:08.68ID:VQ/JYckG0750デフォルトの名無しさん (ワッチョイ 529f-XM+q)
2018/10/10(水) 20:04:12.63ID:dwQgwWbW0 プログラミングはphp mysqlを齧った初心者です。
下記のようなユーザー参加型ランキングサイトを作りたいのですが
https://www.animeranking.net/index.php
ユーザーにデータベースにある作品でランキングを作成してもらい
他ユーザーの投票によりランキングを変動/変動しない(ユーザーの任意)
またユーザー登録ログインシステムも作りたいのですが
html css php mysqlで事足りるでしょうか?
ご教授お願いします。
下記のようなユーザー参加型ランキングサイトを作りたいのですが
https://www.animeranking.net/index.php
ユーザーにデータベースにある作品でランキングを作成してもらい
他ユーザーの投票によりランキングを変動/変動しない(ユーザーの任意)
またユーザー登録ログインシステムも作りたいのですが
html css php mysqlで事足りるでしょうか?
ご教授お願いします。
751デフォルトの名無しさん (ワッチョイ d881-t36n)
2018/10/10(水) 20:50:38.91ID:8sboglrA0752デフォルトの名無しさん (ワッチョイ 3e6d-J+fU)
2018/10/10(水) 20:58:58.35ID:VQ/JYckG0 >>751
アプリやpcソフトからのアクセスで自分のホストとかわかるんですか?
アプリやpcソフトからのアクセスで自分のホストとかわかるんですか?
753デフォルトの名無しさん (ワッチョイ d881-t36n)
2018/10/10(水) 21:04:33.75ID:8sboglrA0754デフォルトの名無しさん (ワッチョイ 3e6d-J+fU)
2018/10/10(水) 21:09:09.52ID:VQ/JYckG0 >>753
スマホとかpcからです
スマホとかpcからです
755デフォルトの名無しさん (ワッチョイ d881-t36n)
2018/10/10(水) 21:19:14.34ID:8sboglrA0756デフォルトの名無しさん (オイコラミネオ MM71-vPhZ)
2018/10/10(水) 21:49:20.11ID:NIVvD6uyM mutual TLS
757デフォルトの名無しさん (ワッチョイ 3e6d-J+fU)
2018/10/10(水) 21:54:13.75ID:VQ/JYckG0758デフォルトの名無しさん (ワッチョイ d881-t36n)
2018/10/10(水) 22:06:33.98ID:8sboglrA0 PHPの話ではないけれど
大概のネットゲーム会社はクライアントアプリに
何らかの形でガードをかけている
ホストとの通信は暗号化し、
クライアントアプリ内部メモリへのアクセスも出来ないようにしている
チート対策でCPUの不正な高速化までチェックしている所もある
どこまでやれば良いのかを考えるとキリがないかも知れない
大概のネットゲーム会社はクライアントアプリに
何らかの形でガードをかけている
ホストとの通信は暗号化し、
クライアントアプリ内部メモリへのアクセスも出来ないようにしている
チート対策でCPUの不正な高速化までチェックしている所もある
どこまでやれば良いのかを考えるとキリがないかも知れない
759デフォルトの名無しさん (ワッチョイ 3e6d-J+fU)
2018/10/10(水) 22:16:40.86ID:VQ/JYckG0760デフォルトの名無しさん (ワッチョイ e7b8-PLlx)
2018/10/11(木) 02:07:56.23ID:ywvO8NYp0 パケットを圧縮暗号化分割して何をしているのかわからなくする
もちろんメンテナンスと称して毎週のようにパターンは変えること
もちろんメンテナンスと称して毎週のようにパターンは変えること
761デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/11(木) 04:29:58.54ID:zE20d/IG0 蔵のチート対策やデータの暗号化はさておき、今回の質問のメインって
鯖との接続・セキュリティ対策よね?
単純に認証方式の話になるんじゃないの?>756でも書かれてるけど
鯖との接続・セキュリティ対策よね?
単純に認証方式の話になるんじゃないの?>756でも書かれてるけど
762デフォルトの名無しさん (ワッチョイ e7b8-PLlx)
2018/10/11(木) 11:25:38.96ID:ywvO8NYp0 >俺はそのunityで作ったアプリからしかそのphpサーバーにアクセスして欲しくありません
非正規クライアントを作られてほしくないからその対策を教えてくれ
って言ってんじゃないのか
非正規クライアントを作られてほしくないからその対策を教えてくれ
って言ってんじゃないのか
763デフォルトの名無しさん (ワッチョイ df6d-3WQG)
2018/10/11(木) 12:25:06.79ID:RBgNCbjF0764デフォルトの名無しさん (ワッチョイ 7fe8-37bo)
2018/10/11(木) 12:50:41.46ID:bd8i7ua+0 IPアドレスにデータを流す以外に通信する方法があるならそっちでやればいいけど、
普通に公開鍵と秘密鍵を使って認証するのが真っ当じゃないの
これを第三者クライアントが使えるんなら鍵の意味がない
普通に公開鍵と秘密鍵を使って認証するのが真っ当じゃないの
これを第三者クライアントが使えるんなら鍵の意味がない
765デフォルトの名無しさん (ワッチョイ 7f80-WnU0)
2018/10/11(木) 13:08:42.23ID:3Bdkvxy90 >>746
ゲームは、ログイン・認証した人しか、プレイできない。
もし、アクセス権のない人がアクセスすれば、ログイン画面にリダイレクトされる
ログイン後は、セッションを使うから、各プレイヤーは判別できる
Ruby on Rails で、システム運用構築・プログラミングの練習をした方がよい
ゲームは、ログイン・認証した人しか、プレイできない。
もし、アクセス権のない人がアクセスすれば、ログイン画面にリダイレクトされる
ログイン後は、セッションを使うから、各プレイヤーは判別できる
Ruby on Rails で、システム運用構築・プログラミングの練習をした方がよい
766デフォルトの名無しさん (ワッチョイ df6d-3WQG)
2018/10/11(木) 13:11:06.48ID:RBgNCbjF0767デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/11(木) 13:15:39.15ID:zE20d/IG0768デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/11(木) 13:19:09.28ID:zE20d/IG0 >>766
プログラム内部でログイン処理があるだけで表に出さないだけの話でしょ。
端末固有情報でアカウント作ってログインしてるだけ。
端末固有情報を使わないと鯖にはもちろん入れない。
あとは不正な端末固有情報を使わせない仕組みを考えるだけ。
プログラム内部でログイン処理があるだけで表に出さないだけの話でしょ。
端末固有情報でアカウント作ってログインしてるだけ。
端末固有情報を使わないと鯖にはもちろん入れない。
あとは不正な端末固有情報を使わせない仕組みを考えるだけ。
769デフォルトの名無しさん (ワッチョイ c723-WBp8)
2018/10/11(木) 13:24:40.62ID:Ub0lOJUx0 IDとパスワードを手打ちでポチポチッとすることだけがログインじゃない
もうちょっと自分でいろいろ調べてみていいと思うよ
さすがにちょっと質問のレベルが低すぎて教えようがない
もうちょっと自分でいろいろ調べてみていいと思うよ
さすがにちょっと質問のレベルが低すぎて教えようがない
770デフォルトの名無しさん (ワッチョイ df6d-3WQG)
2018/10/11(木) 13:27:20.03ID:RBgNCbjF0771デフォルトの名無しさん (ワッチョイ c723-WBp8)
2018/10/11(木) 13:51:16.45ID:Ub0lOJUx0 その質問はまず偽装の方法を自分で調べて理解してからの方がいいよ
偽装の方法によって対策が変わるんだからそんなざっくりとした質問は答えようがない
偽装の方法によって対策が変わるんだからそんなざっくりとした質問は答えようがない
772デフォルトの名無しさん (ワッチョイ df6d-3WQG)
2018/10/11(木) 13:51:26.37ID:RBgNCbjF0 >>770
やっぱりこれ無しにしてください
まず初回アクセス時にサーバーでパスワードを発行してアプリ側で保存してしまえばいいんですよね
それでかなり確かなセキュリティーが保たれると思います
皆さんありがとうございました
あんまりしつこいとウザいのでこの辺で失礼したいと思います
やっぱりこれ無しにしてください
まず初回アクセス時にサーバーでパスワードを発行してアプリ側で保存してしまえばいいんですよね
それでかなり確かなセキュリティーが保たれると思います
皆さんありがとうございました
あんまりしつこいとウザいのでこの辺で失礼したいと思います
773デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/11(木) 14:01:09.06ID:zE20d/IG0 >>770
絶対不可能レベルなのか、仕組みさえバレなきゃまず偽装できないからそのレベルなのかで
方法論変わってくるんじゃない?
自分はなんちゃってプロテクトな感じで、固有情報を暗号化、初回登録時に
鯖で作ったパスを暗号化したのを端末のちょっと分かんないところにピーコしておしまい。
クラッカーからみて、何をどのようにしてるのか分かりにくくしてる程度で、
全バレしたらもちろんアウトだけど、「何を」「どのような暗号化」は中々分からないと思う。
カネ絡みやら個人情報の絡みがあるんなら、もっと厳格かつワンタイムパスワードとか
必要になってくるわね。
絶対不可能レベルなのか、仕組みさえバレなきゃまず偽装できないからそのレベルなのかで
方法論変わってくるんじゃない?
自分はなんちゃってプロテクトな感じで、固有情報を暗号化、初回登録時に
鯖で作ったパスを暗号化したのを端末のちょっと分かんないところにピーコしておしまい。
クラッカーからみて、何をどのようにしてるのか分かりにくくしてる程度で、
全バレしたらもちろんアウトだけど、「何を」「どのような暗号化」は中々分からないと思う。
カネ絡みやら個人情報の絡みがあるんなら、もっと厳格かつワンタイムパスワードとか
必要になってくるわね。
774デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/11(木) 14:02:05.28ID:zE20d/IG0 書き込みボタン押す前に電話してたら終わってた
775デフォルトの名無しさん (オイコラミネオ MMfb-KnhR)
2018/10/11(木) 14:04:32.54ID:2BdL7A5TM >>772
まず難しいこと考える前に作ってしまえば。
URLを秘密にしておくだけでとりあえず充分。
それがちゃんと動くようになったら不正利用防止を考えていけばいい。
少なくとも今は、ただツベコベ言ってるだけで実際にモノを作れるレベルじゃないんじゃないの?って印象しかない。
まず難しいこと考える前に作ってしまえば。
URLを秘密にしておくだけでとりあえず充分。
それがちゃんと動くようになったら不正利用防止を考えていけばいい。
少なくとも今は、ただツベコベ言ってるだけで実際にモノを作れるレベルじゃないんじゃないの?って印象しかない。
776デフォルトの名無しさん (ワッチョイ 7f80-WnU0)
2018/10/11(木) 14:08:53.21ID:3Bdkvxy90 HTTP は、1回毎の通信だから、同じユーザーかどうか、判別できないが、
セッション機能を使うと、各プレイヤーは判別できる
毎回通信するたびに、各プレイヤーを特定できる暗号を送りあう
SSL・認証は、開発者の常識。
国家資格の基本情報処理技術者でも取れば?
セッション機能を使うと、各プレイヤーは判別できる
毎回通信するたびに、各プレイヤーを特定できる暗号を送りあう
SSL・認証は、開発者の常識。
国家資格の基本情報処理技術者でも取れば?
777デフォルトの名無しさん (ワッチョイ 7fe8-37bo)
2018/10/11(木) 14:18:55.27ID:bd8i7ua+0 不正ログイン対策と通信毎のユーザー判別とは別の話
778デフォルトの名無しさん (ワッチョイ e7b8-PLlx)
2018/10/11(木) 15:26:02.99ID:ywvO8NYp0 >>767
unityC#で作った正規GUIクライアントでランキングサーバにアクセスするのと
同じ情報手順プロトコルを解析してphpで作った非正規CUIクライアントでアクセスするの
サーバはどうやって正規クライアントと非正規クライアントを見分けるの?
正規クライアントを必要とするチートの話じゃなくてどちらかというとBOTの話
unityC#で作った正規GUIクライアントでランキングサーバにアクセスするのと
同じ情報手順プロトコルを解析してphpで作った非正規CUIクライアントでアクセスするの
サーバはどうやって正規クライアントと非正規クライアントを見分けるの?
正規クライアントを必要とするチートの話じゃなくてどちらかというとBOTの話
779デフォルトの名無しさん (ワッチョイ 7f80-WnU0)
2018/10/11(木) 16:10:14.57ID:3Bdkvxy90 ゲームは、ログイン・認証した人しか、プレイできない。
もし、アクセス権のない人がアクセスすれば、ログイン画面にリダイレクトされる
ログイン後は、セッションを使うから、各プレイヤーは判別できる
それが、どのようなGUI クライアントで認証しても関係ない。
内容が同じなら、どのGUIクライアントでも同じ
全く同じレスポンスを返すのだろ。
エミュレーターなんか、そう
もし、アクセス権のない人がアクセスすれば、ログイン画面にリダイレクトされる
ログイン後は、セッションを使うから、各プレイヤーは判別できる
それが、どのようなGUI クライアントで認証しても関係ない。
内容が同じなら、どのGUIクライアントでも同じ
全く同じレスポンスを返すのだろ。
エミュレーターなんか、そう
780デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/11(木) 16:25:57.66ID:zE20d/IG0 >>778
まずは解析されにくくすることで非正規を弾く発想なので、
解析されてる時点ではどうしようもないよね。
ここからさらにどのように解析しにくくするのかというところが
ポイントであって、解析されてる前提だとどうしようもないんじゃないの。
むしろ正規の証明が難しそう。
認証局噛ませて秘密鍵公開鍵とかやってても、鍵盗まれた前提で
話しても意味ないでしょう。
ていうか、SSL/TLS通信ってそんな簡単に解析して非正規クローン作れたりするの?
まずは解析されにくくすることで非正規を弾く発想なので、
解析されてる時点ではどうしようもないよね。
ここからさらにどのように解析しにくくするのかというところが
ポイントであって、解析されてる前提だとどうしようもないんじゃないの。
むしろ正規の証明が難しそう。
認証局噛ませて秘密鍵公開鍵とかやってても、鍵盗まれた前提で
話しても意味ないでしょう。
ていうか、SSL/TLS通信ってそんな簡単に解析して非正規クローン作れたりするの?
781デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/11(木) 16:33:34.56ID:kxyqPSNi0 解析を試みる人がアプリの所有者の場合も考えないと
782デフォルトの名無しさん (ワッチョイ e7b8-PLlx)
2018/10/11(木) 16:43:19.53ID:ywvO8NYp0 >まずは解析されにくくすることで非正規を弾く
俺がいってるのは
解析されにくくすることで非正規そのものを作ろうと思わない環境にするであって
非正規クライアントの存在そのものがないことを前提にしてるので
似たようなこと言ってるのだが微妙に話が噛み合ってないんよな
俺がいってるのは
解析されにくくすることで非正規そのものを作ろうと思わない環境にするであって
非正規クライアントの存在そのものがないことを前提にしてるので
似たようなこと言ってるのだが微妙に話が噛み合ってないんよな
783デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/11(木) 17:02:25.53ID:kxyqPSNi0 質問者の前提は
>俺の入門書レベルでの知識ではphpをサーバーに設置したらネットのどこからでも見れてしまうと
>思ったのでそれで質問しました
>あくまでゲームからアクセスして欲しいなと
なので、非正規クライアントも含まれると思うが
>俺の入門書レベルでの知識ではphpをサーバーに設置したらネットのどこからでも見れてしまうと
>思ったのでそれで質問しました
>あくまでゲームからアクセスして欲しいなと
なので、非正規クライアントも含まれると思うが
784デフォルトの名無しさん (ワッチョイ a72d-4Hut)
2018/10/11(木) 17:08:05.67ID:mY8AIbZq0 SSL/TLSは経路上で情報が漏れることを防ぐためのものでエンドポイントでなら当然簡単に読み取れる
785デフォルトの名無しさん (ワッチョイ e7b8-PLlx)
2018/10/11(木) 17:20:45.95ID:ywvO8NYp0 そんなのはわかってるよ
1.非正規クライアントを作らせないというか作ろうとは思わない環境を作る
2.非正規クライアントを作られても問題のない環境を作る
という視点の違いであったにすぎずパケット圧縮暗号分割を否定してるわけではないだろう?
最も2はソケット開いたあと何したらいいかわからないはずなので
コードはせいぜい数行程度になり動作も不能で
俺的にはそんなものをクライアントと呼んでいいのか?っていう感じだが
1.非正規クライアントを作らせないというか作ろうとは思わない環境を作る
2.非正規クライアントを作られても問題のない環境を作る
という視点の違いであったにすぎずパケット圧縮暗号分割を否定してるわけではないだろう?
最も2はソケット開いたあと何したらいいかわからないはずなので
コードはせいぜい数行程度になり動作も不能で
俺的にはそんなものをクライアントと呼んでいいのか?っていう感じだが
非正規と判断されたクライアントに対してはなんらかのペナルティーを課せればいいかと
P2P file sharing ならばファイル拡散もかねてキャッシュを送りつける、とか
P2P file sharing ならばファイル拡散もかねてキャッシュを送りつける、とか
787デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/11(木) 21:00:09.10ID:kxyqPSNi0 何をしたら良いか分からないはずと言うのは、かなり甘い見通し
ゲーム会社はそんな甘い考えは持っていない
例えばクライアントソフトをデバッガー環境下で起動されると
サバクラ間のやり取りの相当部分が解析されてしまう
ゲーム会社はそれをさせまいと独自のメモリ保護機構を構築し
そのようなハッキングを検出したら終了させている
ゲーム会社はそんな甘い考えは持っていない
例えばクライアントソフトをデバッガー環境下で起動されると
サバクラ間のやり取りの相当部分が解析されてしまう
ゲーム会社はそれをさせまいと独自のメモリ保護機構を構築し
そのようなハッキングを検出したら終了させている
788デフォルトの名無しさん (ワッチョイ 27e4-PLlx)
2018/10/13(土) 10:43:20.37ID:vROhTmSS0789デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/13(土) 11:00:18.78ID:WkgZggeq0 >毎週変えられたら
だからこういう手間をかけている分けだろう
こういう手間をかけなかったら、解析されてしまうってこと
解析する側からすれば、
調べる対象は手元にあって、サーバーとのやり取りは全部把握出来てしまう
クライアントの中でどういう処理をしているかも調べる事が出来る
途中経路がいくら暗号化されていようと、クライアントの中は丸見えだ
だからこういう手間をかけている分けだろう
こういう手間をかけなかったら、解析されてしまうってこと
解析する側からすれば、
調べる対象は手元にあって、サーバーとのやり取りは全部把握出来てしまう
クライアントの中でどういう処理をしているかも調べる事が出来る
途中経路がいくら暗号化されていようと、クライアントの中は丸見えだ
790デフォルトの名無しさん (ワッチョイ 27e4-PLlx)
2018/10/13(土) 17:02:31.63ID:vROhTmSS0 最初から毎週暗号化しろっていってんじゃん。
不正規なクライアントを作らせないって話してるのに、
メモリ保護やらクライアント解析やら、チート対策とごっちゃにしてるんだよな。
不正規なクライアントを作らせないって話してるのに、
メモリ保護やらクライアント解析やら、チート対策とごっちゃにしてるんだよな。
791デフォルトの名無しさん (オイコラミネオ MMfb-KnhR)
2018/10/13(土) 17:13:36.95ID:/Sv6qn96M まずプレーンな通信で済ませたプロトを作るのが先。
そんなのも作れないのにウダウダ言ってても意味が無いだろ。
そんなのも作れないのにウダウダ言ってても意味が無いだろ。
792デフォルトの名無しさん (ワッチョイ 7fe8-37bo)
2018/10/13(土) 17:31:15.96ID:wAhJCvly0 毎週暗号パターンを変えるような仕組みを採用してるのが当たり前みたいな話になってるけど、
そんなアプリあんの?
後学のために教えてよ
そんなアプリあんの?
後学のために教えてよ
793デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/13(土) 17:32:45.69ID:WkgZggeq0 作らせないことを前提にしたら
泥棒がいないようにすれば警察はいらないねって言いだしてる様なものだ
不正規なクライアントが簡単に作れてしまうだろ
それをどう対策とるんだよ
クライアントの中見られたら、暗号解読をどうやってるか丸見えだ
毎週変えようと、毎日変えようと、全然対策にならないだろう
泥棒がいないようにすれば警察はいらないねって言いだしてる様なものだ
不正規なクライアントが簡単に作れてしまうだろ
それをどう対策とるんだよ
クライアントの中見られたら、暗号解読をどうやってるか丸見えだ
毎週変えようと、毎日変えようと、全然対策にならないだろう
794デフォルトの名無しさん (ワントンキン MMbf-0T1G)
2018/10/13(土) 17:35:11.86ID:FeEBi+qRM パケットと経路の違いもわからないのがペチパーの限界なんだろ
Web脳すぎて草
Web脳すぎて草
795デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/13(土) 17:51:32.87ID:WkgZggeq0 普通は通信相手と信頼関係があって、
外部にそれが漏れないように暗号化するって事だが
ゲームの場合は、通信相手のクライアント自体が
信用出来ない前提でやらないとだめ
外部にそれが漏れないように暗号化するって事だが
ゲームの場合は、通信相手のクライアント自体が
信用出来ない前提でやらないとだめ
796デフォルトの名無しさん (ワッチョイ bf16-Zu1O)
2018/10/13(土) 20:29:18.59ID:t1cbhpEg0 初心者です
PHPからコマンド一発で終わらない外部プログラムの実行して操作を行うことってできますか?
例えばMySQLのコマンドラインツールのようなものです
PHPからコマンド一発で終わらない外部プログラムの実行して操作を行うことってできますか?
例えばMySQLのコマンドラインツールのようなものです
797デフォルトの名無しさん (ワッチョイ e7a5-CsiS)
2018/10/14(日) 01:22:40.52ID:kPrWLnvE0 Laravelを使ってサイト作成しようとしてます。
ブログみたいに左側にサイドメニューがあって
メニューの項目をクリックすると中央のページにその項目の情報が表示されるという
ページを作りたいのですが、
サイドメニューを表示させる方法がわからないので教えてください。
調べたところ、レイアウトを設定するかもしれないところまではわかりました。
ブログみたいに左側にサイドメニューがあって
メニューの項目をクリックすると中央のページにその項目の情報が表示されるという
ページを作りたいのですが、
サイドメニューを表示させる方法がわからないので教えてください。
調べたところ、レイアウトを設定するかもしれないところまではわかりました。
798デフォルトの名無しさん (ワッチョイ e776-WBp8)
2018/10/14(日) 01:25:26.11ID:DpP+LriY0 PHPとかLaravel以前にHTML勉強せよ
799デフォルトの名無しさん (アウアウイー Sa9b-118g)
2018/10/14(日) 02:25:20.24ID:x3f9f9nUa FW使えばなんでもできるとでも思っているのか
800デフォルトの名無しさん (ワッチョイ dfd2-7vHE)
2018/10/14(日) 02:34:26.10ID:VGDv0f/D0 >>796
適当なシェルスクリプorバッチファイルを作成してキックかな
https://webkaru.net/php/function-exec-system/
本当にPHPでやる必要があるのか疑問だが
適当なシェルスクリプorバッチファイルを作成してキックかな
https://webkaru.net/php/function-exec-system/
本当にPHPでやる必要があるのか疑問だが
801デフォルトの名無しさん (ワッチョイ bf16-Zu1O)
2018/10/14(日) 16:07:22.22ID:nHJacGHV0802デフォルトの名無しさん (ワッチョイ 47e9-Zu1O)
2018/10/15(月) 13:04:12.63ID:tYDBCfF70803デフォルトの名無しさん (ワッチョイ 47e9-Zu1O)
2018/10/15(月) 13:10:02.66ID:tYDBCfF70804デフォルトの名無しさん (ワッチョイ 47e9-Zu1O)
2018/10/15(月) 13:12:14.00ID:tYDBCfF70 >>802間違えた
使ったのはWiresharkじゃなくてBurp Suiteだったw
使ったのはWiresharkじゃなくてBurp Suiteだったw
805デフォルトの名無しさん (ワッチョイ 7fb8-PLlx)
2018/10/15(月) 13:21:42.85ID:4PSVnYhZ0 制御やら関数やら使うならPHPでもいいんじゃない
シェルスクリプトってやったことない人には地味に面倒だと思うし
シェルスクリプトってやったことない人には地味に面倒だと思うし
806デフォルトの名無しさん (アウアウウー Saeb-1AHv)
2018/10/15(月) 14:59:49.79ID:mndugOSMa PHP入ってる前提の環境ならPHPでシェルスクリプトっぽいことやったっていいと思うけどね楽だし
Python書けるならその方がいいとは思うけど
Python書けるならその方がいいとは思うけど
807デフォルトの名無しさん (ワッチョイ 7fe8-37bo)
2018/10/15(月) 17:19:44.72ID:EiXwBhFU0808デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/15(月) 17:32:28.40ID:Obfj9PeS0 暗号解読法知りたいなら、このスレではないぞ
809デフォルトの名無しさん (ワッチョイ 47e9-Zu1O)
2018/10/16(火) 13:07:24.26ID:FKF9rkIY0 >>807
は?
大手のセガですらそんな感じなんだから
791が言ってるように、つべこべ言ってる暇あったらプロト作れよ
って話をしたかっただけなんだがw
メモリ保護みたいなチート対策と混同してる奴いるし
何なのこのスレww さすがPHPerwww
は?
大手のセガですらそんな感じなんだから
791が言ってるように、つべこべ言ってる暇あったらプロト作れよ
って話をしたかっただけなんだがw
メモリ保護みたいなチート対策と混同してる奴いるし
何なのこのスレww さすがPHPerwww
810デフォルトの名無しさん (ワッチョイ 078a-oHS3)
2018/10/16(火) 13:13:55.52ID:dIjk/xku0 一般的な質問しかしていないのにプロトタイプも糞もないぞ
勘違いしているのはお前だろう
勘違いしているのはお前だろう
811デフォルトの名無しさん (ワッチョイ 275b-ToA/)
2018/10/16(火) 13:31:22.77ID:1YlWxxt/0 ざっとしか見てないから結局元の質問が何なのかよく分からないけど
せめて通信の秘匿化・通信内容の暗号化・その他ぐらいは分けて考えないと
そこをごちゃごちゃに書く人がいるからわけが分からなくなる
#たぶん何となくしってる事を適当に並べただけなんだろう
とりあえずapiみたいにhttp(s)使ってピンポン形式でやり取りするだけならプロトぐらいはすぐ作れるでしょ
せめて通信の秘匿化・通信内容の暗号化・その他ぐらいは分けて考えないと
そこをごちゃごちゃに書く人がいるからわけが分からなくなる
#たぶん何となくしってる事を適当に並べただけなんだろう
とりあえずapiみたいにhttp(s)使ってピンポン形式でやり取りするだけならプロトぐらいはすぐ作れるでしょ
812デフォルトの名無しさん (ワッチョイ 078a-oHS3)
2018/10/16(火) 13:40:34.39ID:dIjk/xku0 質問者の聞きたいことは
出来るか出来ないかなので
出来ないと言う結論が出て
質疑は終了していると思うけど
出来るか出来ないかなので
出来ないと言う結論が出て
質疑は終了していると思うけど
813デフォルトの名無しさん (ワッチョイ 7fe8-37bo)
2018/10/16(火) 19:12:19.10ID:XYy62ZSp0 非正規蔵を作られて鯖にアクセスされたくないってのが元々の質問内容
それに対して、暗号化して定期的に別パターンに変更するのが当たり前(ドヤ
とか宣い始めたのが>790>809(もうちょっと前から)なんだよね。
当たり前っつーならそれ挙げてみ?って書いたら、全然そうなってない例しか
挙げられなかった始末。
挙げ句の果てには809の言いぐさで論点すり替えて未だにマウンティング
しようと必死なわけ。
普通に考えたら、暗号化までは普通だろうが、暗号化パターンを定期的に変更
しようなら短スパンでの蔵の更新か暗号パターンファイルの更新をして配布
しなきゃならん。当然鯖の方も対応せにゃならん。
(日付時間を種にしてやる方法もなきにしもあらずだが穴がある)
809の脳味噌はそこまで一切考えずにゲーム脳の脊椎反射でマウントドヤドヤ
してるだけだろ。
それに対して、暗号化して定期的に別パターンに変更するのが当たり前(ドヤ
とか宣い始めたのが>790>809(もうちょっと前から)なんだよね。
当たり前っつーならそれ挙げてみ?って書いたら、全然そうなってない例しか
挙げられなかった始末。
挙げ句の果てには809の言いぐさで論点すり替えて未だにマウンティング
しようと必死なわけ。
普通に考えたら、暗号化までは普通だろうが、暗号化パターンを定期的に変更
しようなら短スパンでの蔵の更新か暗号パターンファイルの更新をして配布
しなきゃならん。当然鯖の方も対応せにゃならん。
(日付時間を種にしてやる方法もなきにしもあらずだが穴がある)
809の脳味噌はそこまで一切考えずにゲーム脳の脊椎反射でマウントドヤドヤ
してるだけだろ。
814デフォルトの名無しさん (ワッチョイ 7f81-VhFj)
2018/10/16(火) 19:28:52.29ID:gETK/lfa0815デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/16(火) 19:41:14.46ID:+HAYOFLG0816デフォルトの名無しさん (ワッチョイ 7fb8-PLlx)
2018/10/16(火) 19:46:16.42ID:YwbSFpxf0 自動でログインしてセッション確立して投稿するようなスクリプトがあるけど
HTTPに限らず通信手順をちゃんと模倣できていればそれが可能
防ぎたいのなら通信部分を解析されない対策をとればいいのだけど
まあ専門外になるしPHPerには難しいと思うよ
HTTPに限らず通信手順をちゃんと模倣できていればそれが可能
防ぎたいのなら通信部分を解析されない対策をとればいいのだけど
まあ専門外になるしPHPerには難しいと思うよ
817デフォルトの名無しさん (オイコラミネオ MMfb-KnhR)
2018/10/16(火) 21:29:00.95ID:9ty9KlTGM いいからさっさとプロト作れよ
818デフォルトの名無しさん (ワッチョイ e776-WBp8)
2018/10/16(火) 22:59:18.93ID:k//Fq9Pi0819デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/17(水) 01:43:49.88ID:3pfHQO2y0 話の前の方から引用すると
>最初から毎週暗号化しろっていってんじゃん。
これやってないよねって話でしょ
802自身が実際にはキャプチャしたら暗号化すらしてないって言ってる
毎週暗号パターン変更してるのかしてないのかの事実関係は
どうでもいいんだけど、上から目線で言う事毎回矛盾してるのはどうなのって話なのでは
>最初から毎週暗号化しろっていってんじゃん。
これやってないよねって話でしょ
802自身が実際にはキャプチャしたら暗号化すらしてないって言ってる
毎週暗号パターン変更してるのかしてないのかの事実関係は
どうでもいいんだけど、上から目線で言う事毎回矛盾してるのはどうなのって話なのでは
820デフォルトの名無しさん (ワッチョイ 7fb8-PLlx)
2018/10/17(水) 03:56:11.78ID:leuazgxV0821デフォルトの名無しさん (ワッチョイ 7fe8-37bo)
2018/10/17(水) 14:21:09.22ID:D/px6urb0822デフォルトの名無しさん (ワッチョイ e79e-JlWZ)
2018/10/17(水) 17:09:22.67ID:xHybN1E+0 配列で得られたデータをオブジェクトに変換してリターン
している例を見たのですが、何かメリットがあるのでしょうか?
return (object)$arr;
している例を見たのですが、何かメリットがあるのでしょうか?
return (object)$arr;
823デフォルトの名無しさん (ワッチョイ 47e9-Zu1O)
2018/10/17(水) 17:54:36.83ID:ovwDg+Xe0 何かよく分からんが
勝手にマウント(笑)がどうとかと勘違いして
勝手にドヤ顔(笑)がどうとか喚き散らしてるだけって事はよく分かったw
つかプライドが高いのかなんなのかしらんが
現実世界で話したら実に面倒臭そうなやつばっかだなw
セガでもそんな感じなんだし難しい事考える前に適当に作って動かしてみれば
俺が言いたいのはこれだけ
何をそんなに噛み付く必要があるんだw キモすぎww
勝手にマウント(笑)がどうとかと勘違いして
勝手にドヤ顔(笑)がどうとか喚き散らしてるだけって事はよく分かったw
つかプライドが高いのかなんなのかしらんが
現実世界で話したら実に面倒臭そうなやつばっかだなw
セガでもそんな感じなんだし難しい事考える前に適当に作って動かしてみれば
俺が言いたいのはこれだけ
何をそんなに噛み付く必要があるんだw キモすぎww
824デフォルトの名無しさん (ワッチョイ 47e9-Zu1O)
2018/10/17(水) 17:57:45.30ID:ovwDg+Xe0 >>822
返り値を受け取る側でオブジェクトの方が都合が良いからだろ
まあPHPerは配列大好きだからな
例えばPDOのPDOStatementなんかはTraversableだから
そのまんまforeachでぶん回せるのに
それをわざわざfetch()とかで配列にしてみたりとかさw
返り値を受け取る側でオブジェクトの方が都合が良いからだろ
まあPHPerは配列大好きだからな
例えばPDOのPDOStatementなんかはTraversableだから
そのまんまforeachでぶん回せるのに
それをわざわざfetch()とかで配列にしてみたりとかさw
825デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/17(水) 18:05:15.78ID:3pfHQO2y0 >>823
偉そうに自己矛盾を認めないで草を生やして相手を卑下している時点で、どっちが面倒なのかな。
偉そうに自己矛盾を認めないで草を生やして相手を卑下している時点で、どっちが面倒なのかな。
826デフォルトの名無しさん (ワッチョイ e79e-JlWZ)
2018/10/17(水) 18:07:27.22ID:xHybN1E+0827デフォルトの名無しさん (ワッチョイ bf17-DKnb)
2018/10/17(水) 20:44:36.79ID:swlX/dQc0 とりあえずプロトタイプをというのは至極まっとうな意見だと思うので
何をそんなに顔真っ赤にする必要があるのやら全くもって理解不能
何をそんなに顔真っ赤にする必要があるのやら全くもって理解不能
828デフォルトの名無しさん (ワッチョイ 6795-I59m)
2018/10/17(水) 20:51:29.44ID:sCj44sRT0 マウント
ドヤ顔
上から目線
このあたりの単語を好んで使う人は自己愛性人格障害だから相手にしないのが吉
ドヤ顔
上から目線
このあたりの単語を好んで使う人は自己愛性人格障害だから相手にしないのが吉
829デフォルトの名無しさん (ワッチョイ 7fe8-37bo)
2018/10/17(水) 20:56:47.75ID:D/px6urb0830デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/17(水) 21:10:08.06ID:3pfHQO2y0 う〜ん。
自分も非正規蔵の件について話に入ってたけど、認識違いとかのズレで
まあどうでもいいやと思って黙ってたけど、結論はいいとして方法論で
これが当然のようにいいながら矛盾しつつ相手を卑下するやり方には
同意しかねるね。
議論の内容より相手を叩く事に重点を置いてるだけにしか見えない。
まあこんなところで議論とか求めても仕方ないけど、筋が通ってない分
ヤクザにも及ばないタチの悪さとは思う。
自分も非正規蔵の件について話に入ってたけど、認識違いとかのズレで
まあどうでもいいやと思って黙ってたけど、結論はいいとして方法論で
これが当然のようにいいながら矛盾しつつ相手を卑下するやり方には
同意しかねるね。
議論の内容より相手を叩く事に重点を置いてるだけにしか見えない。
まあこんなところで議論とか求めても仕方ないけど、筋が通ってない分
ヤクザにも及ばないタチの悪さとは思う。
831デフォルトの名無しさん (ワッチョイ 6795-I59m)
2018/10/17(水) 21:11:16.32ID:sCj44sRT0 792は自分が馬鹿にされてると勘違いしてるのか
大手でもそんなことやってないと818も言ってるんだなら答え出てるだろ
やっぱり病気だわお前
大手でもそんなことやってないと818も言ってるんだなら答え出てるだろ
やっぱり病気だわお前
832デフォルトの名無しさん (ワッチョイ bf17-DKnb)
2018/10/17(水) 21:27:10.80ID:swlX/dQc0 ローカルプロキシ使ってキャプチャするぐらいなら簡単にできるんだから実際にどんなデータになってるか見てみればいいのにね
他の人が言ってるとおり意外と簡素なものも少なくないと思うよ
他の人が言ってるとおり意外と簡素なものも少なくないと思うよ
833デフォルトの名無しさん (スププ Sdff-tx+y)
2018/10/17(水) 21:38:17.22ID:xvHZsaXfd834デフォルトの名無しさん (ワッチョイ e79e-fbiU)
2018/10/17(水) 21:49:17.31ID:3pfHQO2y0835デフォルトの名無しさん (ワッチョイ 7fb8-PLlx)
2018/10/17(水) 23:02:30.73ID:leuazgxV0 読み返してみてだいたいどうしてこうなったか理解した
毎週変える対策すればクライアントなんて出来ないはず→
「はず」ってのは考えが甘い→
言い方がわるかった「はず」ではなくて不可能→
毎週変えなかったら解析されてしまうだろ→
最初から毎週変えろいってる
この最後のはそういう前提で話をしてるってことであって
別にそれが当たり前だとは言ってないと思うんだわ
毎週変える対策すればクライアントなんて出来ないはず→
「はず」ってのは考えが甘い→
言い方がわるかった「はず」ではなくて不可能→
毎週変えなかったら解析されてしまうだろ→
最初から毎週変えろいってる
この最後のはそういう前提で話をしてるってことであって
別にそれが当たり前だとは言ってないと思うんだわ
836デフォルトの名無しさん (ワッチョイ e776-WBp8)
2018/10/17(水) 23:26:36.20ID:wTgde3Ka0 話の流れがイマイチ読めないが暗号化のキーは共通鍵って話なの?
それとも暗号化のアルゴリズムを変えるとかトンでも理論の話なの?
どっちでもおかしな話だけれど
そんなことしてるアプリあったら教えてほしいw
それとも暗号化のアルゴリズムを変えるとかトンでも理論の話なの?
どっちでもおかしな話だけれど
そんなことしてるアプリあったら教えてほしいw
837デフォルトの名無しさん (ワッチョイ 7fb8-PLlx)
2018/10/17(水) 23:46:17.27ID:leuazgxV0 ttps://www.otwo.jp/blog/cheat_measures/
多分こんな感じの話
多分こんな感じの話
838デフォルトの名無しさん (ワッチョイ 7b5b-a866)
2018/10/18(木) 10:11:12.44ID:1rhihpgt0839デフォルトの名無しさん (ワッチョイ 66d5-7cZp)
2018/10/18(木) 11:09:28.82ID:cOwpgSZ30 外から解析できるような鍵なら毎週変えたところで無意味だし、
リバースして解析されるならそれこそ毎週変えても無意味だと思うの。
だからそんなことは置いといて、さっさとプロト作れってこった。
それが出来たらパラメタのチェック方法を掘り下げていく方が効果的。
リバースして解析されるならそれこそ毎週変えても無意味だと思うの。
だからそんなことは置いといて、さっさとプロト作れってこった。
それが出来たらパラメタのチェック方法を掘り下げていく方が効果的。
840デフォルトの名無しさん (ワッチョイ bfe9-7PZ0)
2018/10/18(木) 11:13:40.24ID:or/egUOV0841デフォルトの名無しさん (ワッチョイ bee8-Ue0Q)
2018/10/18(木) 12:49:16.43ID:snT/KIMy0842デフォルトの名無しさん (スププ Sd8a-1yD9)
2018/10/18(木) 13:30:57.93ID:KrxjH9oQd いつまでクソみたいな揚げ足取りをやってるんだか
特にお前の話は糞の役にも立ってないんだから黙ってクソして寝てろ
マウントとかドヤ顔って単語を好んで使う奴ってほんとゴミクズだわ
特にお前の話は糞の役にも立ってないんだから黙ってクソして寝てろ
マウントとかドヤ顔って単語を好んで使う奴ってほんとゴミクズだわ
843デフォルトの名無しさん (ワッチョイ 7b5b-a866)
2018/10/18(木) 13:36:14.98ID:1rhihpgt0844デフォルトの名無しさん (ワッチョイ bfe9-7PZ0)
2018/10/18(木) 13:52:25.45ID:or/egUOV0 まあでもlocalに串立ててGUIでデータの中身見るなんてのは
専門知識も要らない低レベルな話なんで
そんな話をドヤ顔だのマウントだのと言われて俺困惑ww
何がこいつの逆鱗に触れたんだろうw
おちょくる分には面白いが
専門知識も要らない低レベルな話なんで
そんな話をドヤ顔だのマウントだのと言われて俺困惑ww
何がこいつの逆鱗に触れたんだろうw
おちょくる分には面白いが
845デフォルトの名無しさん (ワントンキン MMda-ovqH)
2018/10/18(木) 14:09:16.92ID:xfUBwp3TM おまえらほんとおもしろいな
846デフォルトの名無しさん (ワッチョイ bee8-Ue0Q)
2018/10/18(木) 17:01:50.49ID:snT/KIMy0 あるなら教えてくれ(あればな)→これでドヤ!(ないけど)→ねえんだろ何ドヤ顔してんの
この流れで悔しがってるのが802以外に居るのが不思議だね
本人か親兄弟か何か?
この流れで悔しがってるのが802以外に居るのが不思議だね
本人か親兄弟か何か?
847デフォルトの名無しさん (オイコラミネオ MMb6-OGXo)
2018/10/18(木) 19:15:49.02ID:1B/W+3ebM PHP 7でASPタグが廃止された理由ってなに?
セキュリティ?パフォーマンス?
セキュリティ?パフォーマンス?
848デフォルトの名無しさん (ワッチョイ beb8-4vxQ)
2018/10/18(木) 20:27:57.21ID:aXklSebk0849デフォルトの名無しさん (ワッチョイ f39e-YQEo)
2018/10/18(木) 21:10:48.74ID:RrGSa6XE0 自分も誤読した立場なんでどっちでも取れるレスだったなあと思えたけど、
こうやって一々煽りに来るのが一番悪いと思いますね
いつまで続けるんです?
こうやって一々煽りに来るのが一番悪いと思いますね
いつまで続けるんです?
850デフォルトの名無しさん (ワッチョイ 7eeb-KCR/)
2018/10/18(木) 21:13:25.23ID:iDy8I7c80851デフォルトの名無しさん (ワッチョイ c395-1yD9)
2018/10/18(木) 21:21:54.89ID:DXkQKcQs0852デフォルトの名無しさん (ワッチョイ 8b2d-nBLa)
2018/10/18(木) 21:25:29.56ID:uh9efSuM0 >>850
こういうproposalに対してさえnoを投じるrasmusほんま老害
こういうproposalに対してさえnoを投じるrasmusほんま老害
853デフォルトの名無しさん (ワッチョイ bee8-OawP)
2018/10/18(木) 21:47:24.32ID:snT/KIMy0 >>851
採用例を求めてるのに、採用してなかった一例のみ挙げて加勢とか判断材料にもならん
馬鹿としか思えんし、その加勢方法がキャプチャなんて所がむしろ失笑しかしてないけど?
高度でもないのに自分でそんな詳細一々紹介しに来る神経がもう、背伸び精一杯だろ
やっぱりドヤ顔してたんで?
ドヤ顔指摘がツボすぎるから悔しくて粘着して煽りに来てるんだろ?
採用例を求めてるのに、採用してなかった一例のみ挙げて加勢とか判断材料にもならん
馬鹿としか思えんし、その加勢方法がキャプチャなんて所がむしろ失笑しかしてないけど?
高度でもないのに自分でそんな詳細一々紹介しに来る神経がもう、背伸び精一杯だろ
やっぱりドヤ顔してたんで?
ドヤ顔指摘がツボすぎるから悔しくて粘着して煽りに来てるんだろ?
854デフォルトの名無しさん (ワッチョイ 979f-OGXo)
2018/10/18(木) 21:49:30.72ID:3Uf/lafq0855デフォルトの名無しさん (ワッチョイ 2617-vBZT)
2018/10/18(木) 22:15:50.71ID:Vx517U3q0 ドヤ顔君まだ暴れてて草
856デフォルトの名無しさん (ワッチョイ 1fc3-rFnw)
2018/10/20(土) 03:05:30.62ID:mGvzmAJw0 strlen()にintegerを渡してもちゃんと桁数が返ってくるのはなぜですか?
stringじゃなくても動作するってことは、どこかで型変換されてるんですか?
stringじゃなくても動作するってことは、どこかで型変換されてるんですか?
857デフォルトの名無しさん (ワッチョイ beb8-4vxQ)
2018/10/20(土) 15:36:54.08ID:gEDPu4pz0 http://php.net/manual/ja/functions.arguments.php
> 強い型付け ¶
> デフォルトでは、間違った型を渡された場合でも、可能な限りは来されている型に変換します。
> たとえば、string を想定している関数のパラメータに integer が渡された場合は、その値を string 型として受け取ります。
declare(strict_types=1);
気になるなら、これいれるとTypeError投げるようになる。
> 強い型付け ¶
> デフォルトでは、間違った型を渡された場合でも、可能な限りは来されている型に変換します。
> たとえば、string を想定している関数のパラメータに integer が渡された場合は、その値を string 型として受け取ります。
declare(strict_types=1);
気になるなら、これいれるとTypeError投げるようになる。
858デフォルトの名無しさん (ワッチョイ 1fc3-rFnw)
2018/10/21(日) 00:28:16.60ID:aes4F1Ww0859デフォルトの名無しさん (ワッチョイ 8b2d-nBLa)
2018/10/21(日) 01:43:34.95ID:0/W2nHVs0 寧ろ動的型付けの言語なら普通の挙動だけど
860デフォルトの名無しさん (ワッチョイ beb8-4vxQ)
2018/10/21(日) 03:14:09.66ID:Pz2IqIp+0 > 組み込み関数内からの関数呼び出しは、 strict_types 宣言の影響を受けません。
とも書いてあるな。
strlenはもろに影響受けてるようだけど、よくわからなくなってきたw
とも書いてあるな。
strlenはもろに影響受けてるようだけど、よくわからなくなってきたw
861デフォルトの名無しさん (ワッチョイ c395-1yD9)
2018/10/21(日) 12:16:46.38ID:TfVuD13o0 >>858
逆にこういう挙動じゃない動的型付けの言語教えて
逆にこういう挙動じゃない動的型付けの言語教えて
862デフォルトの名無しさん (ワッチョイ 377e-Pr2h)
2018/10/21(日) 15:33:51.77ID:8uJUIhMV0 文字列のUnicodeを10進数または16進数の配列として取得するにはどうすればよいですか?
863デフォルトの名無しさん (ワッチョイ 66d5-7cZp)
2018/10/21(日) 15:48:19.30ID:FEyhRhG60 >>862
文字列を $s としたとき、$s[$i] で $i バイト目の文字が得られる。
これを ord するとその ASCII値が得られる。
UNICODE文字単位でそれがやりたいなら、mb_substr を組み合わせてやる感じかな。
文字列を $s としたとき、$s[$i] で $i バイト目の文字が得られる。
これを ord するとその ASCII値が得られる。
UNICODE文字単位でそれがやりたいなら、mb_substr を組み合わせてやる感じかな。
864名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ bfe9-7PZ0)
2018/10/22(月) 10:46:42.37ID:zqf9WRrQ0 >>862
$str = 'unkoうんこ';
$arr = [];
foreach (preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY) as $char) {
$arr[$char] = [
'hex' => bin2hex($char),
'unicode' => base_convert(bin2hex(mb_convert_encoding($char, 'UTF-32BE', 'UTF-8')), 16, 16),
'json' => json_encode($char),
];
}
print_r($arr);
あとは結果見て都合の良いように改変してどうぞ
$str = 'unkoうんこ';
$arr = [];
foreach (preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY) as $char) {
$arr[$char] = [
'hex' => bin2hex($char),
'unicode' => base_convert(bin2hex(mb_convert_encoding($char, 'UTF-32BE', 'UTF-8')), 16, 16),
'json' => json_encode($char),
];
}
print_r($arr);
あとは結果見て都合の良いように改変してどうぞ
865デフォルトの名無しさん (ワッチョイ a3ef-7TBo)
2018/10/27(土) 20:45:15.13ID:LtQGrCdd0 よろしくお願いします。
$date=date('Y-m-d H:i:s');
$sql="INSERT INTO tableName (name,comment,created) VALUE (:name,:comment,'{$date}')";
のこコード中で、最後の出てくる ' { $date } ' が、シングルクォートで囲まれているのは何故でしょうか?
$dateが文字列になるからなのでしょうか?
$date=date('Y-m-d H:i:s');
$sql="INSERT INTO tableName (name,comment,created) VALUE (:name,:comment,'{$date}')";
のこコード中で、最後の出てくる ' { $date } ' が、シングルクォートで囲まれているのは何故でしょうか?
$dateが文字列になるからなのでしょうか?
866デフォルトの名無しさん (ワッチョイ e3d2-8L5D)
2018/10/28(日) 02:50:58.85ID:GS4HIDpq0 >>865
前後がないとわからんがPDOかな?
:nameや:commentはパインド変数だから
型を意識する必要ないけど$dateはバインドしてないから
文字扱いにしてるんやろね
んで、文字列でシングル使いたいから全体はダブルで括るという
前後がないとわからんがPDOかな?
:nameや:commentはパインド変数だから
型を意識する必要ないけど$dateはバインドしてないから
文字扱いにしてるんやろね
んで、文字列でシングル使いたいから全体はダブルで括るという
867デフォルトの名無しさん (ブーイモ MMf3-JP9K)
2018/10/28(日) 06:36:36.32ID:75+SpqZNM SQLでは文字列リテラルはシングルクオーテーションで囲まないと駄目ってだけだぞ
SQL文として正しくなるように文字列を組み立ててるだけって事を理解しろ
SQL文として正しくなるように文字列を組み立ててるだけって事を理解しろ
868デフォルトの名無しさん (ブーイモ MMbf-JP9K)
2018/10/28(日) 07:26:54.25ID:7IwsJv31M さらに言うと
{$date}は 2018/01/01 01:00:00 みたいに展開されるわけだが
シングルクォートが無いとこの部分は数値と除算と…のように解釈されてエラーになるわけだ
MySQLだと日付時刻の指定はYYYYMMDDhhmmssかYYMMDDhhmmssの形式の数値でもいいから
$date=date('YmdHis')かdate('ymdHis')
だったらクォートいらないけどな
{$date}は 2018/01/01 01:00:00 みたいに展開されるわけだが
シングルクォートが無いとこの部分は数値と除算と…のように解釈されてエラーになるわけだ
MySQLだと日付時刻の指定はYYYYMMDDhhmmssかYYMMDDhhmmssの形式の数値でもいいから
$date=date('YmdHis')かdate('ymdHis')
だったらクォートいらないけどな
869デフォルトの名無しさん (ワッチョイ a3ef-7TBo)
2018/10/28(日) 07:45:59.64ID:/wLLb6M30 みなさま、ありがとうございました!
朝からスッキリできました!
皆様偉大な先生です。本当にありがとうございました!!
朝からスッキリできました!
皆様偉大な先生です。本当にありがとうございました!!
870デフォルトの名無しさん (ワッチョイ 8d98-p5uY)
2018/10/30(火) 23:58:06.08ID:04COuKNl0 下記のように名前空間(ディレクトリ名)とクラス名が重複するのって何かデメリット的な事ありますか?
use Myapp\FooBar\FooBar;
FooBar::new();
use Myapp\FooBar\FooBar;
FooBar::new();
871デフォルトの名無しさん (ワッチョイ 859e-o1DS)
2018/10/31(水) 09:43:19.86ID:J8G9WBiJ0872デフォルトの名無しさん (ワッチョイ 1be9-JHIh)
2018/10/31(水) 10:59:37.08ID:BXLRnHBs0 >>871
どこをどう見ても3にしかならないし
実際実行しても3が出力されるんで
何かどっかがおかしいんだろ
つか変数のglobal宣言なんていまさら使うことなんかないから
理解できんのなら忘れていいよこんなもんw
どこをどう見ても3にしかならないし
実際実行しても3が出力されるんで
何かどっかがおかしいんだろ
つか変数のglobal宣言なんていまさら使うことなんかないから
理解できんのなら忘れていいよこんなもんw
873デフォルトの名無しさん (ワッチョイ 859e-o1DS)
2018/10/31(水) 17:59:49.38ID:J8G9WBiJ0874デフォルトの名無しさん (ワッチョイ 73d5-nh9x)
2018/10/31(水) 18:04:01.05ID:dV3e+Ndf0875デフォルトの名無しさん (ワッチョイ 1be9-JHIh)
2018/10/31(水) 19:01:40.49ID:BXLRnHBs0 >>873
必死ってのがよく分からんw
コードをコピペして実行するだけなんだから数秒で終わる話だと思うんだが
ひょっとしてコードを見よう見まねで手打ち(「写経」という)してね?
写経が無駄だとは言わんが
もうちょい色々分かりだしてからやった方がいいぞ
globalについては
グローバル汚染って言葉でググってみ
今PHPをやってるって事はセットでJavaScriptもやる可能性が高いわな?
そこも踏まえて言語を問わず
今自分がどこの空間を使っててそこを「汚染」しないようにはどうすりゃいいか
意識した方がいいぞってことだ
って書くのが面倒くさかったから適当に書いたw 適当すぎだなww
今はよく分からなくてもその内何となく分かってくるから
今わかんないなら気にするなw
必死ってのがよく分からんw
コードをコピペして実行するだけなんだから数秒で終わる話だと思うんだが
ひょっとしてコードを見よう見まねで手打ち(「写経」という)してね?
写経が無駄だとは言わんが
もうちょい色々分かりだしてからやった方がいいぞ
globalについては
グローバル汚染って言葉でググってみ
今PHPをやってるって事はセットでJavaScriptもやる可能性が高いわな?
そこも踏まえて言語を問わず
今自分がどこの空間を使っててそこを「汚染」しないようにはどうすりゃいいか
意識した方がいいぞってことだ
って書くのが面倒くさかったから適当に書いたw 適当すぎだなww
今はよく分からなくてもその内何となく分かってくるから
今わかんないなら気にするなw
876デフォルトの名無しさん (ワッチョイ 175b-119k)
2018/10/31(水) 19:21:20.91ID:V+5pvMby0 使い方は覚えておいた方がいいけど
なるべく使わずにすむようにした方がいいだろうね
WordPressはglobal宣言しまくってるけど設計としてはあまりまねしてほしくないのは確か
なるべく使わずにすむようにした方がいいだろうね
WordPressはglobal宣言しまくってるけど設計としてはあまりまねしてほしくないのは確か
877デフォルトの名無しさん (スププ Sdaf-eYkk)
2018/10/31(水) 19:28:03.24ID:rEIsu6q2d wpは歴史的に仕方ない
ポリシー的に後方互換を大事にしてるしな
設計はまねするなという意見には同意
そろそろ後方互換を捨てろよって思うけどfirefoxみたいなことになる可能性もあるからなー
ポリシー的に後方互換を大事にしてるしな
設計はまねするなという意見には同意
そろそろ後方互換を捨てろよって思うけどfirefoxみたいなことになる可能性もあるからなー
878デフォルトの名無しさん (ワッチョイ 8317-Cbrb)
2018/10/31(水) 21:49:30.59ID:8LMDJ4U80 wordpressって推奨はPHP7以降になっているけど、
実際はPHP5.2とmysql5.0でも最新版が動くらしい
下手すると10年以上前?
>>876を見て久しぶりにコードのぞいたら本当にglobalだらけで笑った
こういう古い設計のコードを見てPHPがくそ言語だと言われるのはモヤッとする
実際はPHP5.2とmysql5.0でも最新版が動くらしい
下手すると10年以上前?
>>876を見て久しぶりにコードのぞいたら本当にglobalだらけで笑った
こういう古い設計のコードを見てPHPがくそ言語だと言われるのはモヤッとする
879デフォルトの名無しさん (スププ Sdaf-eYkk)
2018/10/31(水) 22:25:32.37ID:rEIsu6q2d プラグインやテーマもテンプレートエンジンを使わずに素のPHPを使ってるもんだからXSSやCSRFとかの対策が完全自動化されてないのも問題
2018年にもなって素のPHPで書いたテンプレートなんか読みたくないよ。。。
2018年にもなって素のPHPで書いたテンプレートなんか読みたくないよ。。。
880デフォルトの名無しさん (ワッチョイ cd95-Ha4+)
2018/10/31(水) 22:47:31.62ID:7+pd6iJs0 5.2っていうと配列をarray()って書いてた時代か
名前空間も無名関数もタイプヒンティングもないし
定数定義にdefine使ってグローバルで衝突しないように接頭辞を付けるようにしてたっけ
WordPress頑張りすぎだろ
名前空間も無名関数もタイプヒンティングもないし
定数定義にdefine使ってグローバルで衝突しないように接頭辞を付けるようにしてたっけ
WordPress頑張りすぎだろ
881デフォルトの名無しさん (ワッチョイ ab74-7TBo)
2018/10/31(水) 23:43:21.16ID:aqQK2dvp0 まぁ現状のコードベース維持するならコードスタイルもコードベースに合わせざるを得ないわな
モダンな書き方にするなら新規で書き起こした方が低コストだろうし
モダンな書き方にするなら新規で書き起こした方が低コストだろうし
882デフォルトの名無しさん (ワッチョイ c7e9-zV7r)
2018/11/01(木) 11:47:34.96ID:YMjHonMD0 >>881
だな
まあWPはしゃーない
プラグインとテーマの豊富さが売りなんだから
そこ切り捨てちゃったらそれこそFireFoxみたいなことになるw
大昔はこんな実装をしてたんだと反面教師にするにはいい材料だ
モダンなものに触れるだけじゃなぜそうすべきなのかが理解できないしな
俺の知り合いにもWPに親殺されたみたいなのがいるから
WPがこの世から消えれば幸せになれるやつも少なくないんだろうが
逆にWPだけで飯食ってるようなやつもいるからなあw
だな
まあWPはしゃーない
プラグインとテーマの豊富さが売りなんだから
そこ切り捨てちゃったらそれこそFireFoxみたいなことになるw
大昔はこんな実装をしてたんだと反面教師にするにはいい材料だ
モダンなものに触れるだけじゃなぜそうすべきなのかが理解できないしな
俺の知り合いにもWPに親殺されたみたいなのがいるから
WPがこの世から消えれば幸せになれるやつも少なくないんだろうが
逆にWPだけで飯食ってるようなやつもいるからなあw
883デフォルトの名無しさん (ワッチョイ fe92-rn+T)
2018/11/01(木) 21:57:02.20ID:nscXvzWP0884デフォルトの名無しさん (アウアウイー Safb-C0mi)
2018/11/01(木) 22:43:57.33ID:bYTPTsyya アニメは他所でやれ
885デフォルトの名無しさん (ワッチョイ 76ef-MyS3)
2018/11/02(金) 06:31:57.91ID:rR4ZFPRy0 お願いします。下記はテキストからの抜粋です。
新規登録するメールが、DBで重複していないかチェックするコードです。
function email_exists($dbh,$email){
$sql="SELECT COUNT(id) FROM members where email=:email";
$stmt=$dbh->prepare($sql);
$stmt->bindValue(':email',$email,PDO::PARAM_STR);
$stmt->execute();
$count=$stmt->fetch(PDO::FETCH_ASSOC);
if($count['COUNT(id)']>0){
return TRUE;
}else{
return FALSE;
}
}
解説では、入力するメールアドレスが「何件あるか」調べます。取得する値は0か1。
しっかりと行数をカウントし、メールアドレスが登録済みかチェックします。
と記載されています。
コードを見ていると、fetchで連想配列を1行だけ$count変数に格納しているだけに読めてしまい、
「何件存在しているか」、「行数をカウントする」、という部分の記載が、コード上理解できません。
上記のコードで、DB上で該当する行の行数をカウントしている部分はどこにあたるのでしょうか?
新規登録するメールが、DBで重複していないかチェックするコードです。
function email_exists($dbh,$email){
$sql="SELECT COUNT(id) FROM members where email=:email";
$stmt=$dbh->prepare($sql);
$stmt->bindValue(':email',$email,PDO::PARAM_STR);
$stmt->execute();
$count=$stmt->fetch(PDO::FETCH_ASSOC);
if($count['COUNT(id)']>0){
return TRUE;
}else{
return FALSE;
}
}
解説では、入力するメールアドレスが「何件あるか」調べます。取得する値は0か1。
しっかりと行数をカウントし、メールアドレスが登録済みかチェックします。
と記載されています。
コードを見ていると、fetchで連想配列を1行だけ$count変数に格納しているだけに読めてしまい、
「何件存在しているか」、「行数をカウントする」、という部分の記載が、コード上理解できません。
上記のコードで、DB上で該当する行の行数をカウントしている部分はどこにあたるのでしょうか?
886デフォルトの名無しさん (オイコラミネオ MMe3-VPfc)
2018/11/02(金) 09:48:39.29ID:Io9E5js5M SQL文自体でカウントしてるから1行読むだけでいいやん
てか、1行しか返ってこないし
てか、1行しか返ってこないし
887デフォルトの名無しさん (ワッチョイ c7e9-zV7r)
2018/11/02(金) 10:05:36.78ID:6yQoCIiM0 >>885
カウントはSQLの集計関数であるCOUNT()でやってる
SELECT COUNT(id)
のところな
こういう時は
"SELECT COUNT(id) AS cnt FROM members";
みたいに別名を付けるくせを付けといた方がいい
ちなみに今回のようにカラム1個のデータだけ欲しい時は
fetch()ではなfetchColumn()を使って
$count = $stmt->fetchColumn();
とすれば
$count には配列ではなく直接 COUNT(id) の値が入るんで楽
さらにこうやって書けば
$count = $stmt->fetch(PDO::FETCH_ASSOC);
以下の冗長な6行がこうやってたった1行で書けるわな
return (bool) $stmt->fetchColumn();
カウントはSQLの集計関数であるCOUNT()でやってる
SELECT COUNT(id)
のところな
こういう時は
"SELECT COUNT(id) AS cnt FROM members";
みたいに別名を付けるくせを付けといた方がいい
ちなみに今回のようにカラム1個のデータだけ欲しい時は
fetch()ではなfetchColumn()を使って
$count = $stmt->fetchColumn();
とすれば
$count には配列ではなく直接 COUNT(id) の値が入るんで楽
さらにこうやって書けば
$count = $stmt->fetch(PDO::FETCH_ASSOC);
以下の冗長な6行がこうやってたった1行で書けるわな
return (bool) $stmt->fetchColumn();
888デフォルトの名無しさん (ワッチョイ c7e9-zV7r)
2018/11/02(金) 10:09:06.54ID:6yQoCIiM0 >>885
さらに言えばw
メアドが登録済みかどうかを知りたいだけなら
COUNT()なんか使う必要はなく
$sql="SELECT id FROM members where email=:email LIMIT 1";
でいい
まぁその例はあくまでも教科書的に「何件あるか」を調べる方法を書いてるだろうが
DB処理ってのはボトルネックになりやすいんで
sqlはなるべく簡素にするのが基本な
さらに言えばw
メアドが登録済みかどうかを知りたいだけなら
COUNT()なんか使う必要はなく
$sql="SELECT id FROM members where email=:email LIMIT 1";
でいい
まぁその例はあくまでも教科書的に「何件あるか」を調べる方法を書いてるだろうが
DB処理ってのはボトルネックになりやすいんで
sqlはなるべく簡素にするのが基本な
889デフォルトの名無しさん (ワッチョイ c7e9-zV7r)
2018/11/02(金) 10:13:15.59ID:6yQoCIiM0 >>883
XMLなんだからsimplexml系とか(他にも色々あるが)で処理すればいいだろ?
gzされてるデータの扱いが分からんのか?
gzされてるデータはローカルに保存した上でgzopen()で開いて処理してもいいし
データ取得にcurl使って CURLOPT_ENCODING => 'gzip' ってオプション指定して自動展開してもいいし
そのままとってきてgzdecode()通してもいいし
好きなようにすりゃいい
XMLなんだからsimplexml系とか(他にも色々あるが)で処理すればいいだろ?
gzされてるデータの扱いが分からんのか?
gzされてるデータはローカルに保存した上でgzopen()で開いて処理してもいいし
データ取得にcurl使って CURLOPT_ENCODING => 'gzip' ってオプション指定して自動展開してもいいし
そのままとってきてgzdecode()通してもいいし
好きなようにすりゃいい
890デフォルトの名無しさん (ワッチョイ fe92-rn+T)
2018/11/02(金) 13:12:23.63ID:H0U+eOT90891デフォルトの名無しさん (ワッチョイ 9aab-MyS3)
2018/11/02(金) 16:43:43.64ID:lKWT8t9P0892デフォルトの名無しさん (ワッチョイ c7e9-zV7r)
2018/11/02(金) 17:13:43.40ID:6yQoCIiM0 >>891
お、おう
そういうレベルだったのかw
変数の中身がどうなってるかわけ分からん時はすぐに
var_dump($count);
ってするんだ
$countが「配列」や「オブジェクト」だと分かってる時は
print_r($count);
ってした方が見やすいから使い分けるといいぞ
とにかく初心者の内はちょっとでもあれ?って思ったらすぐ var_dump() しろ
お、おう
そういうレベルだったのかw
変数の中身がどうなってるかわけ分からん時はすぐに
var_dump($count);
ってするんだ
$countが「配列」や「オブジェクト」だと分かってる時は
print_r($count);
ってした方が見やすいから使い分けるといいぞ
とにかく初心者の内はちょっとでもあれ?って思ったらすぐ var_dump() しろ
893デフォルトの名無しさん (ワッチョイ 9aab-MyS3)
2018/11/02(金) 20:07:32.22ID:lKWT8t9P0 >>892
はい、ありがとうございます
はい、ありがとうございます
894デフォルトの名無しさん (ワッチョイ 76ef-MyS3)
2018/11/03(土) 08:11:13.12ID:29KucSII0 >>885の変数COUNT(id)なのですが
$sql="SELECT COUNT(id) で、変数宣言された、ということでしょうか?
$sql="SELECT COUNT(id) で、変数宣言された、ということでしょうか?
895デフォルトの名無しさん (ワッチョイ 3e9f-Nr8X)
2018/11/03(土) 08:54:23.76ID:XGyq6I+i0 連想配列の添え字という
896デフォルトの名無しさん (ワッチョイ ab95-lmxD)
2018/11/03(土) 14:45:26.63ID:3f9xsIAr0 >>894
上でも書かれてるけどそういう疑問を持ったら実行してvar_dump
スクリプト言語はそうやって簡単に実行して結果が見れるのがメリットなんだから、
もし今それができないなら環境構築から見直さないとものにならないよ
あと上の人もだけどPHPというよりはSQLが分かってない
勉強の仕方が間違ってる
上でも書かれてるけどそういう疑問を持ったら実行してvar_dump
スクリプト言語はそうやって簡単に実行して結果が見れるのがメリットなんだから、
もし今それができないなら環境構築から見直さないとものにならないよ
あと上の人もだけどPHPというよりはSQLが分かってない
勉強の仕方が間違ってる
897デフォルトの名無しさん (ワッチョイ 5b80-Q1ft)
2018/11/03(土) 15:52:27.60ID:rSl2Ac3O0 コレは解説のサンプルコード書いてるヤツが頭ワルイわ
$countを$$colum_valuesとか別の名前にするべき
countと直接一切関係ない
$stmt->fetch()は行の列を全部とってくるのは分かるヤツがみれば
コード書いたアホがなにをやりたいかなんとなく分かる
きっとなウンコphpのウンコライブラリ使うと
辞書の連想配列にカラムの値が格納される仕様になってるのは分かる
コレでわかる
$$column_values=$stmt->fetch(PDO::FETCH_ASSOC);
if($$column_values['COUNT(id)']>0){
↓低学歴知恵遅れが書いた解説コードはペケ
$count=$stmt->fetch(PDO::FETCH_ASSOC);
if($count['COUNT(id)']>0){
$countを$$colum_valuesとか別の名前にするべき
countと直接一切関係ない
$stmt->fetch()は行の列を全部とってくるのは分かるヤツがみれば
コード書いたアホがなにをやりたいかなんとなく分かる
きっとなウンコphpのウンコライブラリ使うと
辞書の連想配列にカラムの値が格納される仕様になってるのは分かる
コレでわかる
$$column_values=$stmt->fetch(PDO::FETCH_ASSOC);
if($$column_values['COUNT(id)']>0){
↓低学歴知恵遅れが書いた解説コードはペケ
$count=$stmt->fetch(PDO::FETCH_ASSOC);
if($count['COUNT(id)']>0){
898デフォルトの名無しさん (ワッチョイ 5b80-Q1ft)
2018/11/03(土) 15:57:47.32ID:rSl2Ac3O0 $$2個は$1個だからな
気にしなくていい
気にしなくていい
899デフォルトの名無しさん (ワッチョイ 769f-4Mp1)
2018/11/04(日) 11:12:58.45ID:XAVCAs+90 PHP 7.2の初歩的な質問をさせてください。
下記のようにコンストラクタの戻り値を宣言すると __construct() cannot declare a return type エラーになります。
__construct( ): void { }
コンストラクタは何も型宣言をしてはいけないということでしょうか?
下記のようにコンストラクタの戻り値を宣言すると __construct() cannot declare a return type エラーになります。
__construct( ): void { }
コンストラクタは何も型宣言をしてはいけないということでしょうか?
900デフォルトの名無しさん (アウアウウー Sac7-9Fbr)
2018/11/04(日) 17:56:28.09ID:A3PnxJ3qa901デフォルトの名無しさん (ワッチョイ 769f-4Mp1)
2018/11/04(日) 18:06:30.73ID:XAVCAs+90 ありがとうございました。
さあ…?
そんなに詳しくないので知りません。
さあ…?
そんなに詳しくないので知りません。
902デフォルトの名無しさん (ワッチョイ 3e9f-Nr8X)
2018/11/04(日) 21:17:19.38ID:hVqxhauo0 コンストラクタの機能は100%インスタンスの生成を成功することなので仮に失敗もあるならbool値のみ、でも言語の機能としてインスタンスの生成を失敗したら使い物にならないので100%インスタンスの生成を成功する言語のはずだから戻り値は必要ない
903デフォルトの名無しさん (ワッチョイ 7a74-MyS3)
2018/11/04(日) 22:00:25.40ID:24sILPZ+0 コンストラクタは失敗時には普通は例外投げますが
904デフォルトの名無しさん (アウアウイー Safb-C0mi)
2018/11/04(日) 22:34:24.16ID:zG9usG6va コンストラクタはなくてもインスタンス作れるから戻り値の保証はする必要ない
905デフォルトの名無しさん (ワッチョイ 769f-4Mp1)
2018/11/05(月) 00:03:35.54ID:Wuac1AE/0 voidぐらいさせてくれてもいいじゃない。
C言語おじいちゃんなんだからあ…
C言語おじいちゃんなんだからあ…
906デフォルトの名無しさん (ワッチョイ 4e81-MyS3)
2018/11/05(月) 00:20:50.67ID:/crf/pgL0 >>905
コメントで挟んでおけば大丈夫?
コメントで挟んでおけば大丈夫?
907デフォルトの名無しさん (ワッチョイ 769f-4Mp1)
2018/11/05(月) 01:02:42.89ID:Wuac1AE/0 @のコメントあるから別に困りはしないよ。
すべて統一という気分の問題かな。
すべて統一という気分の問題かな。
908デフォルトの名無しさん (スププ Sdba-xAZC)
2018/11/05(月) 08:23:12.92ID:rNsZhmmMd 返り値のことを返却値というやつって何なんだろう
何も返却なんてしてないのだが
何も返却なんてしてないのだが
909デフォルトの名無しさん (ワッチョイ 3e9f-Nr8X)
2018/11/05(月) 09:26:17.77ID:vLA2TmCS0 返り血みたいで発音が嫌という人がいる
910デフォルトの名無しさん (ワッチョイ c7e9-zV7r)
2018/11/05(月) 10:31:34.96ID:dcr0NBob0 >>908
たぶん何も考えてないんだろw
>>909
その発想はなかったわw
>>897
PHPerは何でも配列にしたがる癖があるのが困り物だが
配列にしてわけが分からなくなるなら
変数名の付け方をもっと工夫すりゃいいのにってのは思う
配列には$rowArrとか$row_arrとか付けるようにするとかさ
前の方にも書いたが配列として取得しなくても
fetchColumnでスカラー型として取得する方法も知っておくべきだと思うし
$arr['COUNT(id)']みたいにSQLの集計関数の結果をそのままキーとして使わずに
COUNT(id) AS cntみたいにエイリアス使って
$arr['cnt']ってする癖をつけておくべきだと俺は思うけどな
たぶん何も考えてないんだろw
>>909
その発想はなかったわw
>>897
PHPerは何でも配列にしたがる癖があるのが困り物だが
配列にしてわけが分からなくなるなら
変数名の付け方をもっと工夫すりゃいいのにってのは思う
配列には$rowArrとか$row_arrとか付けるようにするとかさ
前の方にも書いたが配列として取得しなくても
fetchColumnでスカラー型として取得する方法も知っておくべきだと思うし
$arr['COUNT(id)']みたいにSQLの集計関数の結果をそのままキーとして使わずに
COUNT(id) AS cntみたいにエイリアス使って
$arr['cnt']ってする癖をつけておくべきだと俺は思うけどな
911デフォルトの名無しさん (ワッチョイ 63b3-zV7r)
2018/11/05(月) 10:45:44.02ID:/CGchI9p0 オブジェクトで返ってきてるんだから、そのままオブジェクトとして操作すればよいと思うぞ。
912デフォルトの名無しさん (ワッチョイ 5b9e-upsk)
2018/11/05(月) 15:02:21.85ID:44ykk/Ua0 返り値?
おれ、戻り値派
おれ、戻り値派
913デフォルトの名無しさん (ワッチョイ 769f-4Mp1)
2018/11/05(月) 20:22:17.03ID:Wuac1AE/0 xamppでPHPUnitの連続実行ってどうやるの?
shスクリプトでは複数行書けば全部実行してくれる。
batファイルだと最初の1行を実行して終了する。
おま環?
shスクリプトでは複数行書けば全部実行してくれる。
batファイルだと最初の1行を実行して終了する。
おま環?
914デフォルトの名無しさん (ワッチョイ 76ef-MyS3)
2018/11/05(月) 22:23:43.78ID:dTDazKon0915デフォルトの名無しさん (ワッチョイ 364b-/Yns)
2018/11/06(火) 17:19:57.17ID:z3LzXL080 laravelがrailsと比べて優れているところ教えて下さい
916デフォルトの名無しさん (ワッチョイ 63b3-zV7r)
2018/11/06(火) 17:42:00.12ID:YBa3NmNt0 最大のメリットは php である事。最大のデメリットも php であること。
。。。比較の軸ぐらい考えろよ。オマエアホだろ。
。。。比較の軸ぐらい考えろよ。オマエアホだろ。
917デフォルトの名無しさん (ワッチョイ 364b-/Yns)
2018/11/06(火) 17:57:07.05ID:z3LzXL080 >>916
言語の質ではなくフレームワークの質を聞いてるんです。
言語の質ではなくフレームワークの質を聞いてるんです。
918デフォルトの名無しさん (ワッチョイ 364b-/Yns)
2018/11/06(火) 17:57:40.53ID:z3LzXL080 あと開発効率とか学習コストとか
919デフォルトの名無しさん (ワッチョイ 63b3-zV7r)
2018/11/06(火) 18:03:51.13ID:YBa3NmNt0 比較の軸が出てきたなw
どっちも変わらん。要件次第。
もうちょっと聞きたいことを整理して質問しようぜぃ♪
どっちも変わらん。要件次第。
もうちょっと聞きたいことを整理して質問しようぜぃ♪
920デフォルトの名無しさん (ワッチョイ 364b-/Yns)
2018/11/06(火) 18:09:43.95ID:z3LzXL080 >>919
プログラミング初心者なので一番知りたいのは学習コストで、どちらが学習コスト低いですか?やはり日本語情報の多いRailsの方が有利でしょうか?わかりやすさの面ではどちらでしょうか?もう1つ聴きたいのですが将来性はどちらに方があるでしょうか?長文すいません。
プログラミング初心者なので一番知りたいのは学習コストで、どちらが学習コスト低いですか?やはり日本語情報の多いRailsの方が有利でしょうか?わかりやすさの面ではどちらでしょうか?もう1つ聴きたいのですが将来性はどちらに方があるでしょうか?長文すいません。
921デフォルトの名無しさん (ワッチョイ 63b3-zV7r)
2018/11/06(火) 18:20:05.67ID:YBa3NmNt0 書いてんじゃん。どっちも変わらん。要件次第。前提次第。
XXと〇〇、どっちが優れてますか系の質問するやつにまともなエンジニアはいないんだよ。
要件整理して、前提確認して、比較軸作って、ドキュメント読んで、必要なら検証するのがエンジニア。
手が動かないなら向いてない。
XXと〇〇、どっちが優れてますか系の質問するやつにまともなエンジニアはいないんだよ。
要件整理して、前提確認して、比較軸作って、ドキュメント読んで、必要なら検証するのがエンジニア。
手が動かないなら向いてない。
922デフォルトの名無しさん (ワッチョイ 3e9f-Nr8X)
2018/11/06(火) 18:45:41.79ID:pOOn9lCU0 環境構築にかかるコストも考えると…
923デフォルトの名無しさん (ワッチョイ c7e9-zV7r)
2018/11/06(火) 19:14:44.90ID:M+z1dU6f0 >どっちが優れてますか系の質問するやつにまともなエンジニアはいないんだよ
>手が動かないなら向いてない
これ両方共すげぇ分かるww
>手が動かないなら向いてない
これ両方共すげぇ分かるww
924デフォルトの名無しさん (ワッチョイ a35b-d84H)
2018/11/06(火) 19:30:36.24ID:S+SbxixY0 ものすごく感覚的な話で申し訳ないけど
Railsは出た当時は画期的だったけど、他のフレームワークがRailsの良いところをどんどん取り込んでいったので優位性がなくなっていってるイメージが強いかな
あとこんな事書くとRuby使いの人が怒るだろうけど
どこかの海外フォーラムで最近、死に向く言語ランキング上位にrubyが入ってたっけ
ソースを探したんだけど、どこだったかど忘れして探しきれなかった
申し訳ない
かといってこれから先はPHP?って言われると答えはNoだけど(スレのみんなごめん)
今から勉強始めるなら、個人的には色んな意味でPythonをおすすめするかな
Pythonっていうと機械学習や深層学習のイメージが強いと思うけど、
WEBフレームワークもどんどん進化してるし、
スクレイピングライブラリなんかも超高性能なのが出てきてるし
手っ取り早く結果を出すだけならまだまだPHPの方がかなり楽だけどね
Railsは出た当時は画期的だったけど、他のフレームワークがRailsの良いところをどんどん取り込んでいったので優位性がなくなっていってるイメージが強いかな
あとこんな事書くとRuby使いの人が怒るだろうけど
どこかの海外フォーラムで最近、死に向く言語ランキング上位にrubyが入ってたっけ
ソースを探したんだけど、どこだったかど忘れして探しきれなかった
申し訳ない
かといってこれから先はPHP?って言われると答えはNoだけど(スレのみんなごめん)
今から勉強始めるなら、個人的には色んな意味でPythonをおすすめするかな
Pythonっていうと機械学習や深層学習のイメージが強いと思うけど、
WEBフレームワークもどんどん進化してるし、
スクレイピングライブラリなんかも超高性能なのが出てきてるし
手っ取り早く結果を出すだけならまだまだPHPの方がかなり楽だけどね
925デフォルトの名無しさん (JP 0H73-a2R+)
2018/11/06(火) 21:04:36.13ID:lcs8YmG2H サーパーサイドなんてもうNode一択
他はNode書けないやつが使うもの
他はNode書けないやつが使うもの
926デフォルトの名無しさん (ワッチョイ 769f-4Mp1)
2018/11/06(火) 21:19:01.97ID:uacreqWN0 ルビーはクソが世界の定説
927デフォルトの名無しさん (ワッチョイ 76ef-MyS3)
2018/11/06(火) 22:19:03.01ID:uyHdMd5J0 どんな言語でもなんとかなるさ、はOKですか?
>>926
ruby のどんな点がクソなんですか?
ruby のどんな点がクソなんですか?
929デフォルトの名無しさん (ワッチョイ 4e80-mY15)
2018/11/07(水) 01:04:09.41ID:+978RLDn0 バグらない、Ruby >> Python, JavaScript >> PHP、よくバグル
PHP の本は、デザイン主体だろ。
プログラミングの本は、ほとんどない
ゲームエンジン・フレームワークの巨人、掌田津耶乃の本も、初めて出たばっかり。
Node.js超入門、2017
Python Django 超入門、2018
Rails は既に、何十冊も出ている。
この2冊が最短
たのしいRuby 第5版、2016
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9/7
他に、無料のRails チュートリアルがある。
これの10日ぐらいの解説講座もあるらしい
YouTube に、Rails の動画もある。
フリーエンジニアになる人は、Rails が多い
Pythonは、ラズパイ・AI・機械学習・統計処理とか、普通のウェブページではない。
サーバーサイドは、node.js
Railsでも、HTML, CSS, JavaScript(JS), jQuery は必須だから、
プログラミングやテスト工程をマスターするには、Rubyがよい
Railsの前に、Sinatra をいじくりまわして、ウェブページの仕組みを学ぶのがよい。
Nokogiri, Selenium WebDriver で、スクレイピングするのも勉強になる
Rubyで学んだことは、そっくり、JS で使えるから、JSで学ぶよりも効率的。
Rubyの方が、他の言語よりも可読性が高く、バグらないから!
PHP の本は、デザイン主体だろ。
プログラミングの本は、ほとんどない
ゲームエンジン・フレームワークの巨人、掌田津耶乃の本も、初めて出たばっかり。
Node.js超入門、2017
Python Django 超入門、2018
Rails は既に、何十冊も出ている。
この2冊が最短
たのしいRuby 第5版、2016
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9/7
他に、無料のRails チュートリアルがある。
これの10日ぐらいの解説講座もあるらしい
YouTube に、Rails の動画もある。
フリーエンジニアになる人は、Rails が多い
Pythonは、ラズパイ・AI・機械学習・統計処理とか、普通のウェブページではない。
サーバーサイドは、node.js
Railsでも、HTML, CSS, JavaScript(JS), jQuery は必須だから、
プログラミングやテスト工程をマスターするには、Rubyがよい
Railsの前に、Sinatra をいじくりまわして、ウェブページの仕組みを学ぶのがよい。
Nokogiri, Selenium WebDriver で、スクレイピングするのも勉強になる
Rubyで学んだことは、そっくり、JS で使えるから、JSで学ぶよりも効率的。
Rubyの方が、他の言語よりも可読性が高く、バグらないから!
930デフォルトの名無しさん (ワッチョイ 4e81-MyS3)
2018/11/07(水) 01:23:26.94ID:1H1h6w0g0 バグの原因はおのれのスキルと自覚しよう
931デフォルトの名無しさん (ワッチョイ 63b3-zV7r)
2018/11/07(水) 13:03:42.68ID:Vr3ftsmu0 ちゃんとした質問しないから、エンジニアになれなかった亡霊が無駄コメント残し始めたじゃないか。。。
責任とって、クローズしろよ。
責任とって、クローズしろよ。
932デフォルトの名無しさん (ワッチョイ c7e9-zV7r)
2018/11/07(水) 13:49:07.44ID:MEh9vNho0 git commit -m "close #915"
933デフォルトの名無しさん (ワッチョイ 76ef-MyS3)
2018/11/07(水) 23:12:08.53ID:EmTVHi4X0 HTMLとJVSCRIPT、PHPは相性がいいの?
SNSとかコミュニティサイトを作って
海外のユーザにも利用してもらおうとしたら、PHP?
SNSとかコミュニティサイトを作って
海外のユーザにも利用してもらおうとしたら、PHP?
934デフォルトの名無しさん (ワッチョイ 8a16-a2R+)
2018/11/07(水) 23:16:55.42ID:Qrgo3xvC0 Node.js
935デフォルトの名無しさん (ワッチョイ db9f-cu2J)
2018/11/08(木) 02:10:30.38ID:xe/8BT4B0 相性は別に良くないと思うよ。
フレームワーク次第じゃない?
そういう話なら既存のOSSなSNSをインストールするべきと思う。
OpenPNEやWordPressのプラグイン等など…
フレームワーク次第じゃない?
そういう話なら既存のOSSなSNSをインストールするべきと思う。
OpenPNEやWordPressのプラグイン等など…
936デフォルトの名無しさん (ワッチョイ 2bb8-orkQ)
2018/11/08(木) 05:00:41.38ID:OUyHbsHB0 プログラム言語やツールは物を作る道具や手段であってできるものに変わりはない
HTMLのようなGUIを作る場合はエディタが出来栄えを左右することもあるだろう
ただPHPでやることはバックエンドの目に見えない地味な場所であって
頑張って書くようなコードでもなければ体感速度もサーバのスペックが大きく物を言う
そんなところで良し悪しを熱く語ってるやつはたいていアホで出来ない子
つられやすい話題につられるのもアホで出来ない子
HTMLのようなGUIを作る場合はエディタが出来栄えを左右することもあるだろう
ただPHPでやることはバックエンドの目に見えない地味な場所であって
頑張って書くようなコードでもなければ体感速度もサーバのスペックが大きく物を言う
そんなところで良し悪しを熱く語ってるやつはたいていアホで出来ない子
つられやすい話題につられるのもアホで出来ない子
937デフォルトの名無しさん (ドコグロ MM6d-xkqI)
2018/11/08(木) 06:27:27.64ID:WetMyQ75M HTMLやCSS出来なくても
WordPress使えば誰でも子供でも
ホームページが!
それもタダで無料で!
WordPressはPHPで構成されてます人気もあります
でも問題ないわけではないです!
子供より若い園児向きには Flat-File CMSを
データベース不要でPHPで動きます!
WordPress使えば誰でも子供でも
ホームページが!
それもタダで無料で!
WordPressはPHPで構成されてます人気もあります
でも問題ないわけではないです!
子供より若い園児向きには Flat-File CMSを
データベース不要でPHPで動きます!
938デフォルトの名無しさん (ワッチョイ db9f-cu2J)
2018/11/08(木) 07:27:25.46ID:xe/8BT4B0939デフォルトの名無しさん (ワッチョイ db17-ZE27)
2018/11/08(木) 23:31:20.72ID:bTylvWCo0 >>933
初心者でも簡単にapacheのモジュールとしてインストールして動かせるって意味では相性いいと思うよ
>>936も言ってるように
プログラミング言語というのはあくまで手段であって目的によって使い分けるものなので
これは絶対こう絶対違うって書き方してる人のことはスルーしとこう
webアプリといえばperlかc言語のcgiみたいな感じだった昔とは違って今は色んな選択肢がある
phpはその内の1つってだけ
phpのいいところは学習コストの低さかな
脳死でさっと結果を出したい時はphpみたいに何かに特化してる言語はとにかく楽
最近10年以上前にperlで書かれたcgiを触る機会があったけど
たったこれだけの事するのに何でこんなにあれこれ書かないといけないんだ…って萎えまくった(perlは文字列処理が得意だけどウェブに特化してるわけじゃないから仕方ない)
php以外にも色んな言語に触れてた方がいいとは思うけど
ウェブアプリを作ることを目的とした初学者が選ぶ言語としてはまだまだ第一選択肢となり得る言語だよ
初心者でも簡単にapacheのモジュールとしてインストールして動かせるって意味では相性いいと思うよ
>>936も言ってるように
プログラミング言語というのはあくまで手段であって目的によって使い分けるものなので
これは絶対こう絶対違うって書き方してる人のことはスルーしとこう
webアプリといえばperlかc言語のcgiみたいな感じだった昔とは違って今は色んな選択肢がある
phpはその内の1つってだけ
phpのいいところは学習コストの低さかな
脳死でさっと結果を出したい時はphpみたいに何かに特化してる言語はとにかく楽
最近10年以上前にperlで書かれたcgiを触る機会があったけど
たったこれだけの事するのに何でこんなにあれこれ書かないといけないんだ…って萎えまくった(perlは文字列処理が得意だけどウェブに特化してるわけじゃないから仕方ない)
php以外にも色んな言語に触れてた方がいいとは思うけど
ウェブアプリを作ることを目的とした初学者が選ぶ言語としてはまだまだ第一選択肢となり得る言語だよ
941デフォルトの名無しさん (スププ Sdb3-lurq)
2018/11/08(木) 23:40:19.74ID:QE0GgM25d >>939がいいことを言った
プログラミング言語には自分との相性みたいなのもあるからな
色んなものを試してみて1番自分に馴染みそうなのを選ぶのもいい
とにかく0か1かでしか物事を語れないプログラマ脳のいうことは鵜呑みにしちゃだめだ
プログラミング言語には自分との相性みたいなのもあるからな
色んなものを試してみて1番自分に馴染みそうなのを選ぶのもいい
とにかく0か1かでしか物事を語れないプログラマ脳のいうことは鵜呑みにしちゃだめだ
942デフォルトの名無しさん (ワッチョイ 2b81-ki2E)
2018/11/09(金) 00:06:22.11ID:gcFuq4sF0 perlは、同じ事するのでも人によって色々アプローチが違ってて
それはそれで面白いんだけどね
perlをとっつきにくくさせているのは変数の宣言と使い方じゃないかな
書いた人を呪いたくなる事があった
それはそれで面白いんだけどね
perlをとっつきにくくさせているのは変数の宣言と使い方じゃないかな
書いた人を呪いたくなる事があった
943デフォルトの名無しさん (ワッチョイ db17-ZE27)
2018/11/09(金) 00:20:55.59ID:9LljJNk30 >>942
TIMTOWTDIがperlの設計思想だしね
>書いた人を呪いたくなる事があった
あるある過ぎて泣ける
perlはその自由度のせいで可読性が損なわれやすい(もちろん書き方の問題)けどそういう言語は最近は不人気だね
正規表現使ってワンライナーでさくっと何かしたい時とかやっぱperlはいいなって思う事もあるけど
あんまりやり過ぎると5時間後の自分にすら読めなくなるという…
TIMTOWTDIがperlの設計思想だしね
>書いた人を呪いたくなる事があった
あるある過ぎて泣ける
perlはその自由度のせいで可読性が損なわれやすい(もちろん書き方の問題)けどそういう言語は最近は不人気だね
正規表現使ってワンライナーでさくっと何かしたい時とかやっぱperlはいいなって思う事もあるけど
あんまりやり過ぎると5時間後の自分にすら読めなくなるという…
944デフォルトの名無しさん (スププ Sdb3-lurq)
2018/11/09(金) 00:36:13.15ID:jyPZVHOtd945デフォルトの名無しさん (ワッチョイ db17-ZE27)
2018/11/09(金) 00:49:31.00ID:9LljJNk30 >>944
だね
昔は趣味のスポーツカーが流行ったけど今は使い勝手や燃費重視のコンパクトカーや軽が流行るのと同じで
pythonは悪くいえば遊び心はないけど可読性と再利用性の高さは強力な武器だよ
流行るわけだ
プログラミング言語には作者の性格が色濃く現れてるから面白いよね
php作者の名言集
https://anond.hatelabo.jp/touch/20100427231539
ディスる時によく使われるけど俺はそんなphpも好きだ
だね
昔は趣味のスポーツカーが流行ったけど今は使い勝手や燃費重視のコンパクトカーや軽が流行るのと同じで
pythonは悪くいえば遊び心はないけど可読性と再利用性の高さは強力な武器だよ
流行るわけだ
プログラミング言語には作者の性格が色濃く現れてるから面白いよね
php作者の名言集
https://anond.hatelabo.jp/touch/20100427231539
ディスる時によく使われるけど俺はそんなphpも好きだ
946デフォルトの名無しさん (スププ Sdb3-lurq)
2018/11/09(金) 00:55:17.62ID:jyPZVHOtd947デフォルトの名無しさん (ワッチョイ db17-ZE27)
2018/11/09(金) 01:07:40.13ID:9LljJNk30 わりと有名だと思うよ
ついでにこれとか
https://takahashifumiki.com/web/programing/2209/
あんまり書いてるとマジレスして怒る人が出たら嫌なのでこの辺で…
繰り返すけど言語はあくまで手段に過ぎない
phpもperlもpythonもその内の1つに過ぎないってことでおやすみなさい
ついでにこれとか
https://takahashifumiki.com/web/programing/2209/
あんまり書いてるとマジレスして怒る人が出たら嫌なのでこの辺で…
繰り返すけど言語はあくまで手段に過ぎない
phpもperlもpythonもその内の1つに過ぎないってことでおやすみなさい
948デフォルトの名無しさん (ワッチョイ 2ba5-RtHN)
2018/11/09(金) 01:30:14.07ID:YLhQ0tUv0 ちょっとだけphpすきになれたわ
949デフォルトの名無しさん (スププ Sdb3-lurq)
2018/11/09(金) 01:42:41.18ID:jyPZVHOtd 一気読みしてしまったけどめちゃくちゃ面白かった
サンクス
俺もPHPをもっと好きになれた気がするww
そしてPHPにもgotoがあることを知って驚愕
まあ使う必要はないとだろうけど
わざわざあとから付け足したみたいだが必要だったのだろうか
サンクス
俺もPHPをもっと好きになれた気がするww
そしてPHPにもgotoがあることを知って驚愕
まあ使う必要はないとだろうけど
わざわざあとから付け足したみたいだが必要だったのだろうか
950デフォルトの名無しさん (ワッチョイ b9e9-YP9l)
2018/11/09(金) 10:05:10.34ID:lA/zS5Cl0 ラスマスさんインタビュー
http://gihyo.jp/news/interview/2010/rasmus
ここでは自分のことを利己的と表現してるが
現実主義・合理主義者なんだよな
アホのいうことは相手にせず適当にスルーしてるから
>>945みたいな感じになるとw
> 言語は開発者が考えているほど重要ではありません。
> 重要なのはどのような製品が必要とされているのかではないでしょうか。
> 必要とされている製品をいかに速く作り,かつ簡単に維持するかが重要です。
> エンドユーザは,どの言語で書かれているか?なんて気にしていません。
このスレの誰かさんに100回声に出して読めといいたいw
http://gihyo.jp/news/interview/2010/rasmus
ここでは自分のことを利己的と表現してるが
現実主義・合理主義者なんだよな
アホのいうことは相手にせず適当にスルーしてるから
>>945みたいな感じになるとw
> 言語は開発者が考えているほど重要ではありません。
> 重要なのはどのような製品が必要とされているのかではないでしょうか。
> 必要とされている製品をいかに速く作り,かつ簡単に維持するかが重要です。
> エンドユーザは,どの言語で書かれているか?なんて気にしていません。
このスレの誰かさんに100回声に出して読めといいたいw
951デフォルトの名無しさん (ワッチョイ b9e9-YP9l)
2018/11/09(金) 10:08:54.85ID:lA/zS5Cl0 >>949
少し上の方にあったglobalの話と似たようなもので
使わなくて済むなら使わない方がいいって感じのもんだな
他の言語にもgotoはあるけど使ったことないや
あ、basicやったことないの?なんていうおっさんは相手にしてませんので
(書いとかないと相手にするのがめんどくさいw)
少し上の方にあったglobalの話と似たようなもので
使わなくて済むなら使わない方がいいって感じのもんだな
他の言語にもgotoはあるけど使ったことないや
あ、basicやったことないの?なんていうおっさんは相手にしてませんので
(書いとかないと相手にするのがめんどくさいw)
952デフォルトの名無しさん (ワッチョイ 2b81-ki2E)
2018/11/09(金) 10:27:43.53ID:gcFuq4sF0 Fortranは?
953デフォルトの名無しさん (ワッチョイ 93ab-ki2E)
2018/11/09(金) 13:22:28.59ID:aQf6YGTQ0 すみません、よろしくお願いします。
function readLines(string $path){
$i=0;
$file=fopen($path,'rb') or die('ファイルが見つかりません');
while($line=fgets($file,1024)){
yield $line;
}
fclose($file);
}
$gen=readLines('sample.txt');//***
foreach($gen as $line){
print $line.'<br>';
}
?>
読みだす対象ファイルは10行あります。
***の部分なのですが、$genで関数readLine()を1度呼び出して
対象ファイルから一行読みだしているように思えるのですが、
実際には、対象ファイルの全行を読みだしています。
$genで全行(10行)格納できているのは、どんな働きがあってのことなのでしょうか?
function readLines(string $path){
$i=0;
$file=fopen($path,'rb') or die('ファイルが見つかりません');
while($line=fgets($file,1024)){
yield $line;
}
fclose($file);
}
$gen=readLines('sample.txt');//***
foreach($gen as $line){
print $line.'<br>';
}
?>
読みだす対象ファイルは10行あります。
***の部分なのですが、$genで関数readLine()を1度呼び出して
対象ファイルから一行読みだしているように思えるのですが、
実際には、対象ファイルの全行を読みだしています。
$genで全行(10行)格納できているのは、どんな働きがあってのことなのでしょうか?
954デフォルトの名無しさん (アウアウイー Sa4d-D6ku)
2018/11/09(金) 13:34:20.06ID:TMuJweZBa コピペプログラミングの典型的パターン
955デフォルトの名無しさん (ワッチョイ 898a-55uJ)
2018/11/09(金) 13:47:18.90ID:sRuc/yNP0956デフォルトの名無しさん (ワッチョイ b9e9-YP9l)
2018/11/09(金) 14:03:26.71ID:lA/zS5Cl0 >>953
while ($line=fgets($file,1024)) { }
がループ処理だって事も分からないのはやばいぞ
もう少し頑張れw
このコードはだめだな
while($line=fgets($file,1024))
これだと 0 だけとか改行だけの行があったらそこで処理が止まる
同じように書くなら
while (($line = fgets($file, 1024)) !== false) { }
こう書かないと駄目
PHPerはよく if ($hoge = fuge()) みたいな書き方をするけど
分かってる上で手抜きでそう書くなら別にいいが
分かってないならそんな書き方はやめるべき
while ($line=fgets($file,1024)) { }
がループ処理だって事も分からないのはやばいぞ
もう少し頑張れw
このコードはだめだな
while($line=fgets($file,1024))
これだと 0 だけとか改行だけの行があったらそこで処理が止まる
同じように書くなら
while (($line = fgets($file, 1024)) !== false) { }
こう書かないと駄目
PHPerはよく if ($hoge = fuge()) みたいな書き方をするけど
分かってる上で手抜きでそう書くなら別にいいが
分かってないならそんな書き方はやめるべき
957デフォルトの名無しさん (ワッチョイ d374-39Ij)
2018/11/09(金) 14:08:17.39ID:9S1HIFQT0 ジェネレータ使ってるから一見何してるか分かりにくいように見えるかもね
とはいえ便利だし1行ずつ読めば難しくない
ifの条件文中で代入するのはむしろCでよく見た
とはいえ便利だし1行ずつ読めば難しくない
ifの条件文中で代入するのはむしろCでよく見た
958デフォルトの名無しさん (ワッチョイ 93ab-ki2E)
2018/11/09(金) 15:26:07.95ID:aQf6YGTQ0 ありがとうございました。
959デフォルトの名無しさん (ワッチョイ b9e9-YP9l)
2018/11/09(金) 15:37:24.13ID:lA/zS5Cl0 >>957
swiftとかpythonだとこういう書き方はできないからね(代入式が値を返さない)
そのおかげでヨーダ記法みたいなヘンテコリンな書き方をしなくてもミスが防げるんだけど
一長一短だしこの書き方を全否定してるわけじゃないってことで
perlのワンライナーが気持ちいいってのもよく分かるが
人が書いたものは見たくないというのもよく分かるw
swiftとかpythonだとこういう書き方はできないからね(代入式が値を返さない)
そのおかげでヨーダ記法みたいなヘンテコリンな書き方をしなくてもミスが防げるんだけど
一長一短だしこの書き方を全否定してるわけじゃないってことで
perlのワンライナーが気持ちいいってのもよく分かるが
人が書いたものは見たくないというのもよく分かるw
960デフォルトの名無しさん (ワッチョイ b9e9-YP9l)
2018/11/09(金) 15:42:44.74ID:lA/zS5Cl0 すまん下の2行
全然関係ない文章が入ってしまった
書こうと思って削除した文章がクリップボード履歴からコピペされてしまった
全然関係ない文章が入ってしまった
書こうと思って削除した文章がクリップボード履歴からコピペされてしまった
961デフォルトの名無しさん (ワッチョイ 2b81-ki2E)
2018/11/09(金) 16:57:09.09ID:gcFuq4sF0 分かる
心の叫びだろうw
心の叫びだろうw
962デフォルトの名無しさん (ワッチョイ 5b4b-YrFS)
2018/11/09(金) 16:59:43.84ID:aAkZVDrn0 PHPは大っ嫌いだけどLaravelは好き
963デフォルトの名無しさん (ワッチョイ 5b4b-YrFS)
2018/11/09(金) 17:13:56.97ID:aAkZVDrn0 セミコロン消えろ
964デフォルトの名無しさん (ワッチョイ b9e9-YP9l)
2018/11/09(金) 18:45:22.74ID:lA/zS5Cl0 なぜ文字列結合を . にしちゃったんだろう
フレームワークを通さずにドットチェーンでサクッと書きたい時に悲しくなっちゃう
フレームワークを通さずにドットチェーンでサクッと書きたい時に悲しくなっちゃう
965デフォルトの名無しさん (ワッチョイ 2b81-ki2E)
2018/11/09(金) 18:52:30.49ID:gcFuq4sF0 そういうしきたりがあったから
966デフォルトの名無しさん (ワッチョイ dbef-ki2E)
2018/11/09(金) 19:48:04.81ID:3iCSUlan0 >>953
$gen=readLine('sample,text'); は、$genに関数を入れてるだけで、
書き換えるのなら
foreach(readLine('sample.text') as $line){
print $line'.<br>';
}
ということでは?
$gen=readLine('sample,text'); は、$genに関数を入れてるだけで、
書き換えるのなら
foreach(readLine('sample.text') as $line){
print $line'.<br>';
}
ということでは?
967デフォルトの名無しさん (ワッチョイ 93ab-ki2E)
2018/11/10(土) 13:09:23.21ID:w8ozGR5u0968デフォルトの名無しさん (ワッチョイ db17-ZE27)
2018/11/10(土) 17:34:15.93ID:KJE8CLNB0969デフォルトの名無しさん (ワッチョイ 93ab-ki2E)
2018/11/10(土) 17:57:23.60ID:w8ozGR5u0 >>968
ありがとうございます。
各yieldの前後や、関数の呼び出し元に
print文でどこを実行しているのかを表示させるようにして確認しました。
yield fromを混ぜ込んだ文も、同様に処理するようにしたら
ずいぶん理解できるようになりました。
皆様、ありがとうございます。
ありがとうございます。
各yieldの前後や、関数の呼び出し元に
print文でどこを実行しているのかを表示させるようにして確認しました。
yield fromを混ぜ込んだ文も、同様に処理するようにしたら
ずいぶん理解できるようになりました。
皆様、ありがとうございます。
970デフォルトの名無しさん (ワッチョイ f380-9/Uq)
2018/11/10(土) 22:20:51.20ID:16GnFLu/0 $gen=readLine('sample,text');
これで代入されてるのは関数じゃなくてジェネレータ関数が返す反復可能なオブジェクト(への参照)かな
ジェネレーター関数を呼び出したのをvar_dumpするとこんな感じだわ
object(Generator)#1 (0) {}
これで代入されてるのは関数じゃなくてジェネレータ関数が返す反復可能なオブジェクト(への参照)かな
ジェネレーター関数を呼び出したのをvar_dumpするとこんな感じだわ
object(Generator)#1 (0) {}
971デフォルトの名無しさん (ワッチョイ 5b4b-YrFS)
2018/11/11(日) 16:39:55.95ID:kuiXddTN0 Laravelのログイン処理をゼロから解説してる学習リソースありますか?
972デフォルトの名無しさん (ワッチョイ d176-mqgT)
2018/11/12(月) 01:02:22.66ID:FJ/7DuU50 青い本とオレンジ色の本
Amazonで探せばすぐにわかる
Amazonで探せばすぐにわかる
973デフォルトの名無しさん (ワッチョイ d176-mqgT)
2018/11/12(月) 01:05:34.03ID:FJ/7DuU50 あとはLaravel公式リファレンス
https://readouble.com/laravel/5.7/ja/authentication.html
https://readouble.com/laravel/5.7/ja/authentication.html
974デフォルトの名無しさん (ワッチョイ 95a5-4fLB)
2018/11/17(土) 20:03:24.34ID:yvB12Mei0 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10199147355
Laravelで糞以下の質問をしている奴を見つけた。
Laravelで糞以下の質問をしている奴を見つけた。
975デフォルトの名無しさん (ブーイモ MMb9-N102)
2018/11/17(土) 23:01:03.89ID:2QpS/L3VM >>974
こんな性格じゃそりゃいつまで経ってもゴミのままだわな
こんな性格じゃそりゃいつまで経ってもゴミのままだわな
976デフォルトの名無しさん (ワッチョイ 95a5-4fLB)
2018/11/18(日) 00:24:19.00ID:lxV5KuwV0 >>975
ソースも性格もゴミ
そしてその質問者のTwitter
https://twitter.com/tekitouk
https://twitter.com/5chan_nel (5ch newer account)
ソースも性格もゴミ
そしてその質問者のTwitter
https://twitter.com/tekitouk
https://twitter.com/5chan_nel (5ch newer account)
977デフォルトの名無しさん (ワッチョイ e3ab-zhOP)
2018/11/24(土) 16:02:54.40ID:iAypOYs00 よろしくお願いします。
for($i=1;print"{$i}<br>",$i<6;$i++);
for($i=1;$i<6,print"{$i}<br>";$i++);
前者は、1〜6までをプリントしますが、後者は無限にプリントされてしまいます。i++が6を超えてしまうのはなぜなのでしょうか?
for($i=1;print"{$i}<br>",$i<6;$i++);
for($i=1;$i<6,print"{$i}<br>";$i++);
前者は、1〜6までをプリントしますが、後者は無限にプリントされてしまいます。i++が6を超えてしまうのはなぜなのでしょうか?
978デフォルトの名無しさん (ワッチョイ bf7e-A3/R)
2018/11/24(土) 16:33:47.44ID:ue64utAZ0979デフォルトの名無しさん (ワッチョイ c39e-qSu8)
2018/11/24(土) 17:52:32.26ID:cnsZLZxi0 こんなコード書かれたら頭痛いンゴ
980デフォルトの名無しさん (ワッチョイ 7f74-zhOP)
2018/11/24(土) 18:03:15.60ID:+h/hylzW0 https://github.com/php/php-src/blob/master/Zend/zend_compile.c#L4597
https://github.com/php/php-src/blob/master/Zend/zend_compile.c#L4575
zend_compile_expr_listを見る限りexprの並びは最終評価値が返る
そもそも>>977のコードは書いたやつ殴るレベルだが
https://github.com/php/php-src/blob/master/Zend/zend_compile.c#L4575
zend_compile_expr_listを見る限りexprの並びは最終評価値が返る
そもそも>>977のコードは書いたやつ殴るレベルだが
981デフォルトの名無しさん (ワッチョイ 6fef-zhOP)
2018/11/25(日) 09:04:25.92ID:dabdOdKd0 >>978
ありがとうございます。
判定がtrueになり続けてしまうということなのですね。
もう一つ質問があります。
class A{
private $B;
public function __construcr($C){
$this->B=$C;
}
というコードなのですが、classAのフィールドで変数$Bを宣言して
関数のコンストラクタの$thisで、変数$Bに引数を代入してますが
この時、変数Bの$が取れているのはどういう仕様なのでしょうか?
ありがとうございます。
判定がtrueになり続けてしまうということなのですね。
もう一つ質問があります。
class A{
private $B;
public function __construcr($C){
$this->B=$C;
}
というコードなのですが、classAのフィールドで変数$Bを宣言して
関数のコンストラクタの$thisで、変数$Bに引数を代入してますが
この時、変数Bの$が取れているのはどういう仕様なのでしょうか?
982デフォルトの名無しさん (ワッチョイ 8f9f-JFh/)
2018/11/25(日) 09:17:54.45ID:43hAniU60 $が取れていることで可変関数を使える仕様になっている
983デフォルトの名無しさん (ワッチョイ 6fef-zhOP)
2018/11/26(月) 15:12:38.13ID:aqdzSIAP0984デフォルトの名無しさん (ワッチョイ e3ab-zhOP)
2018/11/26(月) 18:28:25.99ID:vghby52J0 $db=getDb();
$opDB=$db->prepare('SELECT * FROM sample WHERE id=?');
$opDB->bindValue(1,$_GET['id'] ?:1);
このコードから質問お願いします。
2行目の id=? は、ワイルドカードのようなものですか?
3行目のbindValueの一つ目のパラメータの1は、何を指しているのでしょうか?
$opDB=$db->prepare('SELECT * FROM sample WHERE id=?');
$opDB->bindValue(1,$_GET['id'] ?:1);
このコードから質問お願いします。
2行目の id=? は、ワイルドカードのようなものですか?
3行目のbindValueの一つ目のパラメータの1は、何を指しているのでしょうか?
985デフォルトの名無しさん (ワッチョイ cf81-zhOP)
2018/11/26(月) 18:34:58.26ID:9UWiUoMZ0 一つ目:イイエ
二つ目:一つ目の?
二つ目:一つ目の?
986デフォルトの名無しさん (ワッチョイ e3ab-zhOP)
2018/11/27(火) 09:20:32.54ID:bFvRPa1H0 返答ありがとうございます。
id=? っていうのは、どういう働きをするコードなのでしょう
一つ目とか、bindValue(1,$_GET['id']);の、'1'です
id=? っていうのは、どういう働きをするコードなのでしょう
一つ目とか、bindValue(1,$_GET['id']);の、'1'です
987デフォルトの名無しさん (ワッチョイ 73e9-Kv/S)
2018/11/27(火) 14:57:55.52ID:aBLKPQ100 >>984
>>986
SELECT * FROM sample WHERE id=?
というSQLの中で使われている「?」はプリペアドステートメントというもの
http://php.net/manual/ja/pdo.prepared-statements.php
?だと理解し難いなら名前付き(例えば今回なら :id とか)にした方が理解しやすいと思う
$hoge = $_GET['id'] ?: 1;
はエルビス演算子という三項演算子を省略した書き方
可読性が悪いのであんまり使わない方が良いと思う
・同じ事を三項演算子で書くなら
$hoge = ($_GET['id']) ? $_GET['id'] : 1;
・同じ事をif文で書くなら
if ($_GET['id']) {
$hoge = $_GET['id'];
} else {
$hoge = 1;
}
だが、このケースでは、こんな書き方をしてはいけない。
(続く)
>>986
SELECT * FROM sample WHERE id=?
というSQLの中で使われている「?」はプリペアドステートメントというもの
http://php.net/manual/ja/pdo.prepared-statements.php
?だと理解し難いなら名前付き(例えば今回なら :id とか)にした方が理解しやすいと思う
$hoge = $_GET['id'] ?: 1;
はエルビス演算子という三項演算子を省略した書き方
可読性が悪いのであんまり使わない方が良いと思う
・同じ事を三項演算子で書くなら
$hoge = ($_GET['id']) ? $_GET['id'] : 1;
・同じ事をif文で書くなら
if ($_GET['id']) {
$hoge = $_GET['id'];
} else {
$hoge = 1;
}
だが、このケースでは、こんな書き方をしてはいけない。
(続く)
988デフォルトの名無しさん (ワッチョイ 73e9-Kv/S)
2018/11/27(火) 14:59:13.82ID:aBLKPQ100 (続き)
$_GET['id']が定義されていない事を考慮した正しい書き方は
・PHP7以降ならNULL合体演算子を使って
$hoge = $_GET['id'] ?? 1;
・↑が分かり難いなら
$hoge = (isset($_GET['id'])) ? $_GET['id'] : 1;
・↑でも分かり難いなら
if (isset($_GET['id'])) {
$hoge = $_GET['id'];
} else {
$hoge = 1;
}
このケースでエルビス演算子をこんな使い方するような糞コードは、あんまり参考にしない方がいい
$_GET['id']が定義されていない事を考慮した正しい書き方は
・PHP7以降ならNULL合体演算子を使って
$hoge = $_GET['id'] ?? 1;
・↑が分かり難いなら
$hoge = (isset($_GET['id'])) ? $_GET['id'] : 1;
・↑でも分かり難いなら
if (isset($_GET['id'])) {
$hoge = $_GET['id'];
} else {
$hoge = 1;
}
このケースでエルビス演算子をこんな使い方するような糞コードは、あんまり参考にしない方がいい
989デフォルトの名無しさん (ワッチョイ 73e9-Kv/S)
2018/11/27(火) 15:06:26.62ID:aBLKPQ100 >>977も読んだが、エルビス演算子の使い方といい
いったい何を参考にしてこんなコードを書いてるんだろうか
もし本を参考にしてるなら焼き捨てた方がいいレベルで酷い
クイズ的に質問してるなら面白いけどw
いったい何を参考にしてこんなコードを書いてるんだろうか
もし本を参考にしてるなら焼き捨てた方がいいレベルで酷い
クイズ的に質問してるなら面白いけどw
990デフォルトの名無しさん (ワッチョイ c39e-qSu8)
2018/11/27(火) 16:49:32.78ID:BR30Kh7X0 演算子の説明だけだとシンプルで理解しやすいけど実用性ではクソ
実用性重視の説明だと本来説明したいもの以外の説明で蛇足だらけで
紙面使いすぎでクソ
というジレンマなんやろ
実用性重視の説明だと本来説明したいもの以外の説明で蛇足だらけで
紙面使いすぎでクソ
というジレンマなんやろ
991デフォルトの名無しさん (ワッチョイ 6fe7-sCK9)
2018/11/27(火) 18:08:09.22ID:MA03kwvb0 $input = trim(fgets(STDIN));
while($input)
{
echo $input;
}
これってwhileの式のところでは$inputの中が空かって判断してるの?そういう機能がついてるのか?
while($input)
{
echo $input;
}
これってwhileの式のところでは$inputの中が空かって判断してるの?そういう機能がついてるのか?
992デフォルトの名無しさん (ワッチョイ cf80-fhi1)
2018/11/27(火) 18:52:40.99ID:DSo9/Qg/0 >>984
SELECT * FROM sample WHERE id=?
id=? は、placement。
? の所に、値が入る
SQL injection 対策
例えば、単純な文字列をつなげて、問い合わせると、
? が「1; DROP TABLE 何々」とか、クラッカーに入力されると、
「SELECT * FROM sample WHERE id=1; DROP TABLE 何々」のように、
; で、危険なSQL文をつなげてくる
placement で、SQL文をつなげられないようにしている
SELECT * FROM sample WHERE id=?
id=? は、placement。
? の所に、値が入る
SQL injection 対策
例えば、単純な文字列をつなげて、問い合わせると、
? が「1; DROP TABLE 何々」とか、クラッカーに入力されると、
「SELECT * FROM sample WHERE id=1; DROP TABLE 何々」のように、
; で、危険なSQL文をつなげてくる
placement で、SQL文をつなげられないようにしている
993デフォルトの名無しさん (ワッチョイ 73e9-Kv/S)
2018/11/27(火) 19:01:55.97ID:aBLKPQ100 >>991
そのコードだと、trim(fgets(STDIN))の値が (bool) true であった場合に永久ループになるw
実際は
while ($input = trim(fgets(STDIN))) {
echo $input;
}
こう書くべき処理なのでは?
そのコードだと、trim(fgets(STDIN))の値が (bool) true であった場合に永久ループになるw
実際は
while ($input = trim(fgets(STDIN))) {
echo $input;
}
こう書くべき処理なのでは?
994デフォルトの名無しさん (ワッチョイ 6fe7-sCK9)
2018/11/27(火) 19:53:06.64ID:MA03kwvb0 while分の中では$inputをbool型にして判定してるわけか?
995デフォルトの名無しさん (ワッチョイ ffd2-f63u)
2018/11/27(火) 22:02:27.91ID:7ygBETe/0 空文字がFalse判定されることを利用して
空行入力で終わるようにしてるんだろうけど
ゼロとかもFalse判定されて終わっちゃうんじゃないか
試してないけど
空行入力で終わるようにしてるんだろうけど
ゼロとかもFalse判定されて終わっちゃうんじゃないか
試してないけど
996デフォルトの名無しさん (ワッチョイ cf80-fhi1)
2018/11/28(水) 12:01:30.07ID:eIHsuPDh0 Ruby では、nil, false の偽が2つだけ。
一方、JavaScript, Python, PHP などは、偽が10個ぐらいあるから、超危険!
基本的に、Ruby 以外は、バグってどうしようもない
一方、JavaScript, Python, PHP などは、偽が10個ぐらいあるから、超危険!
基本的に、Ruby 以外は、バグってどうしようもない
997デフォルトの名無しさん (ワッチョイ e3ab-zhOP)
2018/11/28(水) 12:52:07.66ID:yr9LfNgh0 >>987
ありがとうございました。プレイスホルダなのですね。
prepareでSQLを用いて、プレイスホルダを使うとき、
SQL文の中で、左から数えたプレイスホルダの順番を、
bindValueのカッコ内の数値で指定してバインドする、ということもわかりました。
?:や??:の解説もありがとうございました。
>>989
独習phpというテキストを使っています。
>>992
ありがとうございます。
prepareステートメントが悪意ある入力に対策しているとテキストにも書いてありました。
皆様、ありがとうとざいました。
今のテキストを読み終えたら、もう少しテキストを吟味して、違うテキストを探してみようと思います。
ありがとうございました。プレイスホルダなのですね。
prepareでSQLを用いて、プレイスホルダを使うとき、
SQL文の中で、左から数えたプレイスホルダの順番を、
bindValueのカッコ内の数値で指定してバインドする、ということもわかりました。
?:や??:の解説もありがとうございました。
>>989
独習phpというテキストを使っています。
>>992
ありがとうございます。
prepareステートメントが悪意ある入力に対策しているとテキストにも書いてありました。
皆様、ありがとうとざいました。
今のテキストを読み終えたら、もう少しテキストを吟味して、違うテキストを探してみようと思います。
998デフォルトの名無しさん (ワッチョイ 73e9-Kv/S)
2018/11/28(水) 15:13:42.98ID:zpzfEtE+0999デフォルトの名無しさん (ワッチョイ 73e9-Kv/S)
2018/11/28(水) 15:17:38.93ID:zpzfEtE+0 すまんw 大嘘書いたww
>>998のコードだと trim() によって string型にキャストされるから永久ループするわwww
while (($input = fgets(STDIN)) !== false) {
echo $input;
}
が正しいが場合によっては
while (($input = trim(fgets(STDIN))) !== '') {
echo $input;
}
が期待した動作なのかもしれない
>>998のコードだと trim() によって string型にキャストされるから永久ループするわwww
while (($input = fgets(STDIN)) !== false) {
echo $input;
}
が正しいが場合によっては
while (($input = trim(fgets(STDIN))) !== '') {
echo $input;
}
が期待した動作なのかもしれない
1000デフォルトの名無しさん (ワッチョイ cfe8-+65u)
2018/11/28(水) 17:09:43.57ID:Nb5yTkdM010011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 342日 23時間 9分 23秒
新しいスレッドを立ててください。
life time: 342日 23時間 9分 23秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性には共通点が [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 中国軍機がレーダー照射 小泉防衛大臣の説明に「矛盾している」中国外務省報道官が批判 [♪♪♪★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- enaga(´・Ǎ・`) ◆99xH8ena32 ってコテわろたwwwwwwwwwww
- 【乞食速報】プロクオリティ ビーフカレー 96食 4262円 [268244553]
- 【悲報】小泉防衛大臣、中国のレーダー照射事件をNATO事務総長に報告 [834922174]
- 年末のvip芋煮会って何日だっけ?
- 歴史って「この教科には暴力的な表現が含まれます」とか警告しといた方がいいよな
- 『86-エイティシックス-』レーナがどちゃくそエチエチな下着姿&体操服?姿でフィギュア化キタ━━━(゚∀゚)━━━!! [303493227]
