【PHP】下らねぇ質問はここに書き込みやがれ 12at TECH
【PHP】下らねぇ質問はここに書き込みやがれ 12 - 暇つぶし2ch200:デフォルトの名無しさん
21/06/03 22:52:44.29 BVnHspSa0.net
コメントには、自分の名前と電話番号も入れておこう

201:デフォルトの名無しさん
21/06/04 15:59:37.32 KWGLQaPU0.net
preg_match関数は、エラーの時にnullを返すことってあるのでしょうか?
本にそのように書いてありました…
PHPマニュアルによると、原則としてエラーの時はfalseを返すが、
時にfalse相当の別の値を返すこともありうると書いてありました

202:デフォルトの名無しさん
21/06/04 16:31:57.79 cYS3aqAu0.net
マッチしたら 1
しなかったら 0
エラーの場合 false
エラーかどうかを判定するために
if (!preg_match(...))
なんてことをするとエラーじゃないがマッチしない場合も正として評価されると言うことかと
nullの話は本が間違ってるか、または第三引数に入ってくる値のことかも

203:デフォルトの名無しさん
21/06/04 17:08:28.21 9DhQUJf30.net
$_POST['checked'] === 'true'
$_POST['checked'] === '1'
$_POST['checked'] == true
$_POST['checked'] == 1
$_POST['checked'] === 'on'

204:197
21/06/04 18:36:12.37 KWGLQaPU0.net
>>198
やはり誤植のようです
ありがとうございました

205:デフォルトの名無しさん
21/06/05 20:42:13.27 D2bNwRnn0.net
データベースに接続する時についてなんですが、
PDOオブジェクトをインスタンス化する際の第一引数(DSN)では、
文字コードを指定しなくても特に問題ないでしょうか?
本には、
$dbh = new PDO('mysql:host=localhost;dbname=sample_db', (以下略));
と書いてあります

206:デフォルトの名無しさん
21/06/05 21:06:16.71 WZ+0wJ8c0.net
>>201
サーバとクライアントの間で適切な文字コードを設定しないと意図しない挙動を引き起こすことがある
結果として、SQLインジェクションができる場合も
`SET NAMES utf8`とかやるのはダメな例

207:デフォルトの名無しさん
21/06/05 23:32:10.29 aCDMde3X0.net
初歩的な質問ですいません。
WordPressである変数の値をリンク先の別のファイルでも使いたいのですが、うまく取得できません。どういうキーワードでググったらいいのか教えて下さい。一番簡単な方法がいいです。よろしくお願いします。

208:201
21/06/06 00:10:06.42 OZUQa5NH0.net
>>202
回答ありがとうございます
… new PDO('mysql:host=localhost;dbname=sample_db;charset=utf8mb4', …);
とした方がいいですか?

209:デフォルトの名無しさん
21/06/07 07:09:31.45 dVU4kGZr0.net
URLリンク(www.php.net)

210:デフォルトの名無しさん
21/06/08 12:31:49.08 kOEZc78Z0.net
さくらインターネットサーバー契約してターミナルで繋いでVimでプログラミングしているんですが
vscodeとかでプログラミングするにはどういうふうな開発環境を整えたらいいんでしょうか

211:デフォルトの名無しさん
21/06/08 12:50:39.53 RYeCuNYXd.net
mysqli_fetch_assocの質問なのですが"もう存在しない"場合はnullを返す、との事ですが"始めから一行も存在しない"場合でもやはりnullを返すのでしょうか?
自分で試せればいいのですがdbの設計はまだ手をつけてない分野ですのでお聞きしたいです

212:デフォルトの名無しさん
21/06/08 13:35:59.66 xmLRsmnH0.net
手につけてから実際に自分で試したほうがいいよ

213:デフォルトの名無しさん
21/06/08 14:09:30.31 IVQVhItT0.net
>>206
拡張機能からSFTP入れてみてはどうか

214:デフォルトの名無しさん
21/06/08 14:11:40.84 dOMi6vvz0.net
>>206
YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、
Ruby on Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース
Docker Composeまでが初心者用コース
普通はMac で、メモリは32GB以上。
ただし、新しいCPU に変わったから、よくわからない
Windows 10 Pro版, WSL2, Linux, Dockerなら、
メモリは16GB以上で、32GBが推奨
Dockerを使うから、メモリ8GBじゃ足らない
Udemy の山浦清透も、サロンをやってるかも知れない。
PHP の本も出してる、たにぐちまことも有名

215:デフォルトの名無しさん
21/06/08 16:10:19.02 kOEZc78Z0.net
直接本番のphpプログラムをいじってるのが良くないんだな
デプロイとか本番用と開発用の環境作るとかが必要なんやな

216:デフォルトの名無しさん
21/06/08 16:49:06.81 az/B2squ0.net
>>206
URLリンク(code.visualstudio.com)
マケプレから自分にとって最適な拡張機能を入手出来るかはわからないが
vim使いならうまくカスタマイズ出来るじゃろう

217:210
21/06/08 16:50:43.18 dOMi6vvz0.net
Ruby on Rails で良ければ、Docker, CircleCI まで含めた動画ある
Udemy の山浦清透、1/15
Docker超入門講座 合併版 | ゼロから実践する4時間のフルコース
URLリンク(www.youtube.com)
Windows 10 Home版, WSL2, Ubuntu 20.04 LTS,
Docker Compose, VSCode, Heroku, Rails, Git, CI/CD, CircleCI

218:デフォルトの名無しさん
21/06/08 16:56:20.73 6XJLy+sH0.net
NG多すぎワロタ

219:デフォルトの名無しさん
21/06/09 01:40:41.45 6+3NO6mw0.net
xamppよりもdockerの方がナウいんでしょうか

220:デフォルトの名無しさん
21/06/09 09:00:49.39 m05KcYPg0.net
個人でwebアプリ作るなら、PHP+フレームワーク一択?

221:デフォルトの名無しさん
21/06/09 09:32:05.11 ELCmA1Vb0.net
全然一択じゃないと思うけど、なんで一択だと思ったんだ

222:デフォルトの名無しさん
21/06/09 09:38:24.10 m05KcYPg0.net
>>217
単純に小さいWEBアプリをレンタルサーバで公開するのにいいと思ったから
あと、スマホアプリのwebapiをphpで作ってもらった

223:デフォルトの名無しさん
21/06/09 10:54:30.09 CSG59Cdu0.net
>>210,213
業者さん宣伝ご苦労さまです

224:デフォルトの名無しさん
21/06/09 14:07:19.93 suiQmlXU0.net
Zend→CakePHP→Laravelに代わったように、
フレームワークの移り変わりが一定周期でありますが、
その時に作っていたプログラムはどうなりますか?
なかったことにして、新しいFWで作り直すんですか?
車輪の再発明をFWが出るたびに行っているように感じますが
皆さんはどうしてるか気になります。

225:デフォルトの名無しさん
21/06/09 15:37:02.08 cnjxdL8Kr.net
作りっぱなしでほっとくんだよ
改修が必要であれば金貰って改修する
ただし責任は取らない

226:210
21/06/09 15:53:02.92 w6w52mg40.net
>>216
以下のスレに書いた
ぶっちゃけ始めるのにいい言語て何 part5
スレリンク(tech板:120番)-121
Udemy の山浦清透も、PHP・Laravel のおすすめ本は無いと言ってる。
一方、Rails なら、Railsチュートリアル、黒田努の本とか、教育体制が優れている
だから、KENTA も、Railsを推奨してる
優れた教育体制が無いと、効率的に勉強できない。
ドラゴン桜・予備校などと同じ

227:デフォルトの名無しさん
21/06/09 17:17:08.00 mTab7dlX0.net
こいつの相手すると怒られるけど
PHPのおすすめ本はある

228:デフォルトの名無しさん
21/06/09 19:23:26.26 Dz8whFwwa.net
>>223
相手するなよ、と脊髄反射しそうになったけど
キチガイの間違いを正すのは大切だな

229:デフォルトの名無しさん
21/06/09 20:39:22.17 CBbl/boe0.net
>>2を読めないアホが多すぎる

230:デフォルトの名無しさん
21/06/09 20:45:44.78 7MnLem3f0.net
自前でサーバー立てるのとさくらインターネット使うのとAWSとherokuでどれがいんすか

231:デフォルトの名無しさん
21/06/09 22:24:36.07 Qysgy0Bo0.net
学習用なら自分で立ててみると良いかも

232:デフォルトの名無しさん
21/06/09 22:37:04.95 DL0JuXZOM.net
今は金かからないFaaSだな

233:デフォルトの名無しさん
21/06/10 07:13:04.52 q2jU2qVx0.net
PHPで掲示板サイト作ったんだけどアドセンス落ちた…一応ある程度の書き込みもあるのになんでだろ、ちなみに低俗な内容ではない、もっと人集めんと行かんのかね

234:デフォルトの名無しさん
21/06/10 11:39:40.93 oO6awXFS0.net
セキュリティーが危険とか?
PHP と言えば、セキュリティーが危ないイメージ

235:デフォルトの名無しさん
21/06/10 11:51:36.67 wZ1zl+ZN0.net
>>226
今どき自宅サーバなんかしなくていいよw
月額500円未満で借りられるVPSがあるから、それ使うのがお勧め
レンタルサーバを使うのだけはやめとけ
あんなもん使っても何の勉強にもならんから

236:デフォルトの名無しさん
21/06/10 11:52:35.88 wZ1zl+ZN0.net
>>230
頭悪そう
PHPのコード書けない人でしょ?

237:デフォルトの名無しさん
21/06/10 11:54:42.25 wZ1zl+ZN0.net
あーなんだ、こいつRubyガイジかw
相手にしてスマン

238:デフォルトの名無しさん
21/06/10 13:26:11.53 MBvszo0r0.net
PHPの勉強がしたい→ローカル
店の宣伝をしたい→レンタルサーバ~
店の予約管理をしたい・小規模な販売、売上管理をしたい→VPS~
Webサービスを提供したい・スマホアプリのバックエンド→クラウド

239:デフォルトの名無しさん
21/06/10 16:59:07.23 rgwU/HuH0.net
以下PHPの2処理があります。
1.CSVアップロードフォームからユーザー操作でアップロードされる
 場合によっては同一ファイルを更新する目的でアップロードされるときもある
 move_uploaded_fileを使用
