X



PHP質問・雑談スレ4【初心者お断り(ROM歓迎)】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
垢版 |
2017/06/28(水) 21:34:09.26ID:???
PHPに関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。

PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。
http://mevius.2ch.net/tech/ (【PHP】で板内を検索)

前スレ
http://medaka.2ch.net/test/read.cgi/php/1486956982/

その他リンク
・PHPマニュアル
 https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
 http://ideone.com/
・プログラミングのお題スレ (求PHPer参戦)
 http://mevius.2ch.net/test/read.cgi/tech/1480579110/

このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
 (FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼

このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
 (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
0416nobodyさん
垢版 |
2018/06/20(水) 20:32:46.35ID:UnZq46Ab
プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。

5648W
0417nobodyさん
垢版 |
2018/06/21(木) 04:46:25.17ID:joNehjCV
掲示板が作りたくてデータベースとのやり取りをするPHPとそれのインターフェイスとなるHTMLを作りました
投稿時の想定は「まずHTMLにアクセスしてそこで項目を入力してPHPを通してデータベースにデータを入力」です
これはAjaxやPDOを使うことで作ることが出来ました
しかしHTML(JavaScript)のソースコードからPHPのファイル名を見つけてPHPを直接叩くことで簡単に荒らしが出来てしまいます
この問題を解決したいと思い、PHPをドキュメントルートから外したのですがそれはアクセスが出来ず失敗に終わりました
皆さんはこのような問題に対してどのような対策を施しているのでしょうか?
0418nobodyさん
垢版 |
2018/06/21(木) 05:56:58.20ID:???
相手が荒らすのに苦労する仕組みを作るといい

1文字 同じ文字のみ 英数字のみ URLとかスパムに使われそうなものを制限する
連投制限の仕組み作る(IPベース、クッキーベース、セッションベース、それら組み合わせ)
若干面倒な登録を経て登録者のみ投稿できる会員制にする
ログと投稿をつきあわせて類似度を比較する(処理は遅くなる)
AIで意味のある文章か判断する(PHPerには難易度が高すぎる)
0419nobodyさん
垢版 |
2018/06/21(木) 06:50:01.75ID:???
ワンタイムトークン
0421nobodyさん
垢版 |
2018/06/21(木) 17:51:48.90ID:???
直接PHP叩くのと、フォームから入力するのと、
マクロにとっては荒らしのしやすさになんの差もないと思うのだけど。
0422nobodyさん
垢版 |
2018/06/21(木) 22:09:54.17ID:p4z3zI1o
reCAPTCHA v3ではユーザーのアクションなしに相手がロボットがどうか
判別できるようになるらしい
0423nobodyさん
垢版 |
2018/06/22(金) 06:56:12.83ID:0CbeJ1vw
回答ありがとうございます

>>418-420
ワンタイムトークンが良さそうだと思いました

>>421
マクロだと確かにそうですね
IPアドレスで連投を規制したりすることも検討してみます
0424nobodyさん
垢版 |
2018/06/22(金) 14:11:43.65ID:HDxTbLco
PeachPieって言う.NETでPHP動かす環境あるらしいけど
どうなの?
そもそも使い物になる?
0425nobodyさん
垢版 |
2018/06/22(金) 21:01:21.02ID:???
検索したらエロい店ばっかりでてきて吹いた
0426nobodyさん
垢版 |
2018/06/22(金) 21:02:21.49ID:???
>>424
使ったこと無いけど、ASP.NET Webサーバー使ってるなら良さそう
ってかそれ意外になにもメリットなさそう
0427nobodyさん
垢版 |
2018/06/22(金) 21:16:34.26ID:???
力技すぎて面白い
0429nobodyさん
垢版 |
2018/06/23(土) 11:55:24.07ID:???
CILにコンパイルされてから実行されるわけだからパフォーマンスは向上するわな(Phalangerと同じ)
あとはエクステンションがどのくらい互換性持って提供されるかだと思う
使い物になるかで言えば公式が「まだexperimentalだよ」って言ってる以上は(productionでは)全く使えない

>>428
plaintextのベンチとか意味あるの?
0430nobodyさん
垢版 |
2018/06/23(土) 12:38:28.80ID:JGE8gBSU
単なるプレーンテキストの送信でも言語やフレームワークによってかなり差が出るのは分かる

PeachPie自体はまだ実験的な物ではあるが
WordPressは既に動かせるらしい
0431nobodyさん
垢版 |
2018/06/26(火) 00:02:49.58ID:vSUzM4yv
composerってメモリ使い過ぎじゃね?
サーバーの利用可能なメモリが少ないとSymfony4のインストールすら完了しない

composerのロックファイルは
十分メモリのあるローカル環境で作り
メモリーの少ないサーバーではロックファイルからcomposer installするのがオヌヌメらしい
とは言えもう少し少なく出来ないのか?
0433nobodyさん
垢版 |
2018/06/26(火) 00:10:24.54ID:R+4nVO22
あくってなに?
0435nobodyさん
垢版 |
2018/06/28(木) 16:38:17.84ID:???
早くしろよ

あくしろよ

あく
0436nobodyさん
垢版 |
2018/06/28(木) 20:03:07.10ID:???
汚ねえスレだなあ
0437nobodyさん
垢版 |
2018/06/29(金) 00:44:22.34ID:???
>>410あたりを見て気になったんだけど
API作るというだけでは認証機構入れる必要これっぽっちもないよね?

BASIC含め簡単なものや固定のものは投げてる要求確認すれば丸わかり

バッチ等からのアクセスが主だったり他サイトに利用させるとかが絡むなら
事前認証してtoken吐いて……って機構が必要かもしれないけど>>410はブラウザ経由

認証つけるにしても、もしAPI以外でログイン認証してるならそっちのセッションをそのまま使える
0438nobodyさん
垢版 |
2018/06/29(金) 08:59:46.28ID:???
いろんなところから利用可能にするためにWebAPI使うんじゃないのか
0439nobodyさん
垢版 |
2018/06/29(金) 09:31:29.33ID:???
そらTwitterみたいに本家がユーザ認証前提の仕組みで他所でも認証してあーだこーだって話なら、な
例えばYahooのルビ振りWebAPIなんかは認証なんてない
0440nobodyさん
垢版 |
2018/06/29(金) 10:47:32.20ID:???
appidってのがそうなんじゃないの
0441nobodyさん
垢版 |
2018/06/29(金) 12:09:11.00ID:???
事前登録したIDを送るのは認証とはちょっと違くね
0442nobodyさん
垢版 |
2018/06/30(土) 13:16:02.58ID:HFlHS16J
composerはなぜかパッケージのダウンロードが一個ずつって特徴もある
並列化する非公式プラグインはあるが
何で公式は並列ダウンロードしないのか

https://github.com/hirak/prestissimo
0443nobodyさん
垢版 |
2018/06/30(土) 13:23:07.35ID:???
なぜかって普通だし
さして重要じゃないだろそれ
0444nobodyさん
垢版 |
2018/06/30(土) 14:09:23.84ID:HFlHS16J
並列ダウンロードが当たり前の他のパッケージマネージャに慣れていると
遅く感じる

プラグイン作者によるプルリクエストがcomposerにあったが
マージされるのはいつか分からない
0445nobodyさん
垢版 |
2018/06/30(土) 14:13:48.30ID:???
composer使うのやめればいいじゃん
0446nobodyさん
垢版 |
2018/06/30(土) 15:02:10.11ID:TwF5k2FW
PHPもやめます
0447nobodyさん
垢版 |
2018/06/30(土) 17:48:37.84ID:???
そもそもcomposerってなんで出てきたの?
必要なのこれ
composerじゃなきゃダメなことなんかあるの
0448nobodyさん
垢版 |
2018/06/30(土) 18:04:13.84ID:grfnyPlf
知らないのに使わなければ良いとか言ってんの?
0449nobodyさん
垢版 |
2018/06/30(土) 18:11:10.91ID:???
フレームワーク使いたい奴には必須かもしれないけど
それ以外は別に使わなくても問題ない っていうイメージ

つか何故公式が云々って公式の気持ちなんか知るか国語のテストかよ
0450nobodyさん
垢版 |
2018/06/30(土) 18:44:02.99ID:grfnyPlf
composerの中の人は忙しいので
並列ダウンロードは皆があったら便利だと思う機能とは知っているが
優先度を低くしている
そんな感じでプルリク作成から2年経った
0451nobodyさん
垢版 |
2018/07/01(日) 01:30:55.83ID:???
あれから2年、君は成長できただろうか
0452nobodyさん
垢版 |
2018/07/01(日) 12:23:54.18ID:???
composerは車輪の再発明が嫌いな
再利用大好人間たちがコードを持ち寄って使いあったり
そこから新しいのを作るためのなれ合いツール
0453nobodyさん
垢版 |
2018/07/01(日) 12:49:01.19ID:???
pear/peclが要らなくなるわけじゃないんだよな
0454nobodyさん
垢版 |
2018/07/01(日) 13:49:42.07ID:???
peclはともかくpearはいらないだろ
0455nobodyさん
垢版 |
2018/07/02(月) 09:37:25.47ID:???
composerにあるライブラリって全部PHPでしょ?
pearを進化させたようなもんだよねたぶん
0457nobodyさん
垢版 |
2018/07/03(火) 19:57:52.06ID:???
最近必死すぎだろw
飢え死ねアフィカスwww
0458nobodyさん
垢版 |
2018/07/03(火) 20:05:02.85ID:???
ComposerのロゴはGo以来のイラッと感を覚えるわけよ
0459nobodyさん
垢版 |
2018/07/03(火) 22:45:29.42ID:nJxIsGZ6
PHPの拡張ってプロジェクト毎にはインストール出来ない?

拡張を実行時に動的に読むdlって関数が昔あったらしいが
削除されてるし
dlは使い物にならなかったのか

他言語ではC拡張のあるライブラリも
他のライブラリと同じ様に
そのプロジェクトだけのインストールができるのが普通
0461nobodyさん
垢版 |
2018/07/04(水) 00:54:24.18ID:???
>>459
現状出来ない
実行時に拡張をロードする機能自体が存在しないのでどうにもならない
やりようがあるとすれば実行時ロード機能を提供するPHP拡張を作成することくらい
PECLに登録して最終的に本体にバンドルされるところまで至らないとエコシステムには取り込まれないだろうなぁ
rasmusとかandiとかzeevとかの基幹メンバーがとんでもなく保守的だし正直何やっても絶望的だと思う

この辺は割とマジで根本的に設計上の欠陥だと思うわ
0462nobodyさん
垢版 |
2018/07/04(水) 02:12:15.23ID:???
.phpから拡張を読み込むことができるようになると
セキュリティホールが量産されそうな気がするが
その辺、大丈夫なのか?
0463nobodyさん
垢版 |
2018/07/04(水) 03:09:24.37ID:???
何となくそういう懸念が浮かぶのは分かる
ただ他言語, 具体的にはPythonとかRuby, Nodeなんかでは頻繁に使われてる
system系の関数使って実行ファイルを叩くのとどう違ってくるのかと考えると別に実行時に拡張ロード出来ても良かろう(dlが削除されたのは安定性が理由だと書いてあるし)
0464nobodyさん
垢版 |
2018/07/04(水) 03:49:54.33ID:???
PHPの用途で動的に読み込めると何が嬉しいのか、
まともな理由がないから削られちゃったんだろ
0465nobodyさん
垢版 |
2018/07/04(水) 06:31:20.45ID:???
プロジェクト毎にPHPインストールすりゃいいんじゃね
0466nobodyさん
垢版 |
2018/07/04(水) 07:52:00.71ID:???
>system系の関数使って実行ファイルを叩くのとどう違ってくるのかと考えると

systemやexecは、php.iniで包括的に設定するしか手がない disable_functions 設定で禁止できる
かなり違うんじゃないかね

http://php.net/manual/ja/info.configuration.php#ini.enable-dl
>このディレクティブは、Apacheモジュール版のPHPを使用した場合にのみ 有用です。
>PHPの動的ロード拡張機能をdl()で 仮想サーバー毎またはディレクトリ毎にオンまたはオフに変更することが できます。
>
>動的ロード機能をオフにするのは主としてセキュリティ上の理由によります。
>動的ロード機能により、 open_basedir の拘束を全て 無視することが可能になります。
0467nobodyさん
垢版 |
2018/07/04(水) 09:59:47.40ID:VNkVp5lL
そもそもdlって最近は削除されて使えないんじゃなかったの?
0468nobodyさん
垢版 |
2018/07/04(水) 20:40:21.34ID:???
exec使える状態って
アホなアップローダとか置いてた日にはopen_basedirの拘束なんて無視して好き放題されちゃうよね
0469nobodyさん
垢版 |
2018/07/05(木) 04:15:11.30ID:???
>>466
いや, php.iniだけで動的モジュールロードの可否を与える(php.iniのみで設定可能な)ディレクティブがあれば一緒だろ
自分でdlの例出してるじゃん

mod_phpで実行する場合は権限がWebサーバになるからそれが嫌だというのはよく分かるが
0470nobodyさん
垢版 |
2018/07/05(木) 04:17:30.15ID:???
変なところにペーストしちゃったけどまぁいいや
0471nobodyさん
垢版 |
2018/07/05(木) 08:10:38.44ID:6vNW6Lds
dlは安定性に問題があるから削除したって言うけど
他の言語で出来ていることが何で出来ない?
PHPはリクエストの度にメモリの内容破棄するから?
0472nobodyさん
垢版 |
2018/07/05(木) 16:56:15.00ID:???
extensionの動的ロードしたいってどんなとき
0476nobodyさん
垢版 |
2018/07/06(金) 14:57:23.38ID:P0O2iWzc
PHPは巨大化し過ぎた
山ほどあるビルトイン関数を削除して
プログラミング言語に最低限必要なライブラリだけをOOPで作り
使うかどうか分からない機能は動的ロードするようにすべきだ

そんな事したらもうPHPじゃない?
そんなの知るか
0477nobodyさん
垢版 |
2018/07/06(金) 15:48:38.10ID:g8pVEt14
そこまでするならフォークして別言語にしろ
QIQとかかっこいい名前付けてもいいぞ
0478nobodyさん
垢版 |
2018/07/06(金) 15:51:08.89ID:???
>>477のセンスを向上させるにはどうしたらいいですか
0479nobodyさん
垢版 |
2018/07/06(金) 17:09:27.76ID:???
ビルトイン関数なんて削っても
PHP本体のソースコードがすっきりするだけで
別に劇的に早くなるわけじゃないしユーザ側が受けるメリットなんて大してないだろ
0480nobodyさん
垢版 |
2018/07/06(金) 20:02:27.67ID:AtnEoX2L
すっきりしたら
ごちゃごちゃの状態よりバグが少なくなったり
本体が小さくなるとかのメリットはある

配列とか文字列がプリミティブ型みたいな扱いなのも
なんとかしる
array_系の関数が重ねて適用しようとしたら使いづらいったらありゃしない
0481nobodyさん
垢版 |
2018/07/06(金) 20:52:45.52ID:???
デフォルトでなんでもアリだからこそ受けてると思うんだけどな
今の時代で多少軽くなってもたかが知れている。ってかそもそもそんなに重くないだろう
そんなに重いならsmartyでも使えばphpの負荷は大きく下がる
0482nobodyさん
垢版 |
2018/07/06(金) 21:03:08.11ID:???
smartyでphpの負荷が下がるってどゆこと
0483nobodyさん
垢版 |
2018/07/06(金) 21:30:44.60ID:YHCASoUv
ビルトイン関数使ってたら
テストを書く時モックするのが難しい
time()とかrand()とか

名前空間使ったハック(\timeのように書いてると不可)やPHP拡張を使う方法もあるが
他の言語だとそんなの必要ないじゃん
キモい

テストを全く書いてない奴はお帰りください
0484nobodyさん
垢版 |
2018/07/06(金) 22:22:39.57ID:???
rubyのnokogiriみたくネイティブライブラリをラップするライブラリって使えれば需要あると思うけど
特にcomposerが普及した今なら更に
0485nobodyさん
垢版 |
2018/07/06(金) 23:05:33.81ID:wqmurizE
今どきsmartyって…w
0486nobodyさん
垢版 |
2018/07/07(土) 07:12:24.91ID:???
php4時代のコードでも少しの変更でphp7で動くようにできるというのがphpのメリットで
何するにしても後方互換の問題があるわけで
pythonのような英断をしなければphpが変わることはないし
成熟してしまって時期的にそのチャンスはもう逃した
お前らがforkして新php作ればいいよ
まあオリジナルの差分をコミットする作業が面倒で3日で匙投げるだろうが
0487nobodyさん
垢版 |
2018/07/07(土) 12:18:10.37ID:y8vJRkpl
既にHackで爆死経験済みだろ。
0488nobodyさん
垢版 |
2018/07/07(土) 14:07:12.63ID:???
pythonはpythonで2と3が両立していた時期があってあれはハチャメチャだった
0489nobodyさん
垢版 |
2018/07/07(土) 14:21:17.62ID:???
php++の前段階として既存の糞ビルトイン関数のラッパークラスをphpで作ればいいよ
0490nobodyさん
垢版 |
2018/07/07(土) 14:39:31.14ID:???
namespace php\lang;

class String extends Object
{
 public function __construct($_str)
 {
  if (is_string($_str)) $this->str = $_str;
 }
 public function htmlEscape()
 {
  $this->str = htmlspecialchars($this->str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
  return $this;
 }
}
0491nobodyさん
垢版 |
2018/07/07(土) 15:39:21.40ID:2YJkuak7
あらゆるライブラリがそのラッパークラスとやらに対応してくれないと
何度も変換する必要があって使いづらい
0492nobodyさん
垢版 |
2018/07/07(土) 16:24:29.33ID:???
言語ごとラッパー作るなんてできるのか?
0493nobodyさん
垢版 |
2018/07/07(土) 19:39:28.88ID:???
イメージ的にはJavaScriptに対するjQuery
jQueryの書き方に慣れてきたころにjQueryの構文やオブジェクトを実装したJavaScript2登場みたいな
0494nobodyさん
垢版 |
2018/07/07(土) 20:28:57.57ID:2YJkuak7
PHPの言語仕様が嫌だが
PHPのライブラリや既存コードも使う必要があるってなら
他の言語で書いてPHPに変換出来るAltJSならぬAltPHPを使えば良いかも

ただ、PHPの場合それが出来て
ある程度人気があるのはHaxeだけだと思う
JSは本当に色々あるのに

https://stackoverflow.com/questions/6551089/is-there-anything-like-coffeescript-for-php
0495nobodyさん
垢版 |
2018/07/07(土) 20:35:32.20ID:2YJkuak7
HackはPHPと互換性があるがVMも違うやつ使う必要があるから
AltPHPでは無いよね
0496nobodyさん
垢版 |
2018/07/07(土) 20:43:49.76ID:???
糞だと思うなら使わなけりゃいいじゃん
0497nobodyさん
垢版 |
2018/07/07(土) 20:53:26.11ID:???
JSはPHP以上にカオスだと思うんだけどな
0498nobodyさん
垢版 |
2018/07/07(土) 20:55:25.59ID:???
JSはundifendeの辺りが怖すぎる
0499nobodyさん
垢版 |
2018/07/08(日) 14:20:25.97ID:???
そんなにjsがいいならjsの子になっちゃいなさい!
0500nobodyさん
垢版 |
2018/07/08(日) 15:23:04.10ID:4WOWpkJq
JSはブラウザで動くのがJSしか無いから
AltJSみたいのが生まれたけど
サーバーサイドは別に代わりがいくらでもあるしね
0501nobodyさん
垢版 |
2018/07/08(日) 15:34:54.96ID:???
ブラウザで動くのがjsしかないのが異常というか
jsだけとはいえブラウザで動かせること事態が本来異常というか
0502nobodyさん
垢版 |
2018/07/08(日) 15:47:47.44ID:???
jsで、任意のファイルを読み書きできるの?

出来てしまうとセキュリティ上やばい気がするのだが。。。
0503nobodyさん
垢版 |
2018/07/08(日) 16:18:42.43ID:4WOWpkJq
>>502
なんの話?
ブラウザのJSは勝手に他サイトやファイルシステムの内容を読めるAPIは無いし
脆弱性を利用してブラウザのセキュリティを突破しようにも
サンドボックスがあったりして難しい
0504nobodyさん
垢版 |
2018/07/08(日) 17:48:47.31ID:???
サーバサイドプログラムでjsを使う場合の話です。

任意のファイルの読み書きはできるのでしょうか?
0505nobodyさん
垢版 |
2018/07/08(日) 18:08:13.66ID:???
node.jsならできるよ。
require('fs');
0506nobodyさん
垢版 |
2018/07/08(日) 21:06:37.76ID:???
jsだからどうという話ではないな。nodeがそうだというだけで。
0509nobodyさん
垢版 |
2018/07/09(月) 14:38:37.47ID:???
>>502=>>504なら
なぜPHPならセキュリティ上問題ないと思った?ていう
まぁ多分本人が考えてることと他のやつが考えてることが違うのだろうけど
0510nobodyさん
垢版 |
2018/07/09(月) 14:59:42.48ID:???
まあお茶でも飲んで落ち着けよハゲ
0511nobodyさん
垢版 |
2018/07/09(月) 19:52:51.86ID:???
これが落ち着いていられるか!
0512nobodyさん
垢版 |
2018/07/14(土) 17:07:18.88ID:8nY3xhKd
このスレであってるかな…?
掲示板を作れるようになりたいんだが、正直マジでCSSとHTMLと少しのPHPの知識(スクレイピングなど)ぐらいしか知識がなくてどういう仕組みなのかわからない。
PHPで掲示板って作れる?
理想としてはガールズちゃんねるそのまんまなのが作れたら最高
0513nobodyさん
垢版 |
2018/07/14(土) 17:24:51.99ID:???
掲示板と言っても、DBを使う/使わないで難易度が大きく変わる

作らなくてもその辺にサンプルどころかそのまま使えるものが山程落ちてるよ
それを改造するところから初めてみては
0514nobodyさん
垢版 |
2018/07/14(土) 17:37:27.52ID:8nY3xhKd
>>513
DBを使わないPHPの簡易掲示板はコピペしたり改造したりしてなんとか作れた。
ただ、txtファイルに書き込みデータを保存する方法だと簡易的すぎるかなと。

理想はガルちゃんみたいにユーザーが自由にトピックを立てられる形にしたいから、DBを使ってやりたい…

どっかにわかりやすい雛形でもあればいいんだけど、何から手をつければいいかすらわからない…
0515nobodyさん
垢版 |
2018/07/14(土) 17:46:54.13ID:???
>>514
俺も昔やろうとしたんだけど、掲示板はセキュリティに気をつけないとあっという間に終わる
更にセキュリティ的に問題なくても、連投や巨大投稿、大量の改行コードだけの投稿などをどう取り扱うかで永久に終わらない

トピックというかスレでいいなら
「2ch風掲示板 cgi」
「2ch風掲示板 php」
この辺で検索してみてはどうかな
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況