1 名前:デフォルトの名無しさん mailto:sage [2021/04/29(木) 12:39:39.75 ID:P0iZ4CYt0.net] !extend::vvvvv:1000:512 !extend::vvvvv:1000:512 !extend::vvvvv:1000:512 ★スレ立て時 ↑ が3行以上になるようコピペ PHPに関する質問スレです 前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 11 https://mevius.5ch.net/test/read.cgi/tech/1591334726/ 次スレは>>980 以降 VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
411 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 12:18:25.72 ID: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 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 12:19:27.72 ID:kyq5FLmC0.net] >>399 >>402 色々間違ってる ・$_POST['te'] が null(未定義) だった場合にそのコードはエラーになる(もしエラーにならないならエラー設定を見直すこと) ・半角数字の入力を期待しているのだから、使うのは mb_strlen() ではなく strlen() ・書くなら !mb_strlen($_POST['te']) == 8 ではなくて mb_strlen($_POST['te']) !== 8 ・== ではなく === で問題なく動くコードを書くくせを付けた方がいい ・省略しただけかもしれないが、$err をきちんと初期化しよう 以上を修正したサンプル https://paiza.io/projects/9C1pkzuMh9Q3ao3M7q6pCA エラー設定のやり方 https://qiita.com/fallout/items/31f793708b243033fab1
413 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 12:20:57.53 ID:kyq5FLmC0.net] >>405 訂正 ×:$match_responsive ==== TRUE ○:$match_responsive === true
414 名前:デフォルトの名無しさん [2021/07/06(火) 14:16:58.59 ID: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 名前:デフォルトの名無しさん [2021/07/06(火) 14:57:40.96 ID:EJPu27Tj0.net] 暇つぶしに過去作っていたプログラムを改修していたのですが、 関数ばかりのライブラリが、わりと使い勝って良くて軽量だったりします。 セキュリティを考慮すること無く、CRUD程度の操作なら フレームワーク使わなくても良いと思ったりしたのですが、 みなさんはやっぱり自作の物は使わないようにしてますか?
416 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 01:26:08.59 ID: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 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 01:32:32.70 ID:7x6smrJ30.net] >>395 ,405 ありがとう、代入はダメね全然気付かなかった。 strposも位置を数字で返すのね。 あるあるなミスなようで俺もミスってしまった。 期待通りに動くようになりました。
418 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 14:02:49.29 ID:Mv2t2pQw0.net] >>409 自分がずっとメンテするものなら使うし そうではないなら、将来自分が面倒くさい事にならないようになるべく使わない プログラマなんか楽してなんぼ
419 名前:410 mailto:sage [2021/07/07(水) 21:21:40.74 ID:bUHYGk470.net] 趣味・遊びなら、好きにすればよい プロ・仕事なら、Ruby on Rails
420 名前:デフォルトの名無しさん mailto:sage [2021/07/08(木) 08:53:13.93 ID:Yr3Bg0Mz0.net] 本当のプロならPHPのスレで他の言語を推したりしないw 本当のプロならRuby(笑)なんて採用しないw
421 名前:デフォルトの名無しさん mailto:sage [2021/07/08(木) 19:06:14.53 ID:yX5z+H5y0.net] 相手にしなさんな
422 名前:デフォルトの名無しさん [2021/07/09(金) 18:15:18.49 ID: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 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 18:28:51.80 ID:Bz949MzB0.net] wordpressの話はwordpressスレへ
424 名前:デフォルトの名無しさん [2021/07/09(金) 19:09:49.46 ID:KkNlGqxZr.net] >>417 向こうで聞いても教えて貰えなくて…
425 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 19:23:26.52 ID:aS/fIL1f0.net] >>418 ナビに関係ないコードばかりだし ブロックに波括弧とコロンが混在してて見づらいし $nextpostと$prevpostを使ってとか言いながら、$nextpostと$prevpostがそもそもコード内に存在しないし 質問の仕方が悪い
426 名前:デフォルトの名無しさん [2021/07/09(金) 20:07:03.69 ID:KkNlGqxZr.net] >>419 コードに付けたいんですが文字数制限があって書けないんです… code penを見ていただけるなら書きますが…
427 名前:デフォルトの名無しさん [2021/07/09(金) 20:18:24.64 ID:KkNlGqxZr.net] https://codepen.io/sadsfff/pen/bGWeOOo このコードを書くとエラーが出ます。どこが間違っているのでしょうか? syntax error, unexpected end of file, expecting elseif (T_ELSEIF) or else (T_ELSE) or endif (T_ENDIF)
428 名前:410 mailto:sage [2021/07/09(金) 20:57:16.85 ID: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 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 21:46:12.63 ID:aS/fIL1f0.net] >>421 そもそも動かないコードとかさぁ 仮にナビができたとしても動かないじゃん エラーの内容IFのタグの問題だよね タグが合わないのはRSSの時に、タグ統一して不要な部分一旦コメントするなりして流れを追えって言われたよね? 何も進歩してないな、やれやれ…
431 名前:デフォルトの名無しさん [2021/07/09(金) 22:34:16.27 ID:SqCApkwQa.net] >>423 元のコードが動いていて、ページ要素を加えるために$next postを加えたときにエラーが起きました タグを統一って具体的にどこでしょうか?
432 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 22:39:05.83 ID:nNC4f6Lr0.net] 文法エラーくらいは自分で見つけられないと
433 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 23:06:03.
] [ここ壊れてます]
434 名前:20 ID:aS/fIL1f0.net mailto: >>424 if やら foreach やらのブロック開始終了タグが波括弧だったりコロンだったりってのを直していくってことね wordpress触る以上埋め込みが混在するコードを追う能力は必須になるから、この程度のこと自力で解決できないならwordpress触るの諦めたほうがいいよ [] [ここ壊れてます]
435 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 23:58:42.15 ID:TIX9j1Dy0.net] Web制作管理板のWordPress のスレで、やってるみたい 5ch ではマルチポストは禁止だから、このスレでは話を続けない方がよい。 向こうのスレで議論してください! 1つのスレだけにしないと、答える人も同じ事を調べたりするので、無駄
436 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 02:46:38.45 ID:gwvQHAgv0.net] Rubyバカが自分を棚にあげて何か言ってる
437 名前:デフォルトの名無しさん [2021/07/10(土) 02:53:56.58 ID:etRC44er0.net] >>5 ch ではマルチポストは禁止 いつそんなこと決まったんだ?
438 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 06:01:14.33 ID:BwwaALiC0.net] https://info.5ch.net/index.php/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F
439 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 08:21:25.24 ID:l5rpHYDO0.net] >>430 それとはマルチポストの意味が違う それに禁止されてるわけではない
440 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 10:30:31.94 ID:BPX48WFJ0.net] 同じ質問を至るところでして、回答者がいても返信すらしないというのはよくある事 書き捨てする様な質問には誰も答えないし、迷惑千万
441 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 12:57:51.58 ID:B4xS3BY90.net] 俺はヒールに徹するルビー君が結構好きだったんだけど 常識を語るようになったら終わりだね
442 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 13:45:53.05 ID:npYW/9LsM.net] >>431 マルチポストの定義すら分からんのか
443 名前:デフォルトの名無しさん [2021/07/10(土) 17:15:08.23 ID:xuQr++Bu0.net] >>434 お前がな
444 名前:デフォルトの名無しさん [2021/07/10(土) 23:37:27.16 ID: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 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 02:17:32.48 ID:lZiRxAj00.net] WordPress の質問ですか? WordPressの事なら、Web制作管理板のWordPressのスレに書き込んでください! 5ch はマルチポスト禁止だから、 同じ質問を、複数のスレに書くのは禁止! このスレではなく、WordPressのスレの方で聞く方がよい
446 名前:デフォルトの名無しさん [2021/07/12(月) 01:09:59.12 ID:cRbCoWRWr.net] https://teratail.com/questions/348616 何とか作り上げることができました。 頭痛いのでねます。
447 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 16:45:41.95 ID:ihSDWtOf0.net] Po@「
448 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 17:49:52.30 ID:ZPBMd6Y/0.net] >>439 コラコラ
449 名前:デフォルトの名無しさん [2021/07/12(月) 22:17:47.32 ID:SYagZpGJd.net] アップロードされた画像をconstで定義されてるパス先に移動させたいんですが上手く出来ないので教えてください move_uploaded_file($upload_file['tmp_name'],DIR_IMG.$new_file_name); DIR_IMGには相対パスが入ってます('../img/など)
450 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 13:02:35.06 ID:I15vJP3h0.net] そもそもアップロードされたファイルなのかどうか is_uploaded_file()でチェック出来る そうじゃないならrename()使え その相対パスあってる? realpath()で確認してみる 相対パスがあってたとして、パーミッションチェックした?
451 名前:デフォルトの名無しさん [2021/07/14(水) 19:07:13.52 ID: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 名前:デフォルトの名無しさん [2021/07/14(水) 19:09:54.91 ID:dWCeWde70.net] 訂正::すいません。 ×var_dump($morning); 〇var_dump($fruits);
453 名前:デフォルトの名無しさん mailto:sage [2021/07/14(水) 19:40:05.21 ID:b60WN8TB0.net] グローバル変数なら別にスコープ関係無い筈だがそれ前提は設計的にどうかと思うので 以下の方法のどちらかを使う方が良いだろう 参照で渡す function test(&$a) { $aへの代入は関数で渡した変数に及ぶ 別にreturnする必要は無い } 複数の結果をリターンする function test2() { return [1,2]; } list($a,$b) = test(); $aと$bに結果が入る
454 名前:デフォルトの名無しさん [2021/07/14(水) 20:25:55.80 ID:dWCeWde70.net] よくわかりました。 関数外に変数を定義したからといって、 global変数になるわけじゃないんですね。 ありがとございました。 参照渡しか、global変数の定義か、どちらかでやっていきます。
455 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 00:16:59.54 ID:gFOIdhYR0.net] Ruby も珍しく、厳格な関数スコープ。 関数外の変数を、関数内で参照できない 引数渡しか、クラス・モジュール化して使うなどする
456 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 14:33:47.08 ID:Hy5PN9MF0.net] >>446 まず「スコープ」という概念について勉強しよう https://www.php.net/manual/ja/language.variables.scope.php それが理解できたら次は「グローバル空間」について https://www.php.net/manual/ja/language.namespaces.global.php それが理解できたら次は「名前空間」について https://www.php.net/manual/ja/language.namespaces.php 今は野球のルールを知らないのに野球やってる状態 PHPマニュアルは優秀だから大抵の事は書いてある 最低限のルールは覚えよう
457 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 14:39:40.15 ID:Hy5PN9MF0.net] >>441 その質問には超能力者しか答えられない とりあえず、以下を参考にエラーを出力させよう https://qiita.com/fallout/items/31f793708b243033fab1 次に、そのエラー内容をきちんと読もう 中学レベルの英語力で読めるので そのエラーを読んでも意味が理解できないなら、エラー内容を転載して質問 俺らはエスパーじゃないw
458 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 20:53:46.77 ID:jGrj3A7F0.net] >>443 なんとなく設計がよくない気がする $fruits、$coffeeは、別々の関数で処理させて、returnはそれぞれ1つの方がよいと思う 無理にまとめると関数の独立性を損ねるし、それに参照渡しもlist関数も直感的でなく可読性が落ちる
459 名前:デフォルトの名無しさん [2021/07/17(土) 05:15:45.31 ID:YBqRFemK0.net] >>449 妙にしっくりきます。 長年ソフトボールに慣れ親しんで、 野球も似たようなもんだろ。って参加したら 両者の違いにやっと気づいて、苦悶する状態w
460 名前:デフォルトの名無しさん [2021/07/17(土) 05:18:10.65 ID:YBqRFemK0.net] >>449 ではなくて>>448 すまそ。
461 名前:デフォルトの名無しさん [2021/07/17(土) 18:21:09.31 ID: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 名前:デフォルトの名無しさん [2021/07/17(土) 18:25:44.28 ID:ohkviaGsr.net] 画像が画面いっぱいに表示されるということは別のファイルに出力するということですかね、 複数表示してcssを付与するのはどうすればよいのでしょうか?
463 名前:蟻人間 mailto:sage [2021/07/17(土) 18:54:11.12 ID:UtbSZ1Qtd.net] htmlの中にtable出力、その中でimg要素をsrc属性を付けて複数指定する。ブラウザはsrc属性付きのimgのイメージを自動的に読み込む。
464 名前:デフォルトの名無しさん [2021/07/17(土) 20:16:21.59 ID:ohkviaGsr.net] >>455 すみません、過去の質問を頼りに画像出力について検索したのですが、https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1344620588 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 名前:蟻人間 mailto:sage [2021/07/17(土) 21:00:58.68 ID:UtbSZ1Qtd.net] >>456 スラッシュをエスケープするにしてもその書き方は任意のパス名を受け入れるから危険だよ。
466 名前:デフォルトの名無しさん [2021/07/17(土) 21:34:37.90 ID:OaBiTcJcM.net] >>457 画像を呼び出す場合<img src="/header_image.php">のようにphpスクリプトを呼び出して、そのphpスクリプトが画像データを返すようにすべきです。 と言われたのですがほかに方法はあるのでしょうか?
467 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 21:38:04.55 ID:xmQE+uIu0.net] <img src="img.php?img=uploads/2021/07/7mgpH3K.jpg"> じゃなくて、 <img src="uploads/2021/07/7mgpH3K.jpg"> じゃないの? まあでも、ユーザーから送られたものを、チェック無しに、そのまま使うのは危険! そこに、色々なファイルパス・命令などを入れてくる
468 名前:蟻人間 mailto:sage [2021/07/17(土) 22:23:28.15 ID:UtbSZ1Qtd.net] パス名じゃなくてもっと制限された情報を渡す。
469 名前:デフォルトの名無しさん [2021/07/18(日) 12:58:29.71 ID:VnC3iq6Ar.net] >>459 >>460 ユーザーからおくられたものではなく自身のサイトのサーバーに置いた画像を指定して任意の場所に表示させ、メニューを作りたいんですがその場合 <img src="uploads/2021/07/7mgpH3K.jpg">でいいのでしょうか? <table>にして画像 画像 メニュー メニュー 画像としたいんですが、phpを使わなければならないと勝手に認識してるんですが
470 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 13:23:08.70 ID:A0aXocf00.net] HTMLでアクセス可能なPathなら、だが ハッキングされそうで怖いな
471 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 14:04:59.57 ID:fBmvBk7Y0.net] そもそもアップロード先フォルダだとしてそれをそのまま公開するのは頭がおかしい PHP以前の問題 本来ならアップロードした時点でファイルを調べて、それでOKであれば (例えばちゃんと画像ファイルなのかどうか等) 公開フォルダへコピーするなりするべきじゃね?
472 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 15:55:22.55 ID:Th1fsKvf0.net] アホばっかりw
473 名前:デフォルトの名無しさん [2021/07/18(日) 16:44:58.59 ID:UQ3hWlPAa.net] セキュリティ的に危ないという理由を教えてください 一度サーバーのフォルダにアップしたものを公開するのは危ないのでしょうか?
474 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 17:23:13.71 ID:ca/UjVuI0.net] >>465 セキュリティはちゃんと体系的な知識を身につけたほうが良いですよ 一応アップロード系の用語がそれなりに出てくる記事をリンクしておきます https://qiita.com/mpyw/items/939964377766a54d4682 記事中の実装は、今となっては古すぎなので参考になりませんが、用語レベルでは網羅されているかと 入り口の記事として読んでください 外部からアクセスできる場所にアクセス・実行できるファイルを一個置かれただけで、かなりのことができるようになります
475 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 19:10:00.86 ID:NSPuFPL00.net] RubyガイジとWPガイジはスルー推奨
476 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 19:37:42.84 ID:gO2R7Orx0.net] >>453 header関数で画像データを指定してるんだからhtmlが出力されるわけない 何のためにわざわざheaderなんか指定してるのか不明 HTTPヘッダについて調べた方がいい
477 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 21:08:39.36 ID:H/NN8O820.net] セキュリティーは、膨大な種類ある だから皆、Ruby on Rails などのフレームワークを使う。 素の言語では、一生やっても作れない Rails では、サーバーへプロフィール画像をアップロードする、機能がよく出てくる。 画像ファイルの縦横幅の制限、容量の制限、 中身にウイルスがうめこまれていないかチェックするなど、 色々なセキュリティー対策をしないといけない さらにレスポンシブ対応で、様々なサイズに拡大縮小するなど、 OSS のモジュールを使わないと作れない 一々、自分で作っていては、一生掛かる。 Railsなどのフレームワークの勉強をしていない人は、絶対にシステムを作れない 他にも、マスアサインメント・SQL インジェクションとか、 セキュリティーには膨大な種類ある だから、PHP のサイトばかり攻撃されるのは、 セキュリティーを知らない人が作っているから、情報を取りやすい
478 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 21:53:44.27 ID:6mAUoTwKM.net] PHPのフレームワーク使うならLaravelだね
479 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 22:51:51.23 ID:adePGcGm0.net] マルチポストには激おこするルビー君
480 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 23:11:24.32 ID:g0bWf1Ea0.net] 激おこなんていうJK用語をナチュラルに使いこなしているのがすごい
481 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 23:42:29.55 ID:A0aXocf00.net] JK用語なの? おじさん、普通に使ってた
482 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 01:13:58.90 ID:kSAF0CCr0.net] アラフォーだけど、使うって感じじゃなくて… ジェネレーションギャップかも
483 名前:デフォルトの名無しさん [2021/07/20(火) 17:18:42.82 ID: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 https://www.tmp1024.com/php-image-showing/ https://9-bb.com/?p=3591 これで大丈夫でしょうか?画像は表示されました。
484 名前:デフォルトの名無しさん [2021/07/22(木) 13:17:48.55 ID: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 名前:デフォルトの名無しさん [2021/07/22(木) 15:43:09.09 ID:b8/cFbDKM.net] >>463 言ってる意味がおおよそ理解できたのですが。 ・暗号化 可逆な存在 =複合することができる =変換方式が決まっているため、だれでも復元(decode)できる。 可逆な存在といえば「Base64」 エンコード(暗号化)も出来るし、デコード(複合化)もできる。 (でもね、厳密には暗号化=エンコードとは言えないんだよ…) (詳しくはもう少し下で…) 逆に、不可逆な存在といえば「SHA-1」 こっちは複合化することが出来ない。 画像をハッシュ関数化してそれをもとに画像を表示させる方法がわからないんですが、 phpで可能なんでしょうか?
486 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 10:11:35.97 ID:CXOLw81IM.net] 暗号化と符号化の違いがわからなかった時期が俺にもあったなぁ
487 名前:デフォルトの名無しさん [2021/07/26(月) 09:39:33.21 ID:nRSOkyaR0.net] 質問です。 JSONファイルを読み込もうとしたのですがうまくいきません。 $url = "https://f.irbank.net/files/8700/fy-profit-and-loss.json"; $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 名前:デフォルトの名無しさん [2021/07/26(月) 09:43:24.61 ID:UUQ7nGaW0.net] うちはできてる
489 名前:デフォルトの名無しさん [2021/07/26(月) 09:51:26.23 ID:nRSOkyaR0.net] うう…マジか XAMPPのローカル環境だから上手く行かないのだろうか?
490 名前:デフォルトの名無しさん [2021/07/26(月) 10:38:53.43 ID:rdRO2HTr0.net] せめてエラーログくらい貼りなよ
491 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 11:26:45.16 ID:DTdYSzy80.net] 全く読めない このファイルは、UTF-8 ではない?
492 名前:デフォルトの名無しさん [2021/07/26(月) 11:43:48.93 ID:rdRO2HTr0.net] >>479 レスポンスがbrotliで圧縮されてる そのままブラウザに出力したいだけならContent-Encodingを設定しておくだけ header('Content-Encoding: br'); jsonとして読み込みたいならbrotliのエクステンションをインストールしてからデコードした上でjsonにデコードする
493 名前:デフォルトの名無しさん [2021/07/26(月) 20:20:23.98 ID:BzqZLuZJM.net] 1つ聞きたいんですが画像ファイルのセキュリティについてです。 自分の調べた聞いて理解した範囲では画像を<img src="画像URL">で表示するのは、 画像を表示するためにそのURLにアクセスできるので危険 ↓ 画像をbase64にエンコードします デコード(複合化)もできるので意味がほぼないです ↓ サイズとMIMEチェックをして画像を表示させる前に、画像ファイルである事を確認する 必要ならサイズやビット深度を変更する https://teratail.com/questions/350744で聞くと, ファイルをアップロードするのは「サイト運営側」だけであれば問題ありません。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13246474913で聞くと、 mineチェックとサイズ変更しなさい、 できればアップロード時のファイル名を元のものから変更する、自サイトのページ内に配置された画像としてしかアクセスを禁止するなどしなさい 結局どれが正解なんでしょうか?
494 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 20:26:04.88 ID:B9v6ZV500.net] >>485 どのようなリソースをどのような攻撃から守るかの仕様が提示されない以上正解はありません セキュリティポリシーやセキュリティ設計から見直してください 実装を決めるのはその後です
495 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 20:31:09.20 ID:7+uo32oc0.net] >>453 >>485 お前のやりたいことはWordpressの管理画面からアップした画像の表示だろ そんなもんのセキュリティ気にして変換する奴なんていねーよ つーかWPスレ池
496 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 21:10:41.62 ID:B9v6ZV500.net] >>487 アップロードは常に気をはれよ https://www.youtube.com/watch?v=oh1gyuqdcH8
497 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 22:18:00.65 ID:7+uo32oc0.net] >>488 俺に気をはれと言われましてもw
498 名前:デフォルトの名無しさん [2021/07/26(月) 22:31:24.99 ID:nQwBFtLMr.net] >>487 wordpress以外でも同じでしょ? それに管理画面からじゃなくフォルダのディレクトリに置いたファイルの話なんで画像限定じゃないですね phpやcssのファイルでも同様かどうか知りたいです
499 名前:デフォルトの名無しさん [2021/07/26(月) 22:44:03.71 ID:nQwBFtLMr.net] 画像ファイルのアップロードの時のセキュリティはwordpress関係なく同じでしょ
500 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 22:56:31.97 ID:7+uo32oc0.net] >>491 WPインストールしたらアップロード周りのソース全部読んでセキュリティホール無いことを確認するの? WPで画像表示する時は表示用PHP作ってbase64変換かますの? そして、アップロードする時は常に気をはるの?
501 名前:デフォルトの名無しさん [2021/07/27(火) 00:25:56.73 ID:eUxCT57wa.net] >>492 そんなことはしませんが、最低限のセキュリティは同じでしょ? base64じゃセキュリティにならないからファイルを関数化して複雑なファイル名にする それプラス最低限のセキュリティ、今回は画像なのでMIMEチェック もし自分以外のユーザーが画像を上げるなら 自サイトのページ内に配置された画像としてしかアクセスを禁止する word pressだからセキュリティは要らないっていうのはおかしいでしょ
502 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 01:30:32.63 ID:7P6684PB0.net] >>493 >>487 を読み返してください WPが前提、WPのシステムからアップされたメディアファイルの話し 更に言えば、このスレに住み着いてるWPガイジへのレス(アンカー見ればわかるでしょう)で自分で弄ることが前提 そして事の発端は >>指定画像を出力したうえでメニューを作りたい だからね? >そんなことはしませんが と仰られるように、前のレスの質問にNoと言うことはWPのシステムのセキュリティをある程度信頼してるわけですよね この件ではそれで十分だろうと言う話ですよ セキュリティの一般論の話なんてしてませんよ
503 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 01:51:04.21 ID:sIvc9ZAG0.net] ここはPHPの質問をするスレ WPの質問なら移動してください
504 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 04:39:04.62 ID:x4yitIm80.net] Word Press の質問は、web制作管理板のスレの方へ移動してください! Laravel のスレも、この板に立てている香具師がいる。 Laravelの質問は、WEBプログラミング板の方へ!
505 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 06:50:44.81 ID:L674X5NC0.net] >>496 お前が言うな Rubyバカ
506 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 07:09:26.40 ID:CFpUohJoM.net] WPスレにいる者だが絶対こっち来るなよ ガイジ過ぎて手に負えんわ
507 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 08:14:32.01 ID:SyBbAbx40.net] 質問は>>485 であってwordpress関係ないだろ >>487 が勝手にwordpressだって決めつけてる 質問も意味不明だけどね、何を聞きたいのか簡潔にしてほしい > つーかWPスレ池 お前がいけよw
508 名前:デフォルトの名無しさん [2021/07/27(火) 09:02:44.68 ID:opDlelu60.net] るびースレに行ってもらえば万事解決するんじゃないかな
509 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 09:30:06.62 ID:7P6684PB0.net] >>458 の質問者は少し前のWPのページネーションの奴だし、そいつは更に前のRSSの奴でもある ってことでこのスレに住み着いてるWPガイジであることは確定なんですわw 何が気に食わないのか知らんけど残念だったねwww https://teratail.com/users/homepage-site#question
510 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 10:01:53.85 ID:DZV4D5nN0.net] >>493 セキュリティと権限をごっちゃにしてそう
511 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 15:53:11.92 ID:Dog97BpdF.net] >>495 ほんそれ