2.何かしらのトリガーでCSVを読み込んで処理する(書き込みはしない)
この1.2.の処理は何かの決まりを守って順番に実行されるわけではなく、
1.の処理はユーザー操作で不定期に実行されます。
2.の処理は該当ファイルが無ければ実行しませんし、トリガー発行がなければやはり実行しません。
ここで質問ですが、1.2.の処理が同時に実行される可能性があると思いますが、この場合問題が発生するでしょうか?
move_uploaded_fileを使う1.の処理中はファイルがロックされているようですが、2.では読み取りエラーの
処理を強化するだけでいいでしょうか?
よろしくお願いします。

240:デフォルトの名無しさん
21/06/10 18:19:10.45 kFRSwea40.net
DBUnitがとうの昔に使えなくなっていたことにようやく気付いたのだけど、
これ使わないでDB周りのテストってどうやるん?

241:デフォルトの名無しさん
21/06/10 18:19:50.44 9KIBsohX0.net
>>220ですが、結局は新しいフレームワーク使う時は
車輪の再発明になろうが一から作り直すってことでいいですか?

242:デフォルトの名無しさん
21/06/10 19:13:16.05 MBvszo0r0.net
同じシステムをフレームワーク変えてまで作り直したりは普通しない
>>221も言ってるけど基本作ったら作りっぱなし
セキュリティに問題があって修正パッチ当てる必要があるとかでない限り
保守は必要最低限にとどめたものになる

243:デフォルトの名無しさん
21/06/10 21:30:19.86 9KIBsohX0.net
>>238
いえ、過去に作ったものの保守ではなく、これから作るものについてです。
例えば、お問い合せフォームとか会員管理とか
どの言語・フレームワーク使おうが必要な機能ってあります


244:よね? そういうライブラリであったりプラグインであったりを、 フレームワーク毎にまた作るのか?って質問です。



245:デフォルトの名無しさん
21/06/11 05:41:30.60 eoxxjzbN0.net
テンプレート(view)の変数名を変える作業を車輪の再発明とは言わない

246:デフォルトの名無しさん
21/06/11 10:24:02.71 llLxlLmn0.net
フレームワーク変えるわけですから
変数変える程度で済まないのではないかと

247:デフォルトの名無しさん
21/06/11 11:26:58.50 obuHWxLk0.net
気づけばプロ並みPHPはゴミ
徳丸先生協力って書いてあったから一緒に本作ったのかと思ったら大間違いw

248:デフォルトの名無しさん
21/06/11 11:46:50.82 0v+h5w7s0.net
俺もアマゾンレビューでの評価が高かったいきなりはじめるPHPを買ったが、
なんか合わなかった 本のノリが嫌い
載っている情報も古い
エディタはテラパッドを使っているし、echoでなくprintを使っている

249:デフォルトの名無しさん
21/06/11 12:02:16.66 +ogjkljv0.net
お昼時にゴメンナサイ、よろしくお願いいたします
PHPのバージョンを 5.6.40 から 7.3.27 に上げたら↓がエラーするようになりました
【PHP文】
ループ
  $hage[$id][0]=$row[name];
  $hage[$id][1]=$row[age];
  $id++;
ループ終わり
【エラーメッセージ】
arse error: syntax error, unexpected ',', expecting ']' in /home/xxxx

250:デフォルトの名無しさん
21/06/11 12:21:06.82 1TMBp1KK0.net
>>244
nameとageをクオーテーションで囲う

251:デフォルトの名無しさん
21/06/11 13:39:01.07 eoxxjzbN0.net
>>241
そんな大げさな話じゃないだろう
書き方が違うだけでやることは同じなんだから
やろうと思えば自分でマイグレーション用スクリプトだって書けるでしょ

252:デフォルトの名無しさん
21/06/11 13:48:23.23 +ogjkljv0.net
>>245
ありがとうございます!

253:デフォルトの名無しさん
21/06/11 14:56:36.56 Nrr2zqrZr.net
いえいえ

254:デフォルトの名無しさん
21/06/11 15:52:24.78 2+S4K7N30.net
>>235
同期用ファイルでも作って、
それを2つの処理で、mutex みたいに使って排他処理すれば?
mutexは1つだけあって、2つの処理の内、mutexを獲得できるのは、常に1つの処理だけ

255:デフォルトの名無しさん
21/06/11 18:38:14.01 llLxlLmn0.net
>>246
マイグレーションにしても、CakeとLaravelで大きく違うし、
CRUDの書き方も違うのに、変数変える程度で済むとは意外です。
というか、変換プログラムみたいなのを作るなら
車輪の再発明と言っても良いんじゃないですか?

256:デフォルトの名無しさん
21/06/11 20:47:03.14 jsMTDkupM.net
自分で作ってたものをFWに合わせて作りなおすってのはただの改良
PHPのバージョンアップに合わせて動かなくなったコードを書き直すのと全く同じこと
ていうか車輪の再発明が嫌そうなのに自分で作る前提がそもそもおかしいのでは
探せばあるでしょうに

257:デフォルトの名無しさん
21/06/11 21:23:49.98 llLxlLmn0.net
いえ、嫌かどうかじゃなくて、みなさんはどうしてるのか気になるのです。
PHPのバージョンが変わるから書き換えるのと、
フレームワークが変わるから作り直すのでは明らかに手間が違うわけで、
同じような作業をまたやるという行為が、プログラマとして正しいのか知りたいだけです。

258:デフォルトの名無しさん
21/06/11 21:30:08.39 kzDclVsl0.net
下らねぇ質問をここに書き込みやがって

259:デフォルトの名無しさん
21/06/11 22:20:07.19 jsMTDkupM.net
手間の問題じゃなくて
そうしないと動かないからそうするという話であって
それを車輪の再発明とは言わない
移行先で前のものがそのまま使えるような場合もあるだろうけど
そうでない場合は使えないのだから作り直すのは当たり前

260:デフォルトの名無しさん
21/06/11 22:39:30.70 llLxlLmn0.net
わかりました。つまり、作り直すのが一般的(普通)という受け取り方で良いわけですね。
自分もそうなので、他の人はどうしているか気になりましたが
別におかしなことではないと知って安心しました。

261:デフォルトの名無しさん
21/06/12 20:17:18.78 S66YQD530.net
wordpressのogpに関する出力ですが
$ogp_type = ( is_front_page() || is_home() ) ? 'website' : 'article';
フロントページやホームでなければ○○だと思うのですが
「?」が何をしているかわからないのと、
2つの文字列がコロンで繋がれているのがわかりません。
動かして見ると articleが出力されています。

262:デフォルトの名無しさん
21/06/12 21:08:16.54 S66YQD530.net
わかりました。
三項演算子というものですね、生まれて始めて見ました。

263:デフォルトの名無しさん
21/06/12 21:33:24.33 GDzf8H390.net
三項演算子は見慣れないと読みづらいけど別にPHP固有でもないし、
早めに慣れておくのが吉

264:デフォルトの名無しさん
21/06/13 02:08:44.02 bl7tXQVC0.net
if使った方が感覚的にわかりやすいのですが、
あえて三項演算子を使う理由は1行で済む以外にメリットはありますか?

265:デフォルトの名無しさん
21/06/13 03:13:44.77 oPgmrpm20.net
const HOST = 'localhost';
echo $HOST;
自学の為一纏めにしたいのですが上記のソースですとHOSTにnoticeが出てしまいます
調べたのですがconstを使う方法が乗ってるサイトにこれ以上の情報が無かったのでお聞きしたいです

266:デフォルトの名無しさん
21/06/13 03:26:48.32 NFGlH9a70.net
>>259
ちょっと慣れれば、シンプルなケースでは三項演算子も感覚的にif文より見やすくて分かりやすくなる。
ケースバイケース。

267:デフォルトの名無しさん
21/06/13 05:09:07.64 bl7tXQVC0.net
>>261
ありがとうございます。
やはり慣れですね

268:デフォルトの名無しさん
21/06/13 05:11:59.73 er0CkKAQ0.net
>>259
その「一行で済む」ってのが最大のメリットだろうね
for(;@$i++<100;)echo$i%3?!$$i=$i:@Fizz,$i%5?@$$i:@Buzz,'
';
みたいに書ける
これは8系じゃ動かないけどw
>>260
変なサイト見てないでマニュアル嫁
URLリンク(www.php.net)
ただ、やりたいことと違うんじゃないかなぁ

269:デフォルトの名無しさん
21/06/13 05:14:07.02 er0CkKAQ0.net
げ、なんか余計な改行が入ってるw

270:デフォルトの名無しさん
21/06/13 06:09:18.51 d/vYrCOI0.net
5ch のバグ。
URL などを投稿すると、; が付いたりする
5chの書き込みには、表示を変えるような特殊な命令があったりして、
それを解析する箇所に、バグがあるのだろう

271:デフォルトの名無しさん
21/06/13 12:08:56.26 h3r9Ktq+0.net
三項演算子は条件次第で$varが変化するような場合には使っていいけど
それ以外のことやelseifが入る場合は使わないほうがいい
改行駆使して読みやすくする手法もあるがそんなことするなら普通にかけばいいし
読みづらいコードは保守の妨げになったりバグうむ原因になる

272:デフォルトの名無しさん
21/06/13 14:06:10.67 V1lM1Rfw0.net
教えてください。
<?php
print("接続開始");
pg_connect("user=pet930 password=h17174422");
# if($dbconn == false){
# print("<p>接続失敗</p>");
#
# }
print("<html><p>接続成功</p></html>");

?>
なんか、pg_connect()で止まっちゃってるみたいで、「接続成功」の表示まで行けません。
pg_connect()でエラーメッセージ吐いてくれないんで原因が解らないです。
何処が悪いとエスパーできますか?
よろしくお願いします。

273:デフォルトの名無しさん
21/06/13 14:10:31.45 ikXPzBM50.net
>>267
$dbconn = pg_connect("user=pet930 password=h17174422");

274:267
21/06/13 14:26:02.54 V1lM1Rfw0.net
>>268
ありがとです。
ちょっと試します。

275:デフォルトの名無しさん
21/06/13 14:26:08.18 h3r9Ktq+0.net
pgsql使ったことないからわからないけど
host port dbnameまでパラメーターちゃんと入れてみたら?
あとPHPの設定やバージョンがどうなのかわからんけど
error_reporting(E_ALL);を先頭に追加してエラーメッセージ出るようになるかどうか確認する
本当にpg_connectが原因なのか判断するには
pg_connect(略) or die("接続失敗");に変えるのがてっとり早いと思うけど

276:267
21/06/13 14:34:36.14 V1lM1Rfw0.net
>>270
PHPのバージョンは807です。
ありがとです。
ちょっと試してみます。

277:267
21/06/13 14:51:02.33 V1lM1Rfw0.net
>>270
設定を調べてみます。
でも、かなり勉強になりました、エラー設定とかDieとか知りませんでした。
5chにコード書き込めないみたいですが、pg_connect()以降は表示されなかったです。
設定関係調べてきます。

278:267
21/06/13 16:36:28.97 V1lM1Rfw0.net
phpinfo()でpostgresqlのセクションがありませんでした。
正常ならセクションが有るらしいので、調べてみます。
情報が豊富なphp7系にするべきかなぁ;

279:デフォルトの名無しさん
21/06/13 17:12:59.44 h3r9Ktq+0.net
URLリンク(www.php.net)
ソースからなら上記みたいにインストールが必要かもしれないし
なんかのパッケージ使ってるならphp.iniに
;extension=pgsql
っていうラインがあれば先頭の;取り払ってみるだけで使えるかもしれない
将来pdoも使うだろうからついでに
;extension=pdo_pgsql
も有効にしといたほうがいいかもね

280:267
21/06/13 17:31:29.77 V1lM1Rfw0.net
>>274
ありがとうございます!!
リンク先読みました。
Apacheのhpd.confに、LoadFile "C:\Program Files\PostgreSQL\13\bin\libpq.dll"を書き足してphpinfo()に、postgresql反映されました。
助かりましたorz

281:267
21/06/13 17:33:44.93 V1lM1Rfw0.net
>>274
pg_connect()も、無事動いて、想定どうりスクリプトが動きました。
お世話になりました~

282:デフォルトの名無しさん
21/06/13 21:34:10.90 JupjNNoP0.net
どうでもいいけどPDO使えよ

283:267
21/06/14 02:37:29.72 926agaQr0.net
>>277
手探りでPDO認識できました。
今はPDOで書くべきですよね。ありがとです。

284:267
21/06/16 15:53:30.79 +Q5Hm82n0.net
何度も失礼します!
iframe先にPOTしたいのですが、飛ばせてないみたいです。
検索したら、これで動くのが一般的みたいですが…
<iframe src="URLリンク(localhost) id="frame_1"></iframe>
<form method="post" target="frame_1" action="URLリンク(localhost) id="edit_form">
<input type="hidden" name="id" value="3">
<input type="button" value="追記">
</form>
frame.phpには、
sleep("2");
print("page2_post".$_POST["id"]);
と、書いて待っているのですが、ボタンを押してもifram側に何もしていない様子です。
検索先を何度も調べたのですが…
よろしくお願いしますorz

285:デフォルトの名無しさん
21/06/16 16:26:27.31 ipoppQf40.net
>>279
id="frame_1" > name="frame_1"
余談だがsleepの引数はintだから " いらない

286:267
21/06/16 16:33:45.31 +Q5Hm82n0.net
>>280
ありがとうございます!
しかし、修正しましたが、動きませんでした…

アパッチの設定見てきます。
>引数はintだから”要らない
ありがとです。

287:267
21/06/16 17:15:07.61 +Q5Hm82n0.net
すいませんでした。
<input type="button" …> のbuttonをsubmitに変更したら動きました!
ありがとうございました!

288:デフォルトの名無しさん
21/06/16 17:55:12.30 u+PEF3EC0.net
データベースを扱う際の例外処理で、本に、

} catch (PDOException $e) {
echo "エラー:" . htmlspecialchars($e->getMessage(), …) . "<br>";
exit;
} // 一部改変
とあったのですが、$e->getMessage()を無害化する必要性がよく分かりません
ここはPHP製作者の側で用意した文字列が表示されるのではないでしょうか?

289:デフォルトの名無しさん
21/06/16 18:39:41.81 o6SqvTfC0.net
>>283
そうだよ、無害化する意味ない。
さらに言うと、エンドユーザーにシステムがそのまま出力するメッセージを見せるとかありえないから、あくまで開発者向けのデバッグ用という意図で書かれているんだろうけど、それを無害化する意味も分からない。

290:デフォルトの名無しさん
21/06/16 18:54:22.90 KT0G0U9/0.net
>>283
メッセージの内容によっては外部入力が表示される可能性があるので、htmlspecialchars でエスケープすることは必要
ただし、そもそも出力するの?ってところは、ちゃんと考える必要がある

291:283
21/06/16 19:03:06.47 u+PEF3EC0.net
>>284
>>285
回答ありがとうございます
>>284
>あくまで開発者向けのデバッグ用という意図で書かれているんだろうけど
はい、そのように書かれています 本番ではこの部分は削除しろと
>>285
上に書いたように、本番環境では削除すると思います
外部入力が表示されるのって、例えばどういう場合でしょうか?

292:デフォルトの名無しさん
21/06/16 19:09:18.05 KT0G0U9/0.net
>>286
ごめん。出力って言ってるのはブラウザ出力ね
logに出すのが適当だと思うので、その場合はエスケープの必要はもちろん無い

293:デフォルトの名無しさん
21/06/16 19:10:45.60 KT0G0U9/0.net
>>286
ユーザ入力を含むSQLが部分的に表示されることはよくある

294:283
21/06/16 19:37:48.13 u+PEF3EC0.net
>>287
>>288
分かりました
少しでも外部入力が反映される可能性があったら必ずエスケープなんですね~
ありがとうございました

295:デフォルトの名無しさん
21/06/16 20:05:44.54 euAZBJmN0.net
少しずつしゃべりたいことが違う優しい人が集まることで、
最終的に>>283が狂った理解をしてしまった例。

296:283
21/06/16 22:32:15.88 u+PEF3EC0.net
>>290
あっ、狂った理解なんかしてないんで
本当そういうレス大丈夫なんで

297:デフォルトの名無しさん
21/06/16 22:59:39.75 tS8D2T4IH.net
たぶん間違って理解してるよ。いろいろと。
発達障害って言われてるでしょ。

298:デフォルトの名無しさん
21/06/16 23:23:35.20 IAoK90gxM.net
わざわざVPN刺してまで煽るのはダサいだろ

299:デフォルトの名無しさん
21/06/17 00:02:50.73 seNEbGFQ0.net
>>283=Brというマ板に巣食っていた荒らしが正体隠して名無しで書きこんでいる

300:デフォルトの名無しさん
21/06/17 10:58:21.11 mta/I3G30.net
よろしくお願いします
PHP+Mysqlのサイトで会員ページへのログイン管理をセッションIDでやっていたのですが、ログイン後のURLの「ID=1234」を書き換えれば別の会員ページが見えてしまいます
そこでログイン後にセッション開放をしたのですが、今度は会員ページを見るたびにID&パスワードを入力する必要があり窮屈です
今後の改善策として↓どれがオススメですか?

【パターン1】
・パラメーターを非表示にする(できな?)
【パターン2】
・cookieにセッションIDを保存
【パターン3】
・その他

301:デフォルトの名無しさん
21/06/17 11:11:01.66 ywtXDFpr0.net
>>295
【パターン3】
ちゃんとsessionの仕組みを学習する
多分、根本から認識が間違っている

302:デフォルトの名無しさん
21/06/17 12:12:31.57 8B6FG2Oh0.net
パラメーターを非表示にするっていうかセッション使ってるのにURLに入れたりしない
cookieにセッションIDを保存ってPHPのセッションを設定いじらず普通に使ってれば最初からそういう風になってる
んまー>>296の通りね

303:295
21/06/17 12:26:05.33 mta/I3G30.net
>>296
>>297
セッションを使ってるのにURLのパラメーターなんていらないですね、失礼しました

304:デフォルトの名無しさん
21/06/17 12:52:01.77 r4gx4cxd0.net
>>298
いやそうではなく、296も書いてる通り根本的にセッションに対する認識が間違ってる
セッション自体は、クッキーでもURLパラメータでもどっちでも扱える
URLのパラメータを書き換えられるのと同様に、クッキーの中身もユーザーが任意で書き換えられるのだから、
> ログイン後のURLの「ID=1234」を書き換えれば別の会員ページが見えてしまいます
のであれば、根本的に作り方がおかしい
理解してないととんでもない事になるぞw

305:295
21/06/17 13:00:10.33 mta/I3G30.net
>>299
セッションID漏洩 で検索すると沢山ヒットしますね
気を付けます

306:デフォルトの名無しさん
21/06/17 17:28:03.44 PjL3bf8Xd.net
PHPをダウンロードしたいんですがfor windowsのページが接続できません。
Windowsサポートが終了するからなくなったんでしょうか?

307:デフォルトの名無しさん
21/06/17 17:38:01.05 8B6FG2Oh0.net
URLリンク(windows.php.net)

308:267
21/06/20 10:33:06.70 /i2MBFyI0.net
度々失礼します。
クラスにどんな名前をつけても、クラス名が重複している種のエラーが出てしまいます。
>Cannot declare class file_test\unkotinntin, because the name is already
namespaceを設定してみても変わらないのですが、どうしたら良いのか。
よろしくお願いします。

309:デフォルトの名無しさん
21/06/20 10:53:32.03 jJNaRRH60.net
例のクラス名がキモいから教えない

310:267
21/06/20 11:28:47.28 /i2MBFyI0.net
>>304
絶対重複しないとキレたのが仇に…
変えます!

311:303
21/06/20 11:32:00.12 /i2MBFyI0.net
>Fatal error: Cannot declare class file_test\Onsensyoujo, because the name is already
ダメ元で変えてみましたが、やっぱりダメでした…

312:303
21/06/20 13:06:22.04 /i2MBFyI0.net
すいませんでした。
解決しそうです
ファイル読み込みを
index.php ← vm_test.php

file_test.php ↑
って具合にしてしまいました。
vmからfileの読み込みを止めれば大丈夫みたいです。orz

313:デフォルトの名無しさん
21/06/20 21:16:43.53 o0JpQNTP0.net
ファイル名から漂う50~60代親父臭w

314:デフォルトの名無しさん
21/06/21 10:19:19.23 XA/RA/DU0.net
そのようなことをしてもRubyがPHPにとって変わることなど有り得ませんよ

315:303
21/06/21 17:15:02.17 OP2qNzHy0.net
>>308
こんなところで歳バレするとはw

316:デフォルトの名無しさん
21/06/21 18:23:29.70 FywLx0usM.net
自分の親よりも上の人間がロリアダルトゲー好きなんて気持ち悪い

317:デフォルトの名無しさん
21/06/21 19:11:01.41 jHz8GYW10.net
川端康成は毛も生えていない少女を夜通し抱くというテーマで堂々と小説書いてるぞ

318:デフォルトの名無しさん
21/06/21 19:27:28.24 l4HWWBDBM.net
教科書に載るような有能な人は良いと思うの(ダブルスタンダード)

319:デフォルトの名無しさん
21/06/21 22:24:48.02 hHdGCfUDr.net
1記事につき1つずつ最新のコメントを5つ表示させたいのですが、同じ記事の最新コメントがダブって表示されます。
1記事につき1つずつの条件をついかする場合どうすればよいのでしょうか?
調べたのですが、わかりませんでした。
URLリンク(codepen.io)
該当のphpはこちらです。

320:デフォルトの名無しさん
21/06/21 22:33:54.76 hHdGCfUDr.net
記事にIDをつけてその特定の記事から最新コメントを5件取得する方法はあったのですが、
全部の記事から最新5件 各記事から1つ限定で取得する方法がわからなかったのですが。

321:デフォルトの名無しさん
21/06/24 02:55:14.60 x4SNvOJV0.net
とあるページを作っていて指定されたIDの情報をDBから引っ張ってきたいのですが動きません1つ1つ検証していって恐らくここに原因がある事は突き止めたんですが何が間違ってるのかが分かりません、、、ご教授お願いしたいです
"SELECT id,name,age,ext
FROM sample
WHERE id = " . $id . "");

322:デフォルトの名無しさん
21/06/24 05:30:14.28 C8/wW34i0.net
最後の)はなんだ

323:デフォルトの名無しさん
21/06/24 05:32:11.16 C8/wW34i0.net
よく見たら色々PHPの構文おかしいじゃん
"SELECT id,name,age,ext
FROM sample
WHERE id = {$id}";
とかな

324:デフォルトの名無しさん
21/06/24 05:51:33.19 vba9W5AC0.net
>>316
文字列の結合でSQL書いてる時点で俺的にはNG

325:デフォルトの名無しさん
21/06/24 07:54:52.48 gi8rGvX70.net
PDOでプリペアドステートメントを使うべき

326:デフォルトの名無しさん
21/06/24 10:13:01.81 x4SNvOJV0.net
>>317
すいません、mysqli_queryの()の後ろの方が入り込んでしまいました
>>319
無知で申し訳ないのですがどのような方法を取るのがベストなのでしょうか?

327:デフォルトの名無しさん
21/06/24 10:19:49.86 yb980iZA0.net
>>316
319も指摘しているけど、こんな事をやってるからSQLインジェクションが起こる
「PDO プリペアドステートメント」でググろう
ついでに「SQLインジェクション」についても勉強しとこう

328:デフォルトの名無しさん
21/06/24 13:13:48.62 9gt/PvAhr.net
>>321
その関数は大昔に非推奨なんすけど

329:デフォルトの名無しさん
21/06/24 13:51:49.13 vba9W5AC0.net
>>321
PDOに限定する必要はないけど、PDOならこんな感じ
URLリンク(www.php.net)
>>323
そんなことはない。多分、mysql_queryと勘違いしている

330:デフォルトの名無しさん
21/06/24 14:30:59.72 C8/wW34i0.net
本なんかを見ながらやってるなら
そのうちプリペアドステートメントは出てくるし余計なお世話かなと思って書かなかったけど
$idが適切な処理をされてるなら
無理してプリペアドステートメントを使う必要はない

331:デフォルトの名無しさん
21/06/24 15:35:30.79 x4SNvOJV0.net
皆さんありがとうございます
購入した教材の通りに進めていて練習問題の所で詰まっていたのですがもう少し色々な方面から勉強します…

332:デフォルトの名無しさん
21/06/24 18:17:53.25 C8/wW34i0.net
ま、一番の問題は
エラー出てるならそれを書いてくれないと答えようがないってことだね

333:デフォルトの名無しさん
21/06/24 18:41:28.99 C9HpnekB0.net
SQLインジェクションはほぼ阻止できる、
文字列をいちいち引用符で囲む必要ないから文法エラーも激減、
SQL構文の解析が減るのでオーバーヘッドも減少と、
プリペアドステートメントを使わない言い訳をするほうが難しい

334:デフォルトの名無しさん
21/06/24 19:46:17.63 yb980iZA0.net
>>328
だなー

335:デフォルトの名無しさん
21/06/25 13:44:54.61 7ZVx0ICKM.net
<dt class="imgcomment"><a class="commentheight" href="<はてな= $url はてな>"><はてな= $imgはてな></a></dt>
画像の高さをCSSで指定できないのでphpに直接数値を入れたいのですが、どうすればよいのでしょうか?

336:デフォルトの名無しさん
21/06/25 13:51:46.29 vlMp8RRH0.net
「html img 高さ」で検索!

337:デフォルトの名無しさん
21/06/25 14:16:21.80 bksxaaII0.net
.commentheight > img

338:デフォルトの名無しさん
21/06/25 14:34:44.43 7ZVx0ICKM.net
だめですわ効きません
wordpressの仕様でimg.attachment-post-thumbnail.size-post-thumbnail.wp-post-imageと勝手にクラスが付与されてます。
おそらくphp事態にクラスを付与してないため一色単にされてます。

339:デフォルトの名無しさん
21/06/25 17:17:32.55 Zp0CPETQr.net
$img = get_the_post_thumbnail($pid , array('class' => 'myClass'));
構文的におかしいかもしれませんがクラス指定できました。
URLリンク(memocarilog.info)
wordpressより独自クラスをつけ�


340:髟菇@より。



341:デフォルトの名無しさん
21/06/25 17:32:31.90 bksxaaII0.net
WordPressはWordpressスレでどうぞ

342:デフォルトの名無しさん
21/06/25 18:00:32.91 vlMp8RRH0.net
Word Press のスレは、web制作管理板にある
そこで聞いて

343:デフォルトの名無しさん
21/06/25 19:53:28.76 4lJT+uTla.net
>>336
そこで聞いてもPHPは教えてくれませんもん

344:336
21/06/25 21:20:33.11 vlMp8RRH0.net
この板には、Word Press を知ってる人は、いないかも

345:デフォルトの名無しさん
21/06/25 21:55:46.72 CTgcEISH0.net
curlでとってきたサイトの情報というのは何が含まれているんでしょうか?
rssリーダーを作成しているので、xmlが含まれるのは分かります。
それ以外にもいろんなデータが含まれているんですよね。
このオブジェクト?をなんと呼ぶのでしょうか?
<rdf:RDF
xmlns:rdf="URLリンク(www.w3.org)
xmlns="URLリンク(purl.org)
xmlns:content="URLリンク(purl.org)
xmlns:taxo="URLリンク(purl.org)
xmlns:dc="URLリンク(purl.org)
xmlns:syn="URLリンク(purl.org)
xmlns:admin="URLリンク(webns.net)
xmlns:atom="URLリンク(www.w3.org)
>
<channel rdf:about="URLリンク(blog.livedoor.jp)
<title>痛いニュ'... (length=47435)

346:デフォルトの名無しさん
21/06/25 22:20:07.37 d0XkQs1z0.net
string
って言ったら怒る?

347:デフォルトの名無しさん
21/06/25 22:48:34.89 BFPZ/KMm0.net
URLリンク(e-words.jp)
とか読めよw
この手の質問って昔からずっといるけど同一人物か?

348:デフォルトの名無しさん
21/06/26 05:49:15.18 I/0FJwDj0.net
スキーマじゃね
PHP全然関係ないけど

349:デフォルトの名無しさん
21/06/26 12:37:16.56 gNSotHtr0.net
>>341
rssフィードはurlオブジェクト?の一部ってことじゃないんですか?

350:デフォルトの名無しさん
21/06/26 13:10:59.38 6sjjJ5as0.net
Ruby なら、RSS 用のモジュールがある
URLリンク(docs.ruby-lang.org)
1. RSS 1.0をパースした場合は RSS::RDF オブジェクト
2. RSS 0.9x/2.0をパースした場合は RSS::Rss オブジェクト
3. Atom をパースした場合は RSS::Atom::Feed オブジェクト
3つの形式を抽象化して、同時に扱えるモジュールも、たぶん誰かが作っている
基本、こういうものを自分で作ってはいけない。
車輪の再発明は、低品質で、製作・保守コストが高いから、ダメ

351:デフォルトの名無しさん
21/06/26 13:18:13.21 eYiCTaZOM.net
PHPならdg/rss-phpパッケージだな
URLリンク(www.laddy.info)

352:デフォルトの名無しさん
21/06/26 19:41:08.02 76AEkw4Rr.net
phpって数年使ってなかったが8でだいぶ書き方変わったんだな

353:デフォルトの名無しさん
21/06/26 19:50:56.58 9XPJSE1uM.net
>>344
「車輪の再開発」は聞いたことある

354:デフォルトの名無しさん
21/06/27 08:11:30.48 X9FVTu1L0.net
3つのページから構成されているサイトを作成しているのですが、
スーパーグローバル変数$_POST['hoge']の内容をうまく送信できません
1つ目のページの入力フォームで受け取ったデータは、
2つ目のページで受け取り利用できるのですが、そのデータを3つ目のページに
うまく送信できません
<inpu type="hidden" name="hoge" value="$_POST['hoge']">
としましたがダメでした
どう対処したらよいでしょうか?

355:デフォルトの名無しさん
21/06/27 08:26:06.44 FX7uqy6OM.net
>>348
LaravelとかCodeIgnitor使ってるの?

356:デフォルトの名無しさん
21/06/27 10:26:55.16 ItQV7X9X0.net
feedを取ってくる場合、simplexmlとcurlのどちらがいいのでしょうか?
複数サイトになります。

357:デフォルトの名無しさん
21/06/27 11:50:32.87 r75U+hPN0.net
>>350
スレリンク(tech板:956番)

358:デフォルトの名無しさん
21/06/27 12:25:12.65 pjTb3Z/m0.net
>>348
html中に変数を埋め込む時は{}を使いましょうという基本的なことをやらないと
つうか最近エラー内容かかないの流行ってんか

359:デフォルトの名無しさん
21/06/27 12:46:28.79 ItQV7X9X0.net
>>351
curlは使わないのでしょうか?
複数サイトの場合はcurlのほうがいいと聞いたのです。

360:デフォルトの名無しさん
21/06/27 13:19:37.68 r75U+hPN0.net
>>353
curl使った所でどうせsimplexml_load_stringに食わせるんでしょ?
だったら最初からsimplexml_load_fileでいいじゃない

361:デフォルトの名無しさん
21/06/27 13:32:19.99 eeXftvTT0.net
複数サイトの場合はcurlがいいってのはcurlを子プロセスとして複数同時に動かせるからってことじゃないの?
いずれにしても、curlがやってくれるのはhtmlを取ってきてくれるまで、よ?

