1 名前:デフォルトの名無しさん (ワッチョイ 1342-Xqtn) mailto:sage [2016/11/09(水) 11:03:26.15 ID:eAjeihOa0.net] PHPに関する下らない質問用避難スレです。 まず読むこと【PHPマニュアル】 www.php.net/manual/ja/ 前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 5(実質6) echo.2ch.net/test/read.cgi/tech/1462971286/ 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
962 名前:デフォルトの名無しさん (ワッチョイ 1b84-pomU) [2017/03/05(日) 20:50:46.79 ID:SMp0F4mM0.net] 「こっちから契約打ち切るんだよ…」 久しぶりにペチパースレに降臨した瞬間にこんなに香ばしいレスに遭遇するとはwwww もってるわオレwwww
963 名前:デフォルトの名無しさん (ワッチョイ cb3c-NqFr) mailto:sage [2017/03/05(日) 21:57:03.52 ID:pZffxBVA0.net] >>946 分かってないやつはそもそも明示的な型変換なんかしないんじゃないかね
964 名前:デフォルトの名無しさん (ワッチョイ 1b56-2BvX) mailto:sage [2017/03/06(月) 19:27:49.93 ID:bl9QmO+H0.net] 作るもののレベルによって使い分けてるな 自分しか使わない業務自動化用のプログラムとかでは if (!$hoge) { } なんて普通に使ってしまってるが、くっそ適当に書くからコードを書くのはめちゃくちゃ早い なぜそれが駄目か理解した上で自己責任で書く分には問題ないと思ってる しょせんPHPだしw
965 名前:デフォルトの名無しさん (ワッチョイ eb59-CIMi) mailto:sage [2017/03/06(月) 20:04:35.14 ID:1Fs4X0cy0.net] なぜそれが駄目かではなくて、それで十分だということを理解したうえで書くなら問題ないというスタンスであるべきではないのか
966 名前:デフォルトの名無しさん (スップ Sd3f-3Y4X) mailto:sage [2017/03/08(水) 07:18:41.32 ID:lD7PG6Njd.net] vcのが速いんでないの
967 名前:デフォルトの名無しさん (ワッチョイ db7b-BTGK) [2017/03/08(水) 15:13:36.00 ID:z9npna5X0.net] ポリモーフィズムって、無理にinterfaceでメソッドを定義して 実装を行わなくても、 クラスの中のメソッド名を いざ他のクラスを作った時に同じようなメソッドを同じ名前にするよう気をつければ ポリモーフィズムとよべるんですか?
968 名前:デフォルトの名無しさん (ワッチョイ 1f3c-dv7B) mailto:sage [2017/03/08(水) 15:23:42.74 ID:Uljnsbub0.net] ダックタイピングをポリモーフィズムの一種と考えるかどうかは人によって意見が違うが 俺はポリモーフィズムの一種だと思うよ 明示的にインターフェースを定義してるか暗黙のインターフェースを使ってるかの違い
969 名前:デフォルトの名無しさん (ワッチョイ 337b-9RK0) [2017/03/09(木) 14:51:15.69 ID:B4NOdQEm0.net] 回答ありがとうございます。 すると、ポリモーフィズムはプログラミング技術というより コーディングルールテクニックみたいな感じですかね。
970 名前:デフォルトの名無しさん (ワッチョイ 0bf9-ATAZ) mailto:sage [2017/03/09(木) 14:55:51.52 ID:EWO17/eW0.net] まあ関数名が短かくなるということですよね
971 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/09(木) 16:14:29.69 ID:x6aOWZGA0.net] >>957 ポリモーフィズムは概念とか考え方 実現する方法は一つじゃない プログラミング技術かコーディングルールかでいうとプログラミング技術のほうが近い
972 名前:デフォルトの名無しさん (ワッチョイ af7b-j8zu) [2017/03/09(木) 19:31:52.00 ID:oP+XYW1+0.net] すまんが質問させて頂くでござる 借り
973 名前:トるレンタル鯖がPHP Version 5.2.17だったんだがもしかしてDatetimeって動作しないん? ログ見るとPHP Fatal errorが出てるがローカル環境ではPHP Version 5.5.38でエラー無く正常動作しています [] [ここ壊れてます]
974 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/09(木) 21:59:57.83 ID:x6aOWZGA0.net] マニュアル見て php.net/manual/en/class.datetime.php
975 名前:デフォルトの名無しさん (ワッチョイ b230-JiRs) mailto:sage [2017/03/09(木) 22:35:33.53 ID:Q01U24Fq0.net] 無関係だがもうそんな古いバージョンのPHPとか見たくないよね って5.xも見たくない 全ての古きphpが朝起きたら7.0.xに(コードも都合よく)変わってないかなあ
976 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/09(木) 23:42:25.43 ID:PWMSgsoI0.net] >>962 >全ての古きphpが朝起きたら7.0.xに(コードも都合よく)変わってないかなあ あめぇなぁ。 「全ての古きphp環境が全部7.0.x環境に変わっていて、ゴミクズコードをそのまま動かしていたマヌケ共が全部瀕死にならねぇかなぁ…」 くらい、考えろよ
977 名前:デフォルトの名無しさん (ワッチョイ bfc1-vsbp) [2017/03/10(金) 20:27:51.56 ID:nXK4riNi0.net] ちょいとお尋ね。 ~~~~~~ class Super { public function override() { echo __METHOD__.PHP_EOL; $this->another(); } public function another() { echo __METHOD__.PHP_EOL; } } class Sub extends Super { public function override() { echo __METHOD__.PHP_EOL; parent::override(); } public function another() { echo __METHOD__.PHP_EOL; } } $sub = new Sub(); $sub->override(); ~~~~ このコードの実行結果が Sub::override Super::override Sub::another になるんだけど, 期待されるのは最後はSuper::anotherじゃない? 何か書き方がマズいからこうなってるのか?
978 名前:デフォルトの名無しさん (ワッチョイ bfc1-vsbp) mailto:sage [2017/03/10(金) 20:36:29.28 ID:nXK4riNi0.net] あ, 忘れてちょ
979 名前:デフォルトの名無しさん (ワッチョイ 337b-9RK0) [2017/03/11(土) 15:09:50.84 ID:ag50xhgS0.net] レコードによって、実行するプログラムが変わるため データベースに php_program(仮名)というカラムを作り そこのプログラムを直接書きレコードを呼び出した際 eval関数を実行するという、 プログラム作成しようとしています。 基本 php_program カラムは phpmyadmin 以外からはいじれませんが 念のため、インジェクション攻撃を防ぐためにどういった対策が考えられるでしょうか? 指定の関数しか使えないとかできるのでしょうか?
980 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/11(土) 15:26:30.91 ID:sUFiWX+J0.net] 外部に公開するシステムでその設計は無いわ インジェクションの前に設計を見直すアドバイスを募ったほうがいい
981 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/11(土) 20:34:55.67 ID:n0RAiOjQ0.net] >>966 発想が斬新過ぎて、もはや異世界の住人的強烈な違和感を覚える
982 名前:デフォルトの名無しさん (ワッチョイ f342-aox5) mailto:sage [2017/03/11(土) 20:56:27.68 ID:M9c6EBxE0.net] >>966 プログラムを別テーブルにして、プログラムIDを指定するようにするとか まぁ管理するのが面倒かもしれないけど 使う人が信頼できる前提で、その人にしか公開しない前提ならないとは言えないかな
983 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/11(土) 21:04:54.25 ID:sUFiWX+J0.net] もしオンラインのコードエディタ的なものを想定してるんだとしたら Sandbox化する方法を調べたほうがいいかな そういうの作る人がここで質問するとは思えないけど
984 名前:デフォルトの名無しさん (ワッチョイ 624a-ZfXI) mailto:sage [2017/03/12(日) 16:41:25.84 ID:9ahiNoY00.net] >>966 俺も967や968と同じ。 どんな要求仕様なのか逆に聞きたいくらいだ。 それと、970は真面目に回答していて偉いと思う。
985 名前:デフォルトの名無しさん (ワッチョイ ef59-ZfXI) mailto:sage [2017/03/12(日) 17:52:33.32 ID:hOorJCR80.net] > レコードによって、実行するプログラムが変わるため から > プログラムを別テーブルにして、プログラムIDを指定するようにするとか となるのは自然だと思うが > もしオンラインのコードエディタ的なものを想定してるんだとしたら は飛躍しすぎじゃないだろうか。 ユーザがコードを入力する流れに変わってしまっている。
986 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/12(日) 21:47:03.45 ID:T4N3k6YJ0.net] >>972 そこはエディタじゃなく実行できるPHPチュートリアルとかPHP問題集とかでもいいのよ 飛躍はしてると思うけど あとプログラムを別テーブルにして云々は全く自然じゃないぞ 実行するコード片をDBのレコードに保存してevalするのは変わらないんだから
987 名前:966 (ワッチョイ 337b-9RK0) [2017/03/13(月) 11:29:38.10 ID:v0LCVDYp0.net] 回答してくださった方々ありがとうございます。 仕様状況としては DBレコードには、会員情報に対応する付加情報がはいっていて 会員(ユーザー)ごとにある部分だけ個別にまったく異なるプログラムを動かさなければならない感じです。 100人いたら100通りプログラムがあり、 会員が増える度にクラスを足していったりSwitch文を増やしていく方法を取ろうかとも思いましたが 直接 個別のプログラムを 会員レコードに内包すると管理しやすいかなとも思ったので質問しました。 セキュリティー的にはよくないのはわかってるのですが、そのレコードをいじるのは 私か内部関係者のみだけがいじれるようにする予定です。 これは、たとえDBレコードにphpを直接書き込む方法をとらずに phpファイルのクラス等を増やしていく方法をとったとしても FTPやSSH上から内部関係者はいじれるようにする可能性があります。 (ただ、そうしたくないのでレコードにphpを書く方法を取りたいというのもあります) system exec file系 など 危険な関数は実行出来ないようにしてます。 また、レコード内に必ず ある文字列(十数桁の不規則な英数字)が入ってないと実行できません。 ただ、ぶっ飛んだ方法だったみたいなので もうちょっと安全かつ汎用的なやり方がないか考えてみます。
988 名前:デフォルトの名無しさん (ワッチョイ 3642-nt29) [2017/03/13(月) 11:47:28.29 ID:bicztMj/0.net] PHPってクラスのデストラクタの動作おかしくないですか? これって二行目いれないとデストラクタが起動しないんですか? 変数が上書きされれば前回の情報は消えてデストラクタが動くはず。回避できないですか? $hd = new classXXX("000"); // $hd = null; $hd = new classXXX("000");
989 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 11:59:39.89 ID:rgen9sgM0.net] >>974 ・こうするじゃろ? Table::User ------------------- id | name | prog 1 | taro | UserProg1 2 | hanako | UserProg2 3 | ziro | UserProg3 -------------------
990 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sげ [2017/03/13(月) 12:00:17.32 ID:rgen9sgM0.net] ・こうするじゃろ? app ┬ core ├ prog │ ├ UserProg1.php │ ├ UserProg2.php │ ├ UserProg3.php │ : │ └ webroot ├ folder :
991 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:00:44.04 ID:rgen9sgM0.net] ・app/prog/ ディレクトリーをautoloadの対象にするじゃろ?
992 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:01:10.64 ID:rgen9sgM0.net] ・セレクトするじゃろ? $result = "SELECT * FROM User WHERE WHERE id = '2'";
993 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:02:59.41 ID:rgen9sgM0.net] ・こうじゃ! $prog = new $result->id(); $prog->execute();
994 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:08:29.70 ID:rgen9sgM0.net] ・間違いじゃ! $prog = new $result->prog(); $prog->execute();
995 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/13(月) 12:14:48.64 ID:rgen9sgM0.net] >これは、たとえDBレコードにphpを直接書き込む方法をとらずに phpファイルのクラス等を増やしていく方法をとったとしても > FTPやSSH上から内部関係者はいじれるようにする可能性があります。 恐らく、 おまえさんの書いたDBレコードを関係者がいじれるWEBアプリよりも、鍵方式のSSHの方が遥かに安全じゃ。 FTPは論外じゃ。
996 名前:975 (ワッチョイ 3642-nt29) [2017/03/13(月) 12:24:28.85 ID:bicztMj/0.net] 自己解決しました 静的メンバ変数を用意、維持してやったら出来ました
997 名前:デフォルトの名無しさん (ワッチョイ e356-aizu) mailto:sage [2017/03/13(月) 13:41:54.67 ID:AvyIY0iY0.net] >>974 とりあえずautoloadって知ってる? それにしても発想が斬新過ぎる まあ固定観念に縛られるのはよくないし こういう刺激?を求めてこのスレを定期的に見てるんだけど
998 名前:デフォルトの名無しさん (ワッチョイ f342-aox5) mailto:sage [2017/03/13(月) 14:08:04.12 ID:f3raQE2X0.net] >>974 つまり、プログラム自体はプログラマが作って どのプログラムを実行するかは、データ入力者が決めるようにするということ? プログラムも信頼できない人が作っておける環境だとまずいけど そうでなければ、DBにどんなプログラムを実行するかの情報を入れること自体は問題ないと思いますよ。 まぁ直接文字コードを入れさせると、入力間違いで変なプログラムが実行される危険があるので そこはプログラムリストから選ぶような仕組みにした方が良いと思うよ。 973 みたいにDBにプログラムリストを入れるのを最初から否定するのは発想が貧困すぎww
999 名前:デフォルトの名無しさん (ササクッテロル Sp57-xX7A) mailto:sage [2017/03/13(月) 14:17:41.62 ID:ba0kSSARp.net] >DBにプログラムリストを入れるのを最初から否定するのは発想が貧困すぎww evalする事になんの抵抗も感じない土人がなんかほざいています。
1000 名前:デフォルトの名無しさん (ワッチョイ 624a-ZfXI) mailto:sage [2017/03/13(月) 16:11:36.68 ID:kanqNMIn0.net] DBは値を入れるもので、 プログラムコードはファイルに保存するもの。 おじさんそんなことも知らないの〜? って近所の小学生が言ってた。
1001 名前:デフォルトの名無しさん (ワッチョイ 323c-ZZsN) mailto:sage [2017/03/13(月) 16:38:55.99 ID:h57/U2+30.net] >>974 >100人いたら100通りプログラムがあり、 抽象化が不十分な気がする 必要なのはHTMLのテンプレートエンジンだったりしない?
1002 名前:デフォルトの名無しさん (スッップ Sd92-1frF) mailto:sage [2017/03/13(月) 19:01:38.92 ID:7S0lCjx+d.net] phper的にはそんなもんじゃないの 定年PGだし
1003 名前:デフォルトの名無しさん (アウアウウー Sa93-TeMv) mailto:sage [2017/03/14(火) 01:57:08.43 ID:08imKbv+a.net] wpがにたようなもんか
1004 名前:デフォルトの名無しさん (ワッチョイ f342-aox5) mailto:sage [2017/03/14(火) 08:57:38.80 ID:N5p5l+OE0.net] >>986 抵抗はあるけど、Webしか知らない人って感じで発想が貧困すぎでしょww もっとシステム全体を見て判断できるようになった方がいいと思うよ。
1005 名前:デフォルトの名無しさん (ワッチョイ e6c9-2hGO) mailto:sage [2017/03/14(火) 14:20:16.25 ID:vOSyRZGG0.net] >>986 そこをいかに安全にするか考えるのが楽しいんじゃん ideoneみたいにめぼしいシステムコール潰しておくとか 手はあるよきっと
1006 名前:デフォルトの名無しさん (ワッチョイ 3642-nt29) [2017/03/14(火) 14:22:58.56 ID:s4GXkib80.net] データベースのソースコードをいれること自体は問題なしだろ? データベースと関係なく、読み込んだしたコードを実行する時点が問題なんだろ? データベースは関係ない。
1007 名前:デフォルトの名無しさん (ワッチョイ ef59-ZfXI) mailto:sage [2017/03/14(火) 19:41:44.29 ID:OXYXI7ST0.net] 自分がコード片を書くのにそんな制限かけてどうすんのって思う テーブル分割してロール制御でいいんじゃないのか
1008 名前:デフォルトの名無しさん (ワッチョイ bf6c-1frF) mailto:sage [2017/03/14(火) 22:10:29.49 ID:4mHil5V80.net] そもそも最前線のフロントエンドに配備する必要なかろう
1009 名前:デフォルトの名無しさん (ワッチョイ e3d6-1sZU) mailto:sage [2017/03/15(水) 00:09:16.65 ID:HiQDR7mt0.net] >>991 : デフォルトの名無しさん (ワッチョイ f342-aox5)2017/03/14(火) 08:57:38.80 ID:N5p5l+OE0 > 抵抗はあるけど、Webしか知らない人って感じで発想が貧困すぎでしょww WEB以外を知ってたら、なんでDBにコードぶっこむことになるんだよ土人 何より、DBに入れるメリットが何処にあるんだ、アホなのか? >>992 : デフォルトの名無しさん (ワッチョイ e6c9-2hGO)2017/03/14(火) 14:20:16.25 ID:vOSyRZGG0 > そこをいかに安全にするか考えるのが楽しいんじゃん オメー個人が楽しいかどうかを仕事に持ち込むなよ 「いかに安全にするか」ってことは危険だとわかってるのに、 なんであえてそんなアホな手段を模索すんだよ、マゾか? こいつら、同一人物だろ
1010 名前:デフォルトの名無しさん (ワッチョイ bfb2-csvI) mailto:sage [2017/03/15(水) 00:30:23.86 ID:ko4BTSP20.net] >>974 とりあえずぱっと見たところで業務案件としては可変コード部分がテスト出来ないのは設計上まずいと思う 可変部分の具体的な(端的な)例を幾つか挙げてもらわにゃ分からんけど, >>988 の言う通り抽象化するのが下手なだけな可能性は高い 可変コードにするなら実装案としては, ・コードは顧客毎にgitリポジトリを作成して管理 ・アプリケーション側で顧客毎のコードリポジトリを更新するAPI ・ベアリポジトリ(のmaster)へのpush時に上記APIを叩くフック な感じを提案しておく。 リポジトリ管理はGitLabとか使えばGUIでかなり複雑なことまで出来るしコード編集(masterへのpush)権限も制御出来る。 テストも自動で走らせられる。
1011 名前:デフォルトの名無しさん (ワッチョイ bfb2-csvI) mailto:sage [2017/03/15(水) 00:39:24.05 ID:ko4BTSP20.net] 次スレ立てるよ!
1012 名前:デフォルトの名無しさん (ワッチョイ bfb2-csvI) mailto:sage [2017/03/15(水) 00:43:22.66 ID:ko4BTSP20.net] ほい 【PHP】下らねぇ質問はここに書き込みやがれ 8 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1489506082/
1013 名前:デフォルトの名無しさん (ワッチョイ ef59-ZfXI) mailto:sage [2017/03/15(水) 02:46:08.52 ID:6L0FngKc0.net] >>997 また要件すり替えてワーワーと。git言いたいだけなんちゃうんかと
1014 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています