1 名前:デフォルトの名無しさん [2022/09/20(火) 16:46:23.39 ID:Sb2Kpzh+0.net] !extend::vvvvv:1000:512 !extend::vvvvv:1000:512 ★スレ立て時 ↑ が3行以上になるようコピペ PHPに関する質問スレです 前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 13 https://mevius.5ch.net/test/read.cgi/tech/1631147923/ 次スレは>>980 以降 VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
91 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 18:24:17.73 ID:eZjQhR3g0.net] それPHPの質問じゃなく、ウェブサーバーの設定の質問だからなぁw ドキュメントルートに.htaccessをおいてアクセス制限すればいいだけでは? 詳しくは.htaccessの書き方などを調べてみては?
92 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 18:35:06.55 ID:oo0O6LY/0.net] 基本方針として >>91 が良いと思うけど、昔のphpでアクセス可能なphpファイルでグローバル変数に適当な値詰め込んで、アクセスできちゃまずいファイルで、それがなければdie()するやつはよく見た気がする
93 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 00:14:08.21 ID:yzq3WDoT0.net] ありがとうございます。 おっしゃるとおり、ウェブサーバーの範囲なのですが。 あちらの世界の人たちが、phpのincludeとか理解いただけるか 不安だったので、ついこっちで質問してしまいました。 一つだけ追加質問させてください。 こういったものは、 パーミッション? chmodなどで設定するものではなくて、 .htaccessでの設定が基本と思っていいですかね。
94 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 00:21:40.99 ID:jaKz+yV10.net] httpd.confからドキュメントルートのrequire ip を127.0.0.1にすればいけるのかな?少なくとも外部からのアクセスは弾けるはずだけどさ
95 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 07:16:27.43 ID:Js5Cj1j50.net] >>93 上司に聞け、マジで、そうしないと事故るよ
96 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 07:31:19.51 ID:+5kcU5m20.net] >>94 phpからのファイル読み込みだとWebサーバ通らないから意図したものではない設定になると思うよ
97 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 10:40:35.61 ID:mOIoNYE10.net] >>93 それで大丈夫です .htaccessの設定で上書きされるので何より優先されます
98 名前:97 mailto:sage [2022/10/19(水) 11:21:48.30 ID:+5kcU5m20.net] phpで制限してるやつ思い出したんで書き込んどく https://github.com/bcit-ci/CodeIgniter CodeIgniter3系で各ファイルの先頭に defined('BASEPATH') OR exit('No direct script access allowed'); があってスクリプト以外から読めないようにしてた フォルダにも空ディレクトリ用にindex.html用意してたりして、昔のインフラ対応を一所懸命にやってた感じ https://github.com/bcit-ci/CodeIgniter/tree/develop/application/controllers
99 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 11:26:05.56 ID:FPDvrmQDr.net] 下手にWebhttp通そうとしないで、社内とかで相談したほうがいいと思うわ インフラ関係させたほうが、後々責任とるハメにならないよ
100 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 13:52:22.97 ID:Js5Cj1j50.net] >>98 wikiによると2006からあるらしいけど、当時ですらその方式はナンセンスだよね。 上の階層には.htaccess置いてるし、ソフト403でいいのか?だし。 そもそもPHPではサーバーレス的な構成はほぼ無いので、諦めて普通に癒着させた方が綺麗だった気がする。
101 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 14:06:52.57 ID:+5kcU5m20.net] >>100 んなこたぁないと思うよ あの頃のレンサバの開放ディレクトリってフラットだったから あと、レンサバ以外でnginxがはやりつつあったからフールプルーフでしょ まぁ、あんまりきれいでないことは同意w
102 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 15:41:31.30 ID:Js5Cj1j50.net] >>101 当時の仕様は知らんが、今と変わりなければ、 nginxでは.htaccessは使えないし、ディレクトリインデックスはデフォでオフだから、まるで意味無いよ。 > If a request ends with a slash, NGINX treats it as a request for a directory and tries to find an index file in the directory. The index directive defines the index file’s name (the default value is index.html). To continue with the example, if the request URI is /images/some/path/, NGINX delivers the file /www/data/images/some/path/index.html if it exists. If it does not, NGINX returns HTTP code 404 (Not Found) by default. To configure NGINX to return an automatically generated directory listing instead, include the on parameter to the autoindex directive: > https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/#:~:text=The%20index%20directive%20defines%20the%20index%20file%E2%80%99s%20name,returns%20HTTP%20code%20404%20%28Not%20Found%29%20by%20default. フールプルーフを目指すなら、Apacheとnginxの両方の設定ファイルもちゃんと用意しておけばいいだけ。 .htaccess置くのなら、Options でディレクトリインデックスも切れるはずだし、グダグダすぎる。 まあ歴史は長いようだから、大抵何らかの理由があるものではあるけど、 見た目、単なる技量不足(鯖を知らないだけ)で、初心者的なコーディングをしてしまったように見える。 そうでなければ、鯖がグダグダ過ぎて設定してもまともに動かなかったのでPHP側で対応した、てなところだろう。
103 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 17:33:25.58 ID:+5kcU5m20.net] >>102 基本古いレンサバ仕様で動くように作ってあったのよ で、その頃ディレクトリの中丸見えじゃん問題ってのがそこそこ話題にされてたんで、index.htmlを用意するってのはそれ対策かと nginxの設定テンプレートは、そこいらの野良blogとか記憶が確かならnginxの公式でも配布してたと思う ただ、野良の方はかなり程度が低いのも多かったから、できる範囲で対応をとってたって感じかなぁ(多分w) exit()がこっちの対策だね なんせcomposerインストールとかも野良な時代だからねぇ 色々大変だった ところで、apache/nginx用の設定ファイルを同梱ってありえるの? .htaccessを突っ込んでるのは見るけど、設定ファイルを配布してるのは見たことないんだけど
104 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 19:27:01.72 ID:vYLhahcn0.net] PHP技術者認定試験って難しい?
105 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 19:35:32.95 ID:yzq3WDoT0.net] ありがとうございます。 まさか盛り上がる案件だとは。 個人で借りたレンタルサーバーの研究サイトなのです。 心配させてスイマセン。 htaccessで整えてみます。
106 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 20:27:01.24 ID:Js5Cj1j50.net] >>103 > ところで、apache/nginx用の設定ファイルを同梱ってありえるの? 知らん。けど、技術的に出来ない理由はないだろ。 もっとも、nginxのは.htaccessから変換して作るものらしいし、.htaccessがあれば何とかなるんだろう。 (と思って公式のrewriteちょっと見てみたが、手動ならさておき、自動では厳しいなこれは) レンサバ+PHPにはnginxは向かなかったのかもね。 上げたら見えるほうが分かりやすいし、 大量の静的ファイルを捌くだけの元々の鯖の使い方だとその方がいいし、 apacheのデフォがそうだからnginxレンサバもそうしたら、 鯖単位でしか設定出来ないのだから丸見えになってしまう。 無理にapacheに合わせず、nginx本来の設定で使えばよかっただけだね。 つってもnginxレンサバがapacheに合わせたのは商業的な理由だろうし、 結果、その歪みのしわ寄せがフレームワーク側に残ってる、間抜けだがありがちな状況に見えるよ。 しかし今も更新してるんだから直せばいいのにとも思うが。コントリビュートするならどうぞ。 最上位の階層の.htaccessに一行、 Options -Indexes と書けばそれ以下のソフト403なindex.htmlは全部削除出来るはず。以下参考 > https://www.javadrive.jp/apache/ini/index24.html > https://httpd.apache.org/docs/2.4/ja/mod/core.html#options
107 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 20:40:24.15 ID:Js5Cj1j50.net] >>105 個人で研究するなら好き勝手にやるべきだが、一応 > 一般的に、サーバの主設定ファイルにアクセスできない場合を除いて、 .htaccess ファイルの使用は極力避けてください。 > 世の中には、例えば、ユーザ認証は常に .htaccess ファイルで 行なわなければならない、という誤解が広まっていますが、 > まったくそんなことは ありません。ユーザ認証の設定はサーバ主設定ファイルに書くことができ、 実際、その方がより良い設定方法です。 > https://httpd.apache.org/docs/2.4/ja/howto/htaccess.html まあサーバの設定ファイルもほぼ同じ書式なのでhtaccessの書き方を確認するのも悪くはないが、 そもそもhtaccessなんて無くても動くように作るべきだよ。 (それがCodeIgniterでやってる事だと言われればそうなのだが)
108 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 20:49:06.23 ID:+5kcU5m20.net] >>106 > 知らん まぁそうやんな。俺も知らんw ちょっと誤解させたかもしれないけど、nginx使ってたのは自前サバとかVPSとかで、レンサバのnginxは無かったと思う 余談だけど、CodeIgniter4だとどうなってるか見てみた。 ちゃんとcomposer install にも対応してて、随分モダンになってたわ(当たりまえだけど) でも、index.htmlは残っててちょっと笑ったw 久しぶりに週末にでも使ってみようかと思う
109 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 21:00:01.66 ID:+5kcU5m20.net] >>107 laravelとかはもう割り切って.htaccessないしね 個人的にはレンサバ以外でapache使うこともなくなったから書き方も忘れたw
110 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 22:21:11.99 ID:Js5Cj1j50.net] >>108 > nginx使ってたのは自前サバとかVPSとかで、レンサバのnginxは無かったと思う ならセルフ開示じゃないですか~。 それなら、nginx登場の2004はxhrがajaxとして再発見される2005より前なので、 nginxは当初は(wiki読む限り今もらしいが)静的ファイルの高速配信向けで、 おそらくデフォでApacheと同じくディレクトリインデックス有りで、 しかも.htaccessが効かないから事故りまくったのだろう。 んで、動的サイトの増加に伴い、デフォでディレクトリインデックス無しに仕様変更したのではないかと。 >>109 まあ参考にすべきは最近最高に使われてるソースであって、PHPならLaravelなのは確か。 ただ俺はWeb系でもないのでさっぱり知らないし、実際どう配置して使うのかも知らないが、publicには転がってる。 https://github.com/laravel/laravel/blob/9.x/public/.htaccess robots.txtもあるから、おそらく外から見えるディレクトリなのだろうとは思う。 ただ、PHPの場合、構造的に最低限のrewriteはサーバーにやって貰うしかない。 他言語みたいにURL文字列を引数として関数コールして貰えれば鯖と完全分離出来るが、 そうではないので、諦めて片足突っ込んだ状態で行くのが一番ましだと思うよ。 Laravelは Options -MultiViews -Indexes と rewrite だけだから、最小限に留めてる。これが多分ベスト。 CodeIgniterはこのOptionsの一行をケチった結果index.htmlが大量に必要になってるわけだが、 htaccess見たところアク禁指定だけでrewriteが無いので、rewriteしないつもりなら鯖と完全分離出来る。 が、現実的にrewrite無しの動的鯖って厳しい気が。 とはいえ、ユーザーに直接クエリ文字列を書いてもらえるのなら有りなので、フレームワークとしてはこれでいいのかも?
111 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 22:26:04.73 ID:o5dUZxuy0.net] レンサバって、ユーザーにて医今日してくれる場所は、ユーザーのHOMEディレクトリで、 その配下にpublic_htmlがあるんだよね? その隣にディレクトリ作れば、Webからはアクセス出来ないでしょう
112 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 22:26:46.26 ID:o5dUZxuy0.net] × て医今日 ○ 提供 なんて変換だよ・・・
113 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 00:52:50.25 ID:JdSscN+80.net] >111 おっしゃるとおりです。 ですが、いろいろと理由がありドキュメントルート配下に、 ブラウザからアクセスさせないディレクトリを作りたいと思ったのですが。 それが、こんなにイレギュラーなことかとは思わなかったです。。 ベーシック認証やIP制限などで、htaccessは何度か弄ったことはありますが、 そもそもこのファイルなんぞやとは思っていました。 htaccessとかの学習は、サーバー関連の学習で得られますでしょうか? Linuxとかの基礎本とか読んでみたのですが、コレジャナイ感がしてます。 「htaccessとは?」という基礎レベルから理解したいのですが。。
114 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 01:50:07.83 ID:kET4P9rE0.net] 今時レンタルサーバーでPHPを動かすという需要がWPぐらいしか無い気がするんだよね だからLaravelみたいなのを使う場合はレンタルサーバーなんかで動かせられないし (データベースなども必要だし) AWSの無料枠とかでやった方が良いのでは無いかと思うのだけどね さくらのクラウドとか安いサービスもあるし、選択肢は結構ある筈だけどね
115 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 08:21:45.81 ID:MwzDpM35r.net] AWSは無料枠にハメられて高額になるからレンサバ使えるならレンサバがコスト的にいい
116 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 08:36:09.51 ID:Y6zWMSoX0.net] >>113 言うほどイレギュラーでもない。 ただ、レンタルサーバーでもドキュメントルートは変更出来るだろうから、ディレクトリ作って下にずらせばいいだけではある。 htaccessは知っておけばいいものでわざわざ学習する物ではない。 とりあえず公式全部読めば何となく分かるだろうし、その程度でいい。1~2日程度。(8~16時間程度) それでも意味不明ならググれば何とかなる。 https://httpd.apache.org/docs/2.4/ja/ https://httpd.apache.org/docs/2.4/ja/howto/htaccess.html 機能一覧なら以下。 https://httpd.apache.org/docs/2.4/ja/mod/quickreference.html 逆に言えばここに挙げられていることしかできないから、この中にやりたい事がなければhtaccessでは実現出来ない。 見れば分かるがサーバーの設定であり、PHP的に必要な物はほぼ無い。(当たり前だが) ぶっちゃけ、今の君の理解でも大して問題ないと思う。 ただ、その場合、例えばCodeIgniterみたいに(あれは意図的だと思うけど)、 それhtaccessに書けば一行で済むよ?みたいな事になる可能性があるだけ。とはいえ、それでも問題ないのも事実。
117 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 08:40:25.19 ID:Y6zWMSoX0.net] >>114 今時無料レンタルサーバーでもMySQL使えるよ。 https://www.star.ne.jp/free/functions.php もっとも、初心者がPHPをわざわざ書く必要は無くなってきてて、最終的にWPかNoCodeになる気はするが。
118 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 17:37:46.33 ID:CBxQXJka0.net] laravelインストールできなかったり、 MySQLがwindow関数使えないVerだったり 半端なレンサバのほうが何故か多い印象 なんでMySQLは5止めが多いんだ?
119 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 18:53:20.55 ID:zfdkX5sTH.net] レンサバは極端な話WPだけ出来ればいいしって設計が多い さくらとかも
120 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 13:00:09.47 ID:S5n6e8jb0.net] PHPやりはじめてます。 ソースを修正するたびにサーバーにアップロードしてWebで試しているんですが アップロードを何回も連続で繰り返してるとプロバイダから何か異常なアクセスしていると思われて 突然使用禁止とかになってしまうこととかはないんでしょうか?
121 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 13:07:11.70 ID:SJXXwtKb0.net] ないです
122 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 14:52:36.86 ID:7auWfLY00.net] めっちゃ高速に大量に頻繁にbot並にやるなら思われるかもね
123 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 15:49:08.68 ID:Em+AyBVc0.net] アップロードの時は回線速度超える事はないし よっぽどアクセス集中していない限り、処理が破綻することはないと思う 使用禁止にするかはサーバーの利用規約と管理者の裁量
124 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 20:40:23.57 ID:nojkBjJF0.net] 何故ローカルで開発環境を作ってそこで試さないのか・・・
125 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 09:34:23.26 ID:coiJgjfP0.net] サーバの構築はPHPの学習の本質ではないからですね
126 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 09:36:02.91 ID:gnI45ZOc0.net] >>120 手作業程度でそんな事にならんよ 毎日12時間以上5人程度が同じサーバにそういう事してたけど問題なし ただ、その方法だとデバッガー使えないんじゃないの? トレースとか出来たほうが楽だよ
127 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:08:24.28 ID:coiJgjfP0.net] >>126 xdebugを使えばリモートでトレースデバッグできるのでお勧めですね
128 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:50:27.55 ID:s5FmrwgX0.net] >>125 いやいやwwww 開発環境を作れないような奴は開発する以前の問題 個人でやるだけなら別に好きにやればいいけど 仕事で開発環境も作れませんは流石に無いわw xamppとかサルでも出来るようなのもあるし、docker等も先に学習しておいた方がいい
129 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:59:19.37 ID:b6oRD2LO0.net] 学習するなら、本番と(なるべく)同じ環境でやるのが良いと思う
130 名前:デフォルトの名無しさん (ワッチョイ eef8-B2ja) mailto:sage [2022/10/26(水) 15:45:27.26 ID:NvEAaUGj0.net] APIの接続制限してるのだと実験しにくい レンサバのIPアドレスは登録してるけど、 ローカルサバからAPIが使えなくて こゆときどうしてる? 相手先にローカルサバにも解放してもらう?
131 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 00:39:49.92 ID:vwkoq2WA0.net] 日本語でおけ
132 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 01:29:49.29 ID:rsMc68LB0.net] AというサーバーのAPIを使いたいけど、Bのレンタルサーバーからのアクセスは許可しているが ローカル(自宅か会社?)のIPからは許可されてないから使えないって事? どっちにしてもPHP全く関係ないけどw
133 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 19:22:50.72 ID:4ZX07akh0.net] PHPのSQLのサンプルで次のようなデータの登録と読み出しはうまくいきました。 DB書き込み送信側 $stmt=$pdo->query('CREATE TABLE test_table (id text, name text)'); $stmt=$pdo->query("INSERT INTO test_table (id, name) VALUES ('abc', 'def')"); DB読み込み受信側 $stmt=$pdo->query('OPEN test_table (id text, name text)'); $result_rows = $pdo->query('SELECT * FROM test_table'); foreach ( $result_rows as $row ) { echo "id: {$row['id']}"."<br>"; echo "name: {$row['name']}"."<br>"; } 結果表示:abc def この項目名idや nameを別の文字にするとうまく機能しなくなります。 idや nameが必須項目なのかと思い、3つ目に独自の名前の項目を追加してもだめでした。 この項目名は決められた名前しか使えないのでしょうか? 独自の名前を追加するにはどうすればいいのでしょうか?
134 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 19:41:02.63 ID:CaQ/+DOQ0.net] PHP以前にSQLを理解しているか? mysql workbenchなどでSQLを入力してどんな挙動をするかを先に勉強した方が良いのでは?
135 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 21:26:35.07 ID:DaaCK8GW0.net] >>133 同じ名前で再度CREATEしてもテーブル再作成されたりしないのよ?
136 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 21:48:21.38 ID:4ZX07akh0.net] そこは書くの省いてますが毎回テーブル消去しての実行になってます
137 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 21:53:29.34 ID:h9jqxmjM0.net] 何で毎回テーブル消すのかが分からん
138 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 23:20:50.12 ID:bH7L5hyf0.net] 何をやったのか詳しく書いた方がいいと思う 長くなってもかまわないから エラーメッセージも 情報が少なすぎて何がなんだかわからない teratail とかの質問のフォーマットが参考に なるかもしれない
139 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 23:26:53.75 ID:KoRc+sfH0.net] OPENって初めてみたわ コレってDB何?
140 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 14:46:59.98 ID:CRXHeHIYM.net] >>139 mysqlかpostgresqlだと思う
141 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 15:42:59.29 ID:hGXBrabD0.net] OPENと言うステートメントはある事はあるが、カーソル操作だな >>133 の記述は変だと思う
142 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 22:09:25.88 ID:xQnCuP5H0.net] 質問 Webのurl下のファイルって表面上見えなくてもある方法でダウンロードしようと思えばできますよね? ということはPHPのソースはまんま見られてしまうのでしょうか? 見られると簡単に解析されていいように弄られてしまう可能性も高いんでしょうか?
143 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 22:29:30.25 ID:ROsFLORr0.net] >>142 できません
144 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 22:53:58.13 ID:WOBTUDvw0.net] >>142 Webサーバの設定ミスで見えてしまうケースはあります また、外部入力の取り扱いが不適切なサイトで意図しないソースをダウンロードしたり表示したりすることが可能となるケースもあります 手法はいくつもありますがディレクトリトラバーサルを使用した攻撃は観測しやすいので調査してみると良いでしょう ソースを見られると解析は可能ですが、解析されても問題がないようにするためのナレッジも色々あるので調べてみると良いです
145 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 23:17:12.77 ID:RxtPrKwp0.net] Web APIのアクセストークンとかどこに置くのが良いんだろ
146 名前:デフォルトの名無しさん (ワッチョイ fbe7-Tk+f) mailto:sage [2022/11/04(金) 10:03:40.02 ID:fjW+y4zq0.net] >>145 index.php と同じところにおいてください
147 名前:デフォルトの名無しさん (ワッチョイ 8bbb-/OGx) mailto:sage [2022/11/04(金) 10:34:34.64 ID:7HgZbeW40.net] >>145 cookieとlocalstorageのどちらか?って議論なら、JWTの議論が参考になると思う phperなら徳丸さんの日記あたりを漁るとなんかあった気がする ただ、時期によって推奨が変わってきてるんで、直近の議論じゃなければ新しい議論を探したほうがいい
148 名前:デフォルトの名無しさん (ワッチョイ 1363-HLP5) mailto:sage [2022/11/04(金) 10:39:08.02 ID:QCeBmW6M0.net] 議論が変わると言うことは、まだ枯れてないんだろうな
149 名前:デフォルトの名無しさん (ワッチョイ 8bbb-/OGx) mailto:sage [2022/11/04(金) 10:53:31.17 ID:7HgZbeW40.net] 結論が時期によって変わるのは、ブラウザの進化と各種Webフレームワークのデフォルト状態がその時々で変化しているせいですね ただ、どの時期でも大きく変わらないのは「実態としてはどちらも大差ない」「XSSがあればどっちも危険」ってとこです なので、その時々の推奨と言っても僅差ですね
150 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 13:02:42.65 ID:1sxu7itbH.net] 適当にまとめちゃうと「どこでも危険なのは変わりないから大して変わらない」で落ち着くのかな
151 名前:デフォルトの名無しさん [2022/11/04(金) 18:23:18.46 ID:mo/2hjrh0.net] fopenのモードの語源 r はread wはwirte で。。 aは、append? add? どっちですか。
152 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 20:43:22.06 ID:mATgUcp20.net] appendかと(追記モードみたいな意味合いだし)
153 名前:デフォルトの名無しさん [2022/11/08(火) 07:48:23.75 ID:c6RTZORh0.net] jpegの画像を読み込んで、画面全体を50%の透明度にしてpngで保存するにはどうしたらいいですか? imagecopymergeで完全に透明な画像を50%で合成しても無理でした。
154 名前:デフォルトの名無しさん mailto:sage [2022/11/08(火) 11:12:12.94 ID:6dXM39fN0.net] www.php.net/manual/ja/book.imagick.php
155 名前:デフォルトの名無しさん [2022/11/08(火) 17:14:26.31 ID:c6ryzee70.net] 自己解決しました imagecoloratとimagesetpixelで1pxずつコピーすればよし
156 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 17:37:16.27 ID:jregjzg7M.net] PHPて複数の人が同時に同じPHPのアドレスにアクセスするとやっぱり そのPHPが同時に実行されるんですかね? 同時であっても問題が起こらないように記述しとかないといけないんですかね?ファイルアクセスとか 特に気にしなくても問題になるようなことはほとんどないんでしょうか?
157 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 18:12:02.46 ID:v9YRsbRp0.net] 問題が起きるかどうかはロジック次第 ネットショップで残りあと1つの商品を 複数の客が取り合ったときどうなるかな
158 名前:デフォルトの名無しさん [2022/11/09(水) 22:21:42.93 ID:B8ttDfTq0.net] 複数の<input>タグがあり、その<input>要素が何番目か、またその<input>の状態のデータ(flag)を送りたい。 <input>で送れる情報は、name属性が$_POST[]のKeyとなり、データ自体はvalue属性となるが。 これでは、送れる情報は一つだけになってしまう。 inputのtypeはボタンを予定していて、valueの値に対して背景色などの装飾を設定したい。flagの状態はデータベースで管理したいと思っています。 ボタンを押したとき、そのボタンは@何番目の<input>か?そのボタンはAどんなステータスなのか? を送る一般的な方法ありますか?
159 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 23:19:53.18 ID:N3jhnMoZ0.net] ん?別にnameを被らないようにすればいいだけでは?
160 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 23:25:54.31 ID:qkSO7igA0.net] nameって被って良いんだっけ?
161 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 23:26:13.49 ID:v9YRsbRp0.net] ボタンのステータスって押されてるかどうかなの? 複数ボタンがあって、それをマウスで選択し同時に押して、 さらにサブミットする訳かな?
162 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 00:03:46.62 ID:OiyyiqKZ0.net] もうJavaScriptでやればいいじゃない
163 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 02:59:06.05 ID:9rsfrZ3t0.net] ありがとうございます。 イメージとして deai.mokuren.ne.jp/up/src/up7314.png こんなものです。 JavaScript併用しかないでしょうか?
164 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 03:12:39.55 ID:D1e6h/yW0.net] phpはname="hoge[]"みたいに[]付けると配列、name="hoge[hage]"みたいにすると連想配列で値取れるよ
165 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 03:31:30.79 ID:9rsfrZ3t0.net] ありがとうございます。 いま。環境がないので確かめられないのですが。 POSTで受け取ったときは、こんなかんじで値が取得できますかね。。 明日チャレンジしてみます。 foreach($_POST['hoge'] as $flag){ echo $i; echo $flag; $i++; }
166 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 15:22:36.26 ID:yzcqKQgo0.net] https://www.php.net/manual/ja/control-structures.foreach.php $iなんていらないw key valueを取る方法でやればいいだけ
167 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 09:26:14.24 ID:6XR5KbEP0.net] >>156 共有メモリのこと?
168 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:51:55.77 ID:X6RVlC/X0.net] >>167 URIのことだと思うよ
169 名前:デフォルトの名無しさん [2022/12/01(木) 15:52:23.45 ID:vegZ2o8T0.net] https://kanda-it-school-kensyu.com/php-intro-contents/pi_ch04/pi_0404/ この処理ってどういうこと。 phpはサーバーで処理してhtmlタグに変換するものだし。 クライアント側は、そりゃブラウザで上からタグを読むので当然なんだが。
170 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:20:11.56 ID:d04ep7qN0.net] >>169 PHPの最小のHello,world出力プログラムは Hello,world です
171 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 20:16:53.86 ID:REXaKPyC0.net] 例えば、Ruby のERB では、上から順番に実行される <p>あ</p> を読み込んで、 Ruby の式、<p><%= RUBY_VERSION %></p> を実行してから、 <p>い</p> を読み込む require 'erb' html =<<HTML <p>あ</p> <p><%= RUBY_VERSION %></p> <p>い</p> HTML puts ERB.new( html, nil, "<>" ).result( binding ) 出力 <p>あ</p> <p>2.5.7</p> <p>い</p>
172 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 21:58:45.19 ID:oIO2xTp30.net] PHPモード書くとエラー吐くんだな、このサーバー
173 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 17:29:48.09 ID:PlsoFJv80.net] phpって数万行(一行10列程度)のCSV等を出力させるのってバッチ処理でもない限り無理だよね?
174 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 17:33:19.36 ID:PlsoFJv80.net] 一応phpのタイムアウト無制限にしたりメモリ上限上げたりとかしてみたけど3万行くらいで落ちる なんかいい方法あればだれか教えて〜
175 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 17:50:40.60 ID:Gp+8HXJF0.net] サーバにファイル作ってダウンロードさせる 他にはHTTPで圧縮かけるとか
176 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 18:36:24.61 ID:xWddkTKj0.net] >>173 しゅつりょくばっふぁりんぐしなければよゆう それかめもりをたくさんつかえるようにする
177 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 19:03:21.41 ID:gLaIiOiZ0.net] >>173-174 俺はPHP詳しくないけど、まず何で落ちてるか正確に確認してるか? タイムアウトは0、メモリは-1の指定で上限無しに出来ることになってるし、 落ちたらそう分かるメッセージが出るはずだが。 ちな、gc_collect_cycles()でGCも出来る。 https://www.php.net/manual/ja/features.gc.performance-considerations.php ただ、吐き出すだけでメモリを食い尽くすのは余程プログラムの構造がおかしい限りありえない。 とりあえずmemory_get_peak_usageの値でも取ってみ? https://www.php.net/manual/ja/function.memory-get-peak-usage.php 仮に5万行=50k行=1行100文字なら5MBだろ。メモリ上限はあり得ないと思うが。 これら以外で落ちてるのなら、その対策をしないと。 例えば、レンサバなら、長寿命のプロセスは自動的に切られる。 対策は、専用鯖にすること。
178 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 19:05:57.07 ID:R6aGvMSq0.net] CSV ファイルのサイズは、どれぐらい? テキストファイルなら、zip/gzip などで圧縮できるかも
179 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 21:35:42.65 ID:Ny0E8yV10.net] 数万行ぐらい余裕じゃないかなぁ 100万行ぐらいのダウンロードやインポートとか普通にやってたけど
180 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 22:49:13.60 ID:V7r+YhBf0.net] 数万行のデータがどの位のサイズになるか分からないが 1GB程度のファイルダウンロード処理などメモリ-使わず出来る
181 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 01:33:06.32 ID:PlWN8Jgn0.net] エクスポートファイルがSJISとかだった場合、5C問題ってどうしてんの?
182 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 01:33:54.05 ID:PlWN8Jgn0.net] エクスポートしたCSVがSJISでPHPでインポートする場合か
183 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 23:02:03.15 ID:APQ0RP7C0.net] 事前にUTF-8に変換してから読み込めばいけそう
184 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 11:45:23.79 ID:1fkWXeae0.net] 同一ファイルへの連続書き込みについて filewrite(); filewrite(); function filewrite() { // 'w'の新規モードで同一ファイルへの書き込み } こういった感じで連続で書き込んだのですが テキストファイルの出力結果が1回目が終わった末尾に次の書き込み それも先頭部分ではない途中からの書き込みが重なってなされてるようでした。 関数は同期処理だと思うので途中で次に行ってるとも思えないですし 間にsleep(1);で1秒間を入れてみたのですが結果は変わらず、よくわからなくなりました。 PHPの設定はアップロードに反映まで時間間隔を入れないに設定しています。 それでも一回目の書き込みがまとめて反映されるまでやや間隔があって 2回目の反映と重なってしまってるのだろうか?と考えてもみました。 これはどうやれば1回ずつの書き込みはそのつど締められて正常に連続書き込みできるようになるのでしょうか? PHPで同一ファイルに連続して書き込む際の注意点とかありますか?
185 名前:デフォルトの名無しさん (ワッチョイ 91da-7kHv) mailto:sage [2022/12/07(水) 12:46:25.55 ID:/vDZIDbT0.net] >>184 プログラムに問題が無いなら、プログラム以外に問題があんだろ 他のプロセスがいるとかな sleep(30)とか入れて、初回書き込みのあと5秒おきに テキストの内容および更新時刻を観察するといいよ
186 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 15:19:37.18 ID:w780kgYS0.net] fclose()する前にfsync()でもしておけば同期はされるのでは?
187 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 15:31:04.93 ID:1fkWXeae0.net] flock($fp,LOCK_SH); flock($fp,LOCK_UN); fflush($fp); これらは付けてみました、しかしプログラムの方の問題だったようです strcmp()===0の3つイコールの徹底化や改行コードの統一で正常に動くようになりました
188 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 10:49:14.78 ID:yEj7mUL70.net] PHPUnitってデバッグしながら実行できます?
189 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 11:16:07.17 ID:FA1I/9HE0.net] できますん
190 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 19:56:18.82 ID:O25d6TKs0.net] xammpの環境ではexecが動くけど素のphp+apacheで動かないのって やっぱhttpd.confかphp.iniの設定の違いかな? phpからexecで自作のプログラム(音源出力、キー有力受付)を呼びたいんだけど、 xammpの環境からは正常に動作するんだけど、apache2.4+php7.4の環境だと 音源出力は動くけどキー入力が受け付けない。 タスクマネージャー上には存在するから呼び出しはされてるけどキー入力を受け付けて 無いみたいなんだよね。 なんか設定で怪しい項目ある? safe_modeは一応offにしてある。
191 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 20:03:31.21 ID:9104bOlZ0.net] 何故キー入力が必要になるのか理解できないです