362:デフォルトの名無しさん
21/06/27 13:59:51.79 tkVDl+qA0.net
例えば、Ruby でも、普通に書くと、
open-uri モジュールのopen でファイルを取得する
require 'open-uri'
require 'nokogiri'
url = "URLリンク(example.com)
doc = Nokogiri::HTML( open( url ) )
elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain
これを、外部コマンドのcurl に書き換える事もできるが、
外部コマンド(プロセス)を呼ぶ必要がない
html = `curl URLリンク(example.com)
doc = Nokogiri::HTML( html )
外部コマンドは、OS に左右される
特に、Windows では、curl.exe なのか、
PowerShell のcurl(curlモドキ)なのか、
アプリごとに微妙に挙動が異なるかも
(そもそもシステムに、Windowsを使うこと自体が間違いだけど。
すべての言語は、Linux用だから)

363:デフォルトの名無しさん
21/06/27 14:45:24.55 ItQV7X9X0.net
>>354
simplexmlだと複数対応出来ないと思ってました。
なしでやってみるです
>>355
並列処理云々と聞きました。
詳しくは分かりませんが、、、。

364:348
21/06/27 14:55:13.19 X9FVTu1L0.net
>>349
>>352
回答ありがとうございます
>>349
使ってないです
>>352
失礼しました 3ページ目で、$_POST['hoge']、という文字列が表示されてしまいます
{}をつけて、<(略) value="{$_POST['hoge']}"としてみましたがダメでした(上と同様に文字列が表示されてしまいます)

365:デフォルトの名無しさん
21/06/27 15:50:44.18 r75U+hPN0.net
>>358
value="<?php echo $_POST['hoge']; ?>"

366:348
21/06/27 16:08:52.70 X9FVTu1L0.net
>>359
$_POST[]はphpのタグで囲わないといけないんですね
ありがとうございました

367:デフォルトの名無しさん
21/06/27 17:11:37.21 Cz2fHMTfd.net
ローカルホストで練習中にphpmyadminでSQLにWHERE文をつけ忘れupdateして全データが更新されてしまいました。
本番でやったら恐ろしい事だと思うんですが、ロールバックのやり方等あったら教えてもらえませんか。
一応ターミナルでログインしてROLLBACK;はしましたが戻らなかったです。

368:デフォルトの名無しさん
21/06/27 17:45:47.61 tkVDl+qA0.net
バックアップを取っておけば?
snap shot とか

369:デフォルトの名無しさん
21/06/27 18:37:11.40 Hik46M4e0.net
>>361
オートコミットきっとけば

370:デフォルトの名無しさん
21/06/27 18:39:50.32 pjTb3Z/m0.net
>>360
いやいや…
>>352はhtmlをechoしてるのかと思ってそう答えたんだけど
$_POST関係なくPHPの変数をHTMLテンプレートに書く時はそうなるよ
ショートタグも調べてみるといい

371:デフォルトの名無しさん
21/06/27 18:46:38.38 pjTb3Z/m0.net
>>361
ロールバックはトランザクション開始してないとできないから
begin(トランザクション開始)してから書いて
updateしたらselectで確認したのちに問題があればrollback
問題がなければcommitする
つうかphp関係ないで…

372:360
21/06/27 19:07:30.25 X9FVTu1L0.net
>>364
分かりました
何となくそんな気はしてました
ありがとうございました

373:デフォルトの名無しさん
21/06/27 19:55:35.97 Cz2fHMTfd.net
>>362,363,365
色々アドバイスありがとうございます。
全部試してみますね。トランザクションやオートコミット、snap shot等知らなかったので勉強になりました。

374:デフォルトの名無しさん
21/06/28 08:58:02.88 GRcsjrE80.net
>>357
たしかに curl_multi_init() で初期化してからの一連の流れで複数の通信を非同期実行できるから、
それを「使いこなせば」、直列的に複数のサイトからデータ取得するよりは圧倒的に速くはなる
使いこなせば…ね

375:デフォルトの名無しさん
21/06/28 12:05:36.38 SRAdQ7Kv0.net
>>368
どうも
とりあえずsimplexmlでやるdeath

376:デフォルトの名無しさん
21/06/28 12:30:55.32 SRAdQ7Kv0.net
simplexmlloadfileで取得したxmlなんですが、見やすいように整形出来ないでしょうか?非常に見づらいです。
var_dumpを使用しています。
$url_arr = ["URLリンク(blog.livedoor.jp)

foreach($url_arr as $url){
$xml_elm = simplexml_load_file($url);
var_dump($xml_elm);
}

377:デフォルトの名無しさん
21/06/28 12:42:58.79 GRcsjrE80.net
>>370
var_dump($xml_elm);
までやってるのに自分で解決できないなら、それはもう「PHPの書き方自体がわかってない」って事じゃんw
とりあえず
$xml_elm を foreach() で回せ
foreachの対象は配列だけじゃない

378:デフォルトの名無しさん
21/06/28 12:53:32.28 SRAdQ7Kv0.net
>>371
$xml_elmをforで回すということは、自分でhtmlなりで整形しないとだめってことですかね
サクッと構造わかりやすく表示してくれればよかったんですが

379:デフォルトの名無しさん
21/06/28 12:55:48.26 flv9QEa50.net
ワロタw

380:デフォルトの名無しさん
21/06/28 13:32:04.00 GRcsjrE80.net
>>372
print_r($xml_elm);
そういえば前にも似た感じの質問してた人いたが同一人物?
もし同一人物なら諦めた方がいいぞ
スキップできない人が100M走のオリンピック選手目指してるレベル

381:デフォルトの名無しさん
21/06/28 13:42:08.81 quG4wdoj0.net
Ruby では、
p obj で、オブジェクトの中身を表示できる。
pp obj で、きれいに表示できる
PHP には、pretty print みたいな機能が無いの?

382:デフォルトの名無しさん
21/06/28 13:44:54.19 GRcsjrE80.net
お前ら>>2をよく読むように

383:デフォルトの名無しさん
21/06/28 16:18:41.46 SRAdQ7Kv0.net
>>374
print_rで見やすくはならないのですが
xmlの階層構造を知りたいのです

384:デフォルトの名無しさん
21/06/28 17:06:46.28 GRcsjrE80.net
>>377
URLリンク(paiza.io)
これ見ても分からないの?
1行で書けるけどw

385:デフォルトの名無しさん
21/06/29 12:43:13.08 QFJ3/yA+r.net
条件分岐して
$user_id = $comment->comment_author; (投稿に名前を入力された場合)
$user_id = empty($comment->user_id) ? "default" : $comment->user_id;  (投稿に名前を入力せずにコメントが投稿された場合)
に分岐させる場合、
if foreach でどう構文を書けばよいのでしょうか?

386:デフォルトの名無しさん
21/06/29 14:13:26.09 jcOSDUmu0.net
>>379
// 最初にこうやってデフォルト値で初期化して
$user_id = 'default';
// こうすればいいだけでは?
if (!empty($comment->comment_author)) {
$user_id = $comment->comment_author;
} elseif (!empty($comment->user_id)) {
$user_id = $comment->user_id;
}
三項演算子は便利だけど、こういう質問をしている段階で無理して使わなくていい
この質問でなぜ foreach がいきなり出てくるのかは理解不能w

387:デフォルトの名無しさん
21/06/29 15:56:17.02 3ACgfFjZ0.net
名無しで投稿したいのに
ログイン済みだからってわざわざ身バレさせてあげるってことか?
鬼畜やな

388:デフォルトの名無しさん
21/06/29 16:14:27.35 QFJ3/yA+r.net
>>380
勉強になりました。ありがとうございます。
実装できました!

389:デフォルトの名無しさん
21/06/30 00:45:39.78 9XHMQjkRr.net
すみません調べてもわからなかったことがあるんですが、
$date = get_comment_date( 'Y/n/d', $comment->comment_ID);
<span class="my_author"><= $date ></span>
で日付けを取得してるんですが (Y/n/d)と出力したい場合どうすればいいんでしょうか?
日付けを()でくくる方法をネットで調べたんですがどうしてもわかりません...

390:デフォルトの名無しさん
21/06/30 01:04:12.91 iVkkZXbL0.net
そういうフォーマットが無いなら、
$date の前後に、文字列を連結して、( ) を付ければ?
それか、それを関数化して使うとか

391:デフォルトの名無しさん
21/06/30 01:08:32.08 +uONOblq0.net
$date = get_comment_date('(Y/n/d)', $comment->comment_ID);
でよいのでは?

392:デフォルトの名無しさん
21/06/30 06:56:15.60 gHjUFFSPM.net
日付扱うなら nesbot/carbon が楽だよ

393:デフォルトの名無しさん
21/06/30 15:33:44.49 E5lZLJuwr.net
>>384
>>385
大かっこ中かっこみたいに連結できるんですね、勉強になりました。
ありがとうございます。

394:デフォルトの名無しさん
21/07/01 16:07:46.68 /VJoNeIAp.net
VBで二限一次方程式のツール作るとしたら使う文法教えてくれ

395:デフォルトの名無しさん
21/07/01 17:07:12.29 rtzdpng60.net
>>388
ここに詳細な解説が載っているよ!
URLリンク(www.ruby-lang.org)

396:デフォルトの名無しさん
21/07/01 22:30:32.59 FtQP+R2v0.net
>>389
ありがとうございます!
きっとあの変人も喜んでいます!

397:デフォルトの名無しさん
21/07/02 05:15:42.19 8vqpw3og0.net
古いwordpressで徐々にレスポンシブ対応ページに変更しているのですが、
特定のurl(ドメイン/news/, ドメイン/blog/・・・など増加予定)の場合というifを作って
echoでレスポンシブのcssを出力したいです。
IPアドレスなどでレスポンシブ用cssを出すのはすでに実現しています。
$url = esc_url($_SERVER['REQUEST_URI']);
複数のURIの中からマッチさせたいです。
足していくので改行を使った配列を使うのが良いのか、strpos, strstrを使えば良いのか
どのような判定をすればいいでしょうか?
$responsive_url = array(
/news/,
/blog/
};
if(判定する関数($url, $responsive_url)){
echo "cssを出す処理";
}
みたいな感じになるのでしょうか

398:デフォルトの名無しさん
21/07/02 10:13:53.35 zJt0vXnM0.net
>>391
実際に書いてみればいいじゃん
PHPはスクリプト言語なんだから、悩んでる暇があったら書いた方が早い
URLリンク(paiza.io)
上記の例ではテストのために $uri の値を固定しているが
本番環境なら
$uri = getenv('REQUEST_URI');
を使えばいい
こういう実行環境をローカルに用意できてないなら、先にそっちを何とかした方がいいぞ
スクリプト言語のメリットが全く活かせてないから

399:デフォルトの名無しさん
21/07/02 14:20:08.79 8/5dBHDt0.net
>>391
urlからディレクトリ名抽出してその名前のファイル名.cssをCSSファイルとすればそこまで色々悩む必要は無い気がする

400:デフォルトの名無しさん
21/07/03 04:35:11.36 XWbbAf/z0.net
>>392-393
ありがとう、paizaというものがあるのね。
すごい便利でびっくり
そう、実はローカル環境が無くて、公開している本番サイトをちょっと触ったら白くなって慌てて戻してとかダメダメなやり方してる
ローカル環境作らないとダメよね。
URLリンク(paiza.io)
やってみたけど出来ていそうで上手くいかないorz
true, falseのところが間違っているのかな
フラグ用の変数を設けて、自宅用の固定IPか、レスポンシブ用のURIならcssを追記するってことなんだけど
無条件にcssが付加されてしまう

401:デフォルトの名無しさん
21/07/03 06:03:10.13 WJPssPjr0.net
オイオイ、最後trueを代入しちゃってるよ

402:デフォルトの名無しさん
21/07/03 07:16:32.91 +vCA0zbWM.net
メンテ担当に逃げられた無能っぽいな

403:デフォルトの名無しさん
21/07/04 21:04:35.74 wDVNm/sr0.net
入力項目の中で生年月日が入力されてなかったらdb側の生年月日にはnullを入れるシステムがどうしても作れなくてアイディアに詰まってるので助けてください
data型でdefault nullで作ってます

404:デフォルトの名無しさん
21/07/04 23:05:18.46 GsYUOVMj0.net
table create文をここに書いて
実際にデータをinsertするときの文も
>入力されてなかったら...nullを入れる
ここに落とし穴がありそう

405:デフォルトの名無しさん
21/07/05 01:27:32.49 fHx0Uh9Wd.net
めちゃくちゃ素人質問で申し訳ないんですけど入力された値が数値では無い場合と指定文字数じゃない場合にエラーを出したいんですけどどこが間違ってますでしょうか?
if(!is_numeric($_POST['te']) ||
!mb_strlen($_POST['te'])==8){
$err ='正しい数値を入力して下さい';
}

406:デフォルトの名無しさん
21/07/05 02:01:16.11 vro+Akhn0.net
>>399
$errはどこかでechoするんですよね?

407:デフォルトの名無しさん
21/07/05 02:16:11.46 gY5D6WDn0.net
>>399
is_numericとmb_strlenを一緒に使っているが、$_POSTに入力されるのは全角、半角どちらを期待しているのか?
半角ならばstrlen使うべきだし、全角ならis_numericではなくpreg_matchなどで処理する必要がある
解決方法としては、一旦$_POSTを変数に入れて全角か半角どちらか必要な方に統一した後、然るべき処理を行うのがよいと思われる

408:デフォルトの名無しさん
21/07/05 11:03:40.35 fHx0Uh9Wd.net
>>400
そうですね、その予定です!
>>401
ありがとうございます
1つずつ確認してみます

409:デフォルトの名無しさん
21/07/05 11:09:11.53 W/ubV+NK0.net
>>399
要件を整理すると「特定の範囲内の数値を正とする」ってことだと思うので、filter_input()使うのが楽だと思う

410:デフォルトの名無しさん
21/07/05 11:55:59.13 Fmkhs1Zc0.net
必要桁の数値による正規表現が簡単だぞ

411:デフォルトの名無しさん
21/07/05 12:18:25.72 kyq5FLmC0.net
>>394
strpos()で「~を含む」という処理を書きたいならこう書くこと
※理由はPHPマニュアルに書いてある筈
×:strpos($now_url, $res_url)
○:strpos($now_url, $res_url) !== false
極めつけはこれ
×:$match_responsive = true
○:$match_responsive ==== TRUE
$match_responsiveに true を入れてるのだから、結果は常に真になるぞ?

412:デフォルトの名無しさん
21/07/05 12:19:27.72 kyq5FLmC0.net
>>399
>>402
色々間違ってる
・$_POST['te'] が null(未定義) だった場合にそのコードはエラーになる(もしエラーにならないならエラー設定を見直すこと)
・半角数字の入力を期待しているのだから、使うのは mb_strlen() ではなく strlen()
・書くなら !mb_strlen($_POST['te']) == 8 ではなくて mb_strlen($_POST['te']) !== 8
・== ではなく === で問題なく動くコードを書くくせを付けた方がいい
・省略しただけかもしれないが、$err をきちんと初期化しよう
以上を修正したサンプル
URLリンク(paiza.io)
エラー設定のやり方
URLリンク(qiita.com)

413:デフォルトの名無しさん
21/07/05 12:20:57.53 kyq5FLmC0.net
>>405訂正
×:$match_responsive ==== TRUE
○:$match_responsive === true

414:デフォルトの名無しさん
21/07/06 14:16:58.59 K/Yz4VXdr.net
//ここにメイン部分のコードを記述 ループしないので <php if (have_posts()) : the_post(); >
<!--クラスつきのタイトルを追加-->
<h3><php the_title(); ></h3>
<!--クラスつきの日付けを追加-->
<div class="posted_date">
<php echo get_the_date(); ?> </div>
<!--リンククラス付きのカテゴリーを追加-->
<php
$categories = get_the_category();
if ( $categories ) {
echo '<ul>';
foreach ( $categories as $category ) {
echo '<li class="cat2"'.$category->slug.'"><a href="'.esc_url(get_category_link($category->term_id)).'">'.$category->name.'</a></li>';
}
echo '</ul>';
} ?>
<!--リンククラス付きのコメント数を追加-->
<php $num_comments = get_comments_number();
if ( $num_comments == 0 ) {
$comments = __('No Comments'); // 댓글이 없을 경우
} elseif ( $num_comments > 1 ) {
$comments = $num_comments . __(' Comments'); // 댓글이 2개 이상일 경우
} else {
$comments = __('1 Comment'); // 댓글이 1개일 경우
}
$write_comments = '<span class="singlecomments2"><a href="' . get_comments_link() .'">'. $comments.'</a></span>';
echo $write_comments;?>
<!--クラス付きの内容を追加-->
<div class="posted_content">
<php echo the_content(); > </div>
<php
endif;?> で出力してるんですが<!--クラス付きの内容を追加-->の部分のみ繰り返し出力する場合どうすればいいんでしょうか?

415:デフォルトの名無しさん
21/07/06 14:57:40.96 EJPu27Tj0.net
暇つぶしに過去作っていたプログラムを改修していたのですが、
関数ばかりのライブラリが、わりと使い勝って良くて軽量だったりします。
セキュリティを考慮すること無く、CRUD程度の操作なら
フレームワーク使わなくても良いと思ったりしたのですが、
みなさんはやっぱり自作の物は使わないようにしてますか?

416:デフォルトの名無しさん
21/07/07 01:26:08.59 bUHYGk470.net
Ruby のERB(埋め込みRuby)みたいに、
文字列をつなげて、HTML を作るのではなく、
逆に、HTML中に、Rubyの式を埋め込めば?
<%= ~ %> は出力される。
<% ~ %> は出力されない
<table border="1" cellpadding="4">
<% @items.each do |fruit, price| %>
<tr>
<th><%= fruit %></th>
<td><%= price %>円</td>
</tr>
<% end %>
</table>

417:デフォルトの名無しさん
21/07/07 01:32:32.70 7x6smrJ30.net
>>395,405
ありがとう、代入はダメね全然気付かなかった。
strposも位置を数字で返すのね。
あるあるなミスなようで俺もミスってしまった。
期待通りに動くようになりました。

418:デフォルトの名無しさん
21/07/07 14:02:49.29 Mv2t2pQw0.net
>>409
自分がずっとメンテするものなら使うし
そうではないなら、将来自分が面倒くさい事にならないようになるべく使わない
プログラマなんか楽してなんぼ

419:410
21/07/07 21:21:40.74 bUHYGk470.net
趣味・遊びなら、好きにすればよい
プロ・仕事なら、Ruby on Rails

420:デフォルトの名無しさん
21/07/08 08:53:13.93 Yr3Bg0Mz0.net
本当のプロならPHPのスレで他の言語を推したりしないw
本当のプロならRuby(笑)なんて採用しないw

421:デフォルトの名無しさん
21/07/08 19:06:14.53 yX5z+H5y0.net
相手にしなさんな

422:デフォルトの名無しさん
21/07/09 18:15:18.49 KkNlGqxZr.net
<php $args = array('posts_per_page' => 2,
'orderby' => 'date',);$posts_array = get_posts( $args );if (!empty($posts)):>
<php foreach($posts_array as $post):setup_postdata($posts_array);>
<a href="<php echo get_permalink();>"><div class="img-wrap">
画像
<php if ( has_post_thumbnail()){
//存在
the_post_thumbnail();}
else {
//存在しない
echo '<img src="noimage.jpg">';}></div>
タイトル
<h2><php the_title(); ></h2>
日付け
<php the_time('Y/m/d');>
カテゴリー
<php $categories = get_the_category();if ( $categories ) {echo '<ul>';
foreach ( $categories as $category ) {echo '<li class="cat1"'.$category->slug.'"><a href="'.esc_url(get_category_link($category->term_id)).'">'.$category->name.'</a></li>';}
echo '</ul>';}>
コメント数
<php $num_comments = get_comments_number();if ( $num_comments == 0 ) {$comments = __('No Comments');
} elseif ( $num_comments > 1 ) {$comments = $num_comments . __(' Comments'); } else {$comments = __('1 Comment');
$write_comments = '<span class="singlecomments"><a href="' . get_comments_link() .'">'. $comments.'</a></span>';echo $write_comments;>
コメントの抜粋
<php the_excerpt();>
記事を読む
<a href="<php the_permalink();>">記事を読む</a> <php endforeach;>
<php else:>
<div class="newarrival_nodata"><p>記事</p></div>
<php endif;wp_reset_postdata();>
ページナビを実装したいんですが、$nextpostと$prevpostを使って2ページ目を表示させる場合どういうコードを書けばよいのでしょうか?

423:デフォルトの名無しさん
21/07/09 18:28:51.80 Bz949MzB0.net
wordpressの話はwordpressスレへ

424:デフォルトの名無しさん
21/07/09 19:09:49.46 KkNlGqxZr.net
>>417
向こうで聞いても教えて貰えなくて…

425:デフォルトの名無しさん
21/07/09 19:23:26.52 aS/fIL1f0.net
>>418
ナビに関係ないコードばかりだし
ブロックに波括弧とコロンが混在してて見づらいし
$nextpostと$prevpostを使ってとか言いながら、$nextpostと$prevpostがそもそもコード内に存在しないし
質問の仕方が悪い

426:デフォルトの名無しさん
21/07/09 20:07:03.69 KkNlGqxZr.net
>>419
コードに付けたいんですが文字数制限があって書けないんです…
code penを見ていただけるなら書きますが…

427:デフォルトの名無しさん
21/07/09 20:18:24.64 KkNlGqxZr.net
URLリンク(codepen.io)
このコードを書くとエラーが出ます。どこが間違っているのでしょうか?
syntax error, unexpected end of file, expecting elseif (T_ELSEIF) or else (T_ELSE) or endif (T_ENDIF)

428:410
21/07/09 20:57:16.85 TIX9j1Dy0.net
>>410
に書いたみたいに、HTML 内に、PHP の構文を埋め込めば?
逆に、PHPで文字列をつなげて、HTMLを作ると分かりにくい
Ruby on Rails では、全部そう。
HTML内に、Rubyの式を埋め込む
<%= ~ %> は、HTMLに出力される。
<% ~ %> は出力されない
Rubyで文字列をつなげて、HTMLを作らない
なぜかと言うと、パーシャル・部分テンプレートにして、
その部分だけを別ファイル�


429:ノして切り出せないから それに文字列でつなげて、HTMLを作ると、 SQL インジェクションみたいに、 相手が情報を抜くような命令を入れてくるので、超危険! だから、Railsでは、a.html.erb みたいに、 ERB(埋め込みRuby)で書いて、それをHTMLにする



430:デフォルトの名無しさん
21/07/09 21:46:12.63 aS/fIL1f0.net
>>421
そもそも動かないコードとかさぁ
仮にナビができたとしても動かないじゃん
エラーの内容IFのタグの問題だよね
タグが合わないのはRSSの時に、タグ統一して不要な部分一旦コメントするなりして流れを追えって言われたよね?
何も進歩してないな、やれやれ…

431:デフォルトの名無しさん
21/07/09 22:34:16.27 SqCApkwQa.net
>>423
元のコードが動いていて、ページ要素を加えるために$next postを加えたときにエラーが起きました
タグを統一って具体的にどこでしょうか?

432:デフォルトの名無しさん
21/07/09 22:39:05.83 nNC4f6Lr0.net
文法エラーくらいは自分で見つけられないと

433:デフォルトの名無しさん
21/07/09 23:06:03.


434:20 ID:aS/fIL1f0.net



435:デフォルトの名無しさん
21/07/09 23:58:42.15 TIX9j1Dy0.net
Web制作管理板のWordPress のスレで、やってるみたい
5ch ではマルチポストは禁止だから、このスレでは話を続けない方がよい。
向こうのスレで議論してください!
1つのスレだけにしないと、答える人も同じ事を調べたりするので、無駄

436:デフォルトの名無しさん
21/07/10 02:46:38.45 gwvQHAgv0.net
Rubyバカが自分を棚にあげて何か言ってる

437:デフォルトの名無しさん
21/07/10 02:53:56.58 etRC44er0.net
>>5ch ではマルチポストは禁止
いつそんなこと決まったんだ?

438:デフォルトの名無しさん
21/07/10 06:01:14.33 BwwaALiC0.net
URLリンク(info.5ch.net)

439:デフォルトの名無しさん
21/07/10 08:21:25.24 l5rpHYDO0.net
>>430
それとはマルチポストの意味が違う
それに禁止されてるわけではない

440:デフォルトの名無しさん
21/07/10 10:30:31.94 BPX48WFJ0.net
同じ質問を至るところでして、回答者がいても返信すらしないというのはよくある事
書き捨てする様な質問には誰も答えないし、迷惑千万

441:デフォルトの名無しさん
21/07/10 12:57:51.58 B4xS3BY90.net
俺はヒールに徹するルビー君が結構好きだったんだけど
常識を語るようになったら終わりだね

442:デフォルトの名無しさん
21/07/10 13:45:53.05 npYW/9LsM.net
>>431
マルチポストの定義すら分からんのか

443:デフォルトの名無しさん
21/07/10 17:15:08.23 xuQr++Bu0.net
>>434
お前がな

444:デフォルトの名無しさん
21/07/10 23:37:27.16 L/F3nxmer.net
原因が少しわかりました
get_posts()は取得した投稿データを配列として返すのに対し、WP_Queryクラスを利用した場合は、データベース検索の条件やその結果がデータとして保持されるため、ループ内での条件分岐など、より高度なサブループの制御が可能です。
昨日書いたコードは$args = array()を2度分けて書いていたこと、
$posts_array = get_posts( $args );で投稿内容の取得をしているのに対し、
$the_query = new WP_Query( $args );でページナビの内容を取得しているので、
ひもずけされておらずページ番号と内容がマッチしておらず2ページ目をクリックしても内容のリロードができてませんでした。
一つ聞きたいのは、
WP_Queryとget_postsの違いは何でしょうか?
投稿内容をページナビ付きで表示する場合WP_Query() get_thumnailとかで投稿画像など取得できるのでしょうか?

445:デフォルトの名無しさん
21/07/11 02:17:32.48 lZiRxAj00.net
WordPress の質問ですか?
WordPressの事なら、Web制作管理板のWordPressのスレに書き込んでください!
5ch はマルチポスト禁止だから、
同じ質問を、複数のスレに書くのは禁止!
このスレではなく、WordPressのスレの方で聞く方がよい

446:デフォルトの名無しさん
21/07/12 01:09:59.12 cRbCoWRWr.net
URLリンク(teratail.com)
何とか作り上げることができました。
頭痛いのでねます。

447:デフォルトの名無しさん
21/07/12 16:45:41.95 ihSDWtOf0.net
Po@「

448:デフォルトの名無しさん
21/07/12 17:49:52.30 ZPBMd6Y/0.net
>>439
コラコラ

449:デフォルトの名無しさん
21/07/12 22:17:47.32 SYagZpGJd.net
アップロードされた画像をconstで定義されてるパス先に移動させたいんですが上手く出来ないので教えてください
move_uploaded_file($upload_file['tmp_name'],DIR_IMG.$new_file_name);
DIR_IMGには相対パスが入ってます('../img/など)

450:デフォルトの名無しさん
21/07/13 13:02:35.06 I15vJP3h0.net
そもそもアップロードされたファイルなのかどうか
is_uploaded_file()でチェック出来る
そうじゃないならrename()使え
その相対パスあってる?
realpath()で確認してみる
相対パスがあってたとして、パーミッションチェックした?

451:デフォルトの名無しさん
21/07/14 19:07:13.52 dWCeWde70.net
$fruits = array(
'banana' => 'yellow',
'apple' => 'red',
);
$coffee = 'cocacolla:geogia';
function morning($fruits,$coffee) {
$fruits['strawberry'] = 'red';
$coffee = 'suntory=boss';
return $fruits;
}
$fruits = morning($fruits,$coffee);
var_dump($morning);
echo '<br>'.$coffee;
?>

すいません。
phpでは、他の言語のように、関数外で定義された変数も
関数内では有効ではないのですね。。
で、関数外で定義された変数は、引数で受け取り、
returnで返すと、有効になることもわかりました。
=という認識であっていますか?
では、更新したい変数が2つあった場合どのようにすればいいでしょうか?
たとえば、上でいうところの$coffeeを更新したいのです。

452:デフォルトの名無しさん
21/07/14 19:09:54.91 dWCeWde70.net
訂正::すいません。
×var_dump($morning);
〇var_dump($fruits);

453:デフォルトの名無しさん
21/07/14 19:40:05.21 b60WN8TB0.net
グローバル変数なら別にスコープ関係無い筈だがそれ前提は設計的にどうかと思うので
以下の方法のどちらかを使う方が良いだろう
参照で渡す
function test(&$a) {
$aへの代入は関数で渡した変数に及ぶ
別にreturnする必要は無い
}
複数の結果をリターンする
function test2()
{
return [1,2];
}
list($a,$b) = test();
$aと$bに結果が入る

454:デフォルトの名無しさん
21/07/14 20:25:55.80 dWCeWde70.net
よくわかりました。
関数外に変数を定義したからといって、
global変数になるわけじゃないんですね。
ありがとございました。
参照渡しか、global変数の定義か、どちらかでやっていきます。

455:デフォルトの名無しさん
21/07/15 00:16:59.54 gFOIdhYR0.net
Ruby も珍しく、厳格な関数スコープ。
関数外の変数を、関数内で参照できない
引数渡しか、クラス・モジュール化して使うなどする

456:デフォルトの名無しさん
21/07/15 14:33:47.08 Hy5PN9MF0.net
>>446
まず「スコープ」という概念について勉強しよう
URLリンク(www.php.net)
それが理解できたら次は「グローバル空間」について
URLリンク(www.php.net)
それが理解できたら次は「名前空間」について
URLリンク(www.php.net)
今は野球のルールを知らないのに野球やってる状態
PHPマニュアルは優秀だから大抵の事は書いてある
最低限のルールは覚えよう

457:デフォルトの名無しさん
21/07/15 14:39:40.15 Hy5PN9MF0.net
>>441
その質問には超能力者しか答えられない
とりあえず、以下を参考にエラーを出力させよう
URLリンク(qiita.com)
次に、そのエラー内容をきちんと読もう
中学レベルの英語力で読めるので
そのエラーを読んでも意味が理解できないなら、エラー内容を転載して質問
俺らはエスパーじゃないw

458:デフォルトの名無しさん
21/07/15 20:53:46.77 jGrj3A7F0.net
>>443
なんとなく設計がよくない気がする
$fruits、$coffeeは、別々の関数で処理させて、returnはそれぞれ1つの方がよいと思う
無理にまとめると関数の独立性を損ねるし、それに参照渡しもlist関数も直感的でなく可読性が落ちる

459:デフォルトの名無しさん
21/07/17 05:15:45.31 YBqRFemK0.net
>>449
妙にしっくりきます。
長年ソフトボールに慣れ親しんで、
野球も似たようなもんだろ。って参加したら
両者の違いにやっと気づいて、苦悶する状態w

460:デフォルトの名無しさん
21/07/17 05:18:10.65 YBqRFemK0.net
>>449ではなくて>>448
すまそ。

461:デフォルトの名無しさん
21/07/17 18:21:09.31 ohkviaGsr.net
指定画像を出力したうえでメニューを作りたい
<php
header('Content-Type: image/jpg');
readfile('uploads/2021/07/7mgpH3K.jpg');
>
で画像の取得はできたのですが、
html文を続けて出力するとエラー
php文を続けても画像しか表示されません。
おそらく器しかなく受け皿のhtmlがないので画像ファイルとして認識されてしまっているのが原因だと思います。
<php
header('Content-Type: image/jpg');
readfile('wp-content/uploads/2021/07/7mgpH3K.jpg');
>
のあとに続けて画像 画像 メニュー 画像とへっだーナビ風に<table>にしたい場合どうすればよいでしょうか?

462:デフォルトの名無しさん
21/07/17 18:25:44.28 ohkviaGsr.net
画像が画面いっぱいに表示されるということは別のファイルに出力するということですかね、
複数表示してcssを付与するのはどうすればよいのでしょうか?

463:蟻人間
21/07/17 18:54:11.12 UtbSZ1Qtd.net
htmlの中にtable出力、その中でimg要素をsrc属性を付けて複数指定する。ブラウザはsrc属性付きのimgのイメージを自動的に読み込む。

464:デフォルトの名無しさん
21/07/17 20:16:21.59 ohkviaGsr.net
>>455
すみません、過去の質問を頼りに画像出力について検索したのですが、URLリンク(detail.chiebukuro.yahoo.co.jp)
PHPで画像データを読み込んで出力する場合は、IMGタグを
<IMG src="ooo.php?img=gazou.png">
PHPは
if($_GET['img']){
print file_get_contents($_GET['img']);
exit();
}
のようにします。
とありますが、<img src="img.php?img=uploads/2021/07/7mgpH3K.jpg">で
img.phpの中のuploads/2021/07/7mgpH3K.jpgを出力するとしても画像が出力できません。
何が原因でしょうか?

465:蟻人間
21/07/17 21:00:58.68 UtbSZ1Qtd.net
>>456
スラッシュをエスケープするにしてもその書き方は任意のパス名を受け入れるから危険だよ。

466:デフォルトの名無しさん
21/07/17 21:34:37.90 OaBiTcJcM.net
>>457
画像を呼び出す場合<img src="/header_image.php">のようにphpスクリプトを呼び出して、そのphpスクリプトが画像データを返すようにすべきです。
と言われたのですがほかに方法はあるのでしょうか?

467:デフォルトの名無しさん
21/07/17 21:38:04.55 xmQE+uIu0.net
<img src="img.php?img=uploads/2021/07/7mgpH3K.jpg">
じゃなくて、
<img src="uploads/2021/07/7mgpH3K.jpg">
じゃないの?
まあでも、ユーザーから送られたものを、チェック無しに、そのまま使うのは危険!
そこに、色々なファイルパス・命令などを入れてくる

468:蟻人間
21/07/17 22:23:28.15 UtbSZ1Qtd.net
パス名じゃなくてもっと制限された情報を渡す。

469:デフォルトの名無しさん
21/07/18 12:58:29.71 VnC3iq6Ar.net
>>459 >>460
ユーザーからおくられたものではなく自身のサイトのサーバーに置いた画像を指定して任意の場所に表示させ、メニューを作りたいんですがその場合
<img src="uploads/2021/07/7mgpH3K.jpg">でいいのでしょうか?
<table>にして画像 画像 メニュー メニュー 画像としたいんですが、phpを使わなければならないと勝手に認識してるんですが

470:デフォルトの名無しさん
21/07/18 13:23:08.70 A0aXocf00.net
HTMLでアクセス可能なPathなら、だが
ハッキングされそうで怖いな

471:デフォルトの名無しさん
21/07/18 14:04:59.57 fBmvBk7Y0.net
そもそもアップロード先フォルダだとしてそれをそのまま公開するのは頭がおかしい
PHP以前の問題
本来ならアップロードした時点でファイルを調べて、それでOKであれば
(例えばちゃんと画像ファイルなのかどうか等)
公開フォルダへコピーするなりするべきじゃね?

472:デフォルトの名無しさん
21/07/18 15:55:22.55 Th1fsKvf0.net
アホばっかりw

473:デフォルトの名無しさん
21/07/18 16:44:58.59 UQ3hWlPAa.net
セキュリティ的に危ないという理由を教えてください
一度サーバーのフォルダにアップしたものを公開するのは危ないのでしょうか?

474:デフォルトの名無しさん
21/07/18 17:23:13.71 ca/UjVuI0.net
>>465
セキュリティはちゃんと体系的な知識を身につけたほうが良いですよ
一応アップロード系の用語がそれなりに出てくる記事をリンクしておきます
URLリンク(qiita.com)
記事中の実装は、今となっては古すぎなので参考になりませんが、用語レベルでは網羅されているかと
入り口の記事として読んでください
外部からアクセスできる場所にアクセス・実行できるファイルを一個置かれただけで、かなりのことができるようになります

475:デフォルトの名無しさん
21/07/18 19:10:00.86 NSPuFPL00.net
RubyガイジとWPガイジはスルー推奨

476:デフォルトの名無しさん
21/07/18 19:37:42.84 gO2R7Orx0.net
>>453
header関数で画像データを指定してるんだからhtmlが出力されるわけない
何のためにわざわざheaderなんか指定してるのか不明
HTTPヘッダについて調べた方がいい

477:デフォルトの名無しさん
21/07/18 21:08:39.36 H/NN8O820.net
セキュリティーは、膨大な種類ある
だから皆、Ruby on Rails などのフレームワークを使う。
素の言語では、一生やっても作れない
Rails では、サーバーへプロフィール画像をアップロードする、機能がよく出てくる。
画像ファイルの縦横幅の制限、容量の制限、
中身にウイルスがうめこまれていないかチェックするなど、
色々なセキュリティー対策をしないといけない
さらにレスポンシブ対応で、様々なサイズに拡大縮小するなど、
OSS のモジュールを使わないと作れない
一々、自分で作っていては、一生掛かる。
Railsなどのフレームワークの勉強をしていない人は、絶対にシステムを作れない
他にも、マスアサインメント・SQL インジェクションとか、
セキュリティーには膨大な種類ある
だから、PHP のサイトばかり攻撃されるのは、
セキュリティーを知らない人が作っているから、情報を取りやすい

478:デフォルトの名無しさん
21/07/18 21:53:44.27 6mAUoTwKM.net
PHPのフレームワーク使うならLaravelだね

479:デフォルトの名無しさん
21/07/18 22:51:51.23 adePGcGm0.net
マルチポストには激おこするルビー君

480:デフォルトの名無しさん
21/07/18 23:11:24.32 g0bWf1Ea0.net
激おこなんていうJK用語をナチュラルに使いこなしているのがすごい

481:デフォルトの名無しさん
21/07/18 23:42:29.55 A0aXocf00.net
JK用語なの?
おじさん、普通に使ってた

482:デフォルトの名無しさん
21/07/20 01:13:58.90 kSAF0CCr0.net
アラフォーだけど、使うって感じじゃなくて…
ジェネレーションギャップかも

483:デフォルトの名無しさん
21/07/20 17:18:42.82 IgegoDKDM.net
以前質問させていただいた画像を直接上げてはいけない原因を調べたところ、
誰からもWebサーバを介してファイルにアクセスできないようにしておいて、ファイルの表示はプログラムを使ってアクセス制御をしながら表示する
つまり通常Webで画像を表示する場合、imgのsrc属性に画像が置いてあるURLを指定するというのが一般的だと思います。
しかし、画像を置いてあるURLを指定するというのは、画像を表示するためにはそのURLにアクセスできるということを表しています。
そこで画像をbase64化
画像をHTMLやCSSに埋め込める(直接記入出来る)ようにする為に、画像をbase64にエンコードします
<php $img = base64_encode(file_get_contents('画像URL')); ?>
<img src="data:image/png;base64,<php echo $img; ?>">
参考URL
URLリンク(www.tmp1024.com)
URLリンク(9-bb.com)
これで大丈夫でしょうか?画像は表示されました。

484:デフォルトの名無しさん
21/07/22 13:17:48.55 pnEPB7fm0.net
質問お願いします。
環境はWindows10でXAMPP7.4.21です。
exec('ipconfig', $message);
上記のPHPに、ブラウザからアクセスした場合、$message[1]が
「Windows IP 構成」と、日本語ですが、
Batファイルで、「c:\xampp\php\php.exe d:\www\test.php」で実行した場合、$message[1]が
「Windows IP Configuration」と、英語です。
PHPが5の時はどちらも日本語だったのですが、XAMPPのアップデートでPHPが7になったらこの現象が起きました。
Batの時にも日本語にするためには、なにをしたら良いでしょうか。
どうぞよろしくお願いいたします。

485:デフォルトの名無しさん
21/07/22 15:43:09.09 b8/cFbDKM.net
>>463
言ってる意味がおおよそ理解できたのですが。
・暗号化
 可逆な存在
 =複合することができる
 =変換方式が決まっているため、だれでも復元(decode)できる。
可逆な存在といえば「Base64」
エンコード(暗号化)も出来るし、デコード(複合化)もできる。
(でもね、厳密には暗号化=エンコードとは言えないんだよ…)
(詳しくはもう少し下で…)
逆に、不可逆な存在といえば「SHA-1」
こっちは複合化することが出来ない。
画像をハッシュ関数化してそれをもとに画像を表示させる方法がわからないんですが、
phpで可能なんでしょうか?

486:デフォルトの名無しさん
21/07/24 10:11:35.97 CXOLw81IM.net
暗号化と符号化の違いがわからなかった時期が俺にもあったなぁ

487:デフォルトの名無しさん
21/07/26 09:39:33.21 nRSOkyaR0.net
質問です。
JSONファイルを読み込もうとしたのですがうまくいきません。
$url = "URLリンク(f.irbank.net)
$json = file_get_contents($url);
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr = json_decode($json, true);

488:デフォルトの名無しさん
21/07/26 09:43:24.61 UUQ7nGaW0.net
うちはできてる

489:デフォルトの名無しさん
21/07/26 09:51:26.23 nRSOkyaR0.net
うう…マジか
XAMPPのローカル環境だから上手く行かないのだろうか?

490:デフォルトの名無しさん
21/07/26 10:38:53.43 rdRO2HTr0.net
せめてエラーログくらい貼りなよ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch