X



【PHP】下らねぇ質問はここに書き込みやがれ 12
レス数が1000を超えています。これ以上書き込みはできません。
0003デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 13:04:54.03ID:wcP0w+UGr
https://codepen.io/sadsfff/pen/ExZBomX
記事によってサムネイルが表示されたりされなかったりするのですが、原因がわかりません。アドバイスお願いします。
0004デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 13:12:28.57ID:wcP0w+UGr
どうやら記事にサムネイルがなかったようです。記事にサムネイルがない場合、代わりに画像を設定したいのですがどのコードを修正すればいいのでしょうか?
0006デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 14:23:28.88ID:wcP0w+UGr
https://codepen.io/sadsfff/pen/dyNBJLw
サムネイルが取得できない場合 代替えの画像を表示するコードを付け足したのですが構文エラーが出てしまいます。どこが間違っているのでしょうか?
?php if(empty($first_img)){
// 記事内で画像がなかったときのためのデフォルト画像を指定
$first_img = "/wp-content/uploads/2021/02/スクリーンショット-60.png";
}
return $first_img;
}
足したコードはこちらです。
0007デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 14:31:24.78ID:wcP0w+UGr
>>5
htmlではなくphpの処理がわかりません。
0008デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 16:40:35.24ID:wcP0w+UGr
RSSで出力元からサムネイルを取得してなければダミー画像を表示する方法がわかりません。functions.phpに処理を記載したいのですが、そもそも他人から取得するコードと自分のダミー画像を出力するコードをごちゃまぜにできないので困ってます。
0009デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 16:56:15.41ID:wcP0w+UGr
記事中の1枚目の画像を取得 なければダミー画像を取得 
ifで条件が合ったときに画像を表示させたいのですが…
0010デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 20:20:18.09ID:zdiXzYTRr
https://codepen.io/sadsfff/pen/oNBryGr
return $first_img;
<span class="thumbnail2"> この部分が連結できません。調べてもわからず、RSSで画像を引っ張ってきたときに画像がないものにダミー画像を使いたいのですが、何をどう調べればよいか教えてください。
0013デフォルトの名無しさん (ワッチョイ 67c9-zD6t)
垢版 |
2021/05/01(土) 21:33:04.20ID:HeWILf2Q0
笑った。aspの頃を思い出した笑
0014デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 22:15:10.90ID:F9cq2G89r
<php // RSSフィードを取得
incloude_once(ABSPATH.WPINC.'/feed.php'); //オブジェクト取得
$rss=fetch_feed('http://~.com/rss/feed/goes/here');
$maxitems=0; if(is_wp_error($rss)){ //フィードのエラーチェック
$maxitems=$rss->get_item_quantity(2); //すべてのフィードから最新2つを出力
$rss_items=$rss->get_items(0,$maxitems); //0件から指定した件数まで配列を生成
}?>
0015デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/01(土) 22:17:05.23ID:F9cq2G89r
<div class="grid-x grid-margin-y">
<php if (empty($maxitems)):?>
<php if ($maxitems==0) echo' <div class="celllarge-14"> //データがありませんでした。
</div>'; //取得できたRSSが0の場合「データがありません」と表示。
else foreach ($rss_items as $item):?> //RSSが1件以上あったときは繰り返し、$itemにあるデータであれば他のデータも表示させる。

ここまでは文法でおかしなところはないようです。
0020デフォルトの名無しさん (ワッチョイ df7c-OedE)
垢版 |
2021/05/02(日) 18:02:00.71ID:mGuGuO120
入力?
https://www.php.net/manual/ja/reserved.variables.get.php
のようにGETで渡されたパラメータなら$_GETに入るのだが?
まさかとは思うが、サーバーが返したHTMLでリアルタイムで入力を受け取りたいとかだと
そもそもPHPは関係無いし、フロントのjavascriptでイベント処理するとかしないと無理だがw
https://developer.mozilla.org/ja/docs/Web/API/GlobalEventHandlers/onkeydown
002117 (ワッチョイ c71d-TNk6)
垢版 |
2021/05/02(日) 22:55:09.90ID:eESL2rf00
>>20
ありがとうございます
まだよく理解出来ていないのでいろいろ調べてみようと思います
0022デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 20:41:30.42ID:N1nfC+z1r
<span class="date2">
<php echo $item->get_date('Y.m.d');// 日付 ?>
</span> //書き方が多少おかしい

<div class="cell medium-7"><!-- 記事中の1枚目の画像を取得-->
<a href="<php echo $item->get_permalink(); ?>"> //サムネイル
<php
$first_img = '';
if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi',
$item->get_content(), $matches )
) { $first_img = $matches[1]; } ?> //記事中の1枚目の画像を取得
0023デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 20:55:59.41ID:N1nfC+z1r
>>11
原因は>return $first_img; の前に処理が続いてるのにreturnしているからとヤフー知恵袋で教えてもらいましたが、
<php if(empty($first_img)){ //Defines a default image
$first_img = "/images/default.jpg";
}
return $first_img;

の部分は後から別のコードを連結したためおかしくなってます。
本来は
<php if(empty($first_img)){ //Defines a default image
$first_img = "/images/default.jpg";
}
return $first_img;
}
で処理を閉じるのですが。
続きのコードまで処理が続いているため、<php endif; ?>がいらないとエラーが出ます。
仮の画像につなぐコードを維持しつつ<php endif; ?>につなぐには<span class="thumbnail2">
<img class="heit6" src="<php echo esc_attr( $first_img ); ?>" alt="" />
</span>
<php endif; ?>を書き換える必要があるのでしょうか?
0025デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 21:58:18.17ID:N1nfC+z1r
すいませんどこを調べればよいのでしょうか?わかりません。
002611 (ワッチョイ df02-G4Yb)
垢版 |
2021/05/03(月) 22:05:53.25ID:Cpgqkk+d0
>>23
そのreturnは一体どこで受け取るの?
マニュアル理解できないのか、そもそも読んでないのか知らんが、wordpress弄る前に基本的な学習が足りてない
0027デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 22:13:12.99ID:N1nfC+z1r
しらべてみましたが、他サイトのRSSを表示する際にサムネイルがない記事に自身のサイトの画像を設定することは無理なようです。
0028デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 22:19:25.42ID:N1nfC+z1r
>>26
調べるとfunctionに書くパターンと直接かくコードがあり。自身のサイトから発信する場合はfunctionに書いてそれを表示したいphpファイルから呼び出すよう書いてました。
自分の場合 相手方のサイトからRSSを取得してそれにアイキャッチや抜粋の情報を取得するので、直接コードを書いてますがその場合サムネイルがついてない記事も読み込んでしまいます。
そこでサムネイルがない記事に自身のサイトの画像を表示させたかったのですが、どのサイトにもその処理は乗ってませんでした。
0029デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 22:25:10.28ID:N1nfC+z1r
自分の見解では相手方のサイトのRSSからそもそも画像のついてない記事をはじいて、サムネイルのついている記事のみ収集して表示するという考えになったんですが。
そんなことはphpで可能なのでしょうか?
003011 (ワッチョイ df02-G4Yb)
垢版 |
2021/05/03(月) 22:39:39.80ID:Cpgqkk+d0
>>28
functions.phpから直接returnして一体どこでどうその値が扱われるの?
先のことがわからないコード貼って動きませんは無いでしょ

yahooに上げたのが最新だとすると、return $first_img;の後ブロック閉じてないし、閉じたとするとその5行下のendiの開始が見つからない
あとブロックが波括弧とコロンが混在してるし

安易に他人のコード切り貼りするからこう言うことになる


どこで画像取得してるか調べて、調べたら無い場合の処理を書く
これだけのことなんだから、ちゃんと動く段階のもの用意して一からやり直してみたらどうですかね?
0031デフォルトの名無しさん (ワッチョイ df7c-OedE)
垢版 |
2021/05/03(月) 22:41:00.86ID:+oXrxKHu0
やりたい事はPHPで普通に出来るが
そもそも質問するならpaiza等で動くコードを提示しないとね
wordpressが前提のようなものは、そういう前提部分が無いコードに書き換えるなりしないと
わざわざその環境を作って試してくれるような人なんて居ないしどうしょうもないかと
0032デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/03(月) 22:51:45.18ID:N1nfC+z1r
https://oku-log.com/blog/post-thumbnails/
このコードのダミー部分と
https://midorinz.com/app/2018/05/20/wordpress%E3%81%A7%E5%A4%96%E9%83%A8rss%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%93%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/
このコードを合わせたので変になってます。
もとはこうなってました。{ $first_img = $matches[1]; } ?> <php if ( !empty( $first_img ) ) : ?>
0033デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/03(月) 23:01:59.87ID:HTxVkaL2M
endiタグはそもそも上のコードと連結していたものです。なので自分がやってることは本来完結してる文に句読点をつけて同じ処理を書いてるのだと思います。
エラーにかけるとreturn $first_img;の後ブロック閉じるとしたのendiタグはいらないといわれます。
しかし消してしまうと<span></span>の内容は表示されません。なぜなら上の文と合わせてphpが完結していたのに、自分が加えた余計なコードでphp処理が完結してしまうため後の処理が消えてしまうせいです。

functionに書くやり方ですとreturnをかいて別のphpファイルに書いてますが、そもそも他サイトから情報をもらってRSSを表示するならfunctionを通さないはずです。
0035デフォルトの名無しさん (ワッチョイ df02-G4Yb)
垢版 |
2021/05/04(火) 00:13:57.09ID:yFx0moer0
>>33
>本来完結してる文に句読点をつけて同じ処理を書いてるのだと思います。

>>32 前者のコードはfunctions.php内の関数内の処理なのだからreturnで値返すよね
それを後者の関数では無いプラグインの処理をベースにしてreturnするって、おかしいと思わない?

後者のコードでempty($first_img)で判別してるんだから、ある場合と無い場合でそれぞれ処理して終わる話では?(あくまでプラグイン作ってるとしたらの話)
0038デフォルトの名無しさん (ワッチョイ e724-eh0L)
垢版 |
2021/05/04(火) 01:40:40.07ID:i9uz7Z8I0
>>34
そのスクリプトではXSSの問題はおきない
よってhtmlspecialcharsは不要
htmlspecialcharsは外から入ってきた変数を直接出力するようなときに使う
例えば echo "こんにちは{$_POST['name']}さん" は使わないとだめ

ちなみにintvalは"A"は0になるし"1A2"は1になるので
「0・1・2のいずれかの数字を半角で入力して下さい」なんて言うのであるならば
こんな適当な関数は使ってはだめ
そこは普通にstrで受けていいしhandtypeにもstr渡せばいいだけ
んでhandtypeで"0"〜"2"じゃなかったときにfalseでも返して
handtypeからfalseが返ってきたらexitすりゃいい
0039デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/04(火) 01:43:50.15ID:qBuN3ovAM
>>35
このコードではプラグインは使ってません。simplepieでRSSを取得しているようです。
まず記事のサムネイルを取得します。それがない場合1番目の画像を代わりに取得します。
自分がこれに付け加えたいのは、その1番目の画像がない場合にサムネイルを自分で取り付けることです。
勉強不足で申し訳ないのですが、具体的にどのコードを書き換えてどのような修正が必要なのでしょうか?
0040デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/04(火) 01:45:49.53ID:qBuN3ovAM
なんとかコードを完成させたい気持ちはありますし。途中で投げ出す気もありません。
004134 (ワッチョイ c71d-TNk6)
垢版 |
2021/05/04(火) 01:58:27.33ID:q/VBEoPh0
>>38
助言ありがとうございます

handtype関数はコンピュータの手(int型)にも利用するので
引数はint型にしたんですが…


intval()を使う所で、(int)とキャストするのは悪手ですか?
どっちにするか少し迷ったんですが
0043デフォルトの名無しさん (アウアウクー MM5b-FYM5)
垢版 |
2021/05/04(火) 04:27:30.04ID:blbvBx1gM
>>42
すみません… つまり画像がある記事とない記事の処理を分けてRSSで召集するのが早いってことですかね?
0044デフォルトの名無しさん (アウアウクー MM5b-FYM5)
垢版 |
2021/05/04(火) 04:32:49.84ID:blbvBx1gM
エンジニアの方が書いてるブログがありましたが、処理を分けるのはかなり難しいとありました。
やはり画像がないサイトとは提携しないのが良いのでしょうか…
0045デフォルトの名無しさん (アウアウクー MM5b-FYM5)
垢版 |
2021/05/04(火) 04:48:08.45ID:blbvBx1gM
知恵袋の回答者さんが答えてくれたコードは自分でも考えついたのですが、
<php
if(empty($first_img)) $first_img = "/images/default.jpg";
?>

結局<span class="thumbnail2"> <img class="heit6" src="<php echo esc_attr( $first_img ); ?>" alt="" /> </span> <php endif; ?>
このphp endifまでで1番が一括りになってるので途中で画像に別のサムネイルをつけるという処理をオプションでつけられません。
おそらくA(サムネイル画像)or B(サムネイルがなく1番目の画像を使ったもの) or C(A & Bに当てはまらない画像がそもそもないもの) に分類されて。
endifまでにif文でAに属するもの→Bに属するもの→3番目の処理をendifのあとに書くのではないかと思ってます。
0047デフォルトの名無しさん (ワッチョイ e724-eh0L)
垢版 |
2021/05/04(火) 04:54:00.37ID:i9uz7Z8I0
>>41
> handtype関数はコンピュータの手(int型)にも利用するので
> 引数はint型にしたんですが…
逆にそっちをstrにキャストすればいいだけでは?(string)rand(0,2)

intキャストしたところでintvalと結果は同じだから>>38の問題はなおらないよ
適当なの入力してグーになるのは想定してない文字を入力するお前が悪い!
ってなら別にそれでもいいけど普通はバグとみなされる
0049デフォルトの名無しさん (ワッチョイ df02-G4Yb)
垢版 |
2021/05/04(火) 05:55:37.74ID:yFx0moer0
>>45
define('NO_IMAGE', '/images/default.jpg');

include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed('https://adgene.net/feed/');
if (!is_wp_error($rss)) {
$maxitems = $rss->get_item_quantity(2);
$rss_items = $rss->get_items(0, $maxitems);
}
if (!empty($maxitems)) {
if ($maxitems == 0) {
echo 'データがありませんでした.' . '<br>';
} else {
foreach ($rss_items as $item) {
echo $item->get_date('Y.m.d') . '<br>';
echo $item->get_permalink() . '<br>';
$first_img = '';
if (preg_match('/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi', $item->get_content(), $matches)) {
$first_img = $matches[1];
} else {
$first_img = NO_IMAGE;
}
echo esc_attr($first_img) . '<br>';
echo $item->get_permalink() . '<br>';
echo $item->get_title() . '<br>';
}
}
}
0051デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/04(火) 13:31:40.12ID:blbvBx1gM
>>49
訂正確認させてもらいました。ありがとうございます。ただ自分が目指すのはあくまでhtmlで形にすることですので、これだと実用できません。どうすればよいのでしょうか?
0053デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/04(火) 13:41:03.60ID:blbvBx1gM
https://yugiou.me/
作成中のサイトはアダルトサンプルサイトです。
0054デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/04(火) 13:44:48.51ID:blbvBx1gM
中身はもともとサンプルサイトだったのですが、アニメサイトに変える予定です。
0055デフォルトの名無しさん (ワッチョイ df7c-OedE)
垢版 |
2021/05/04(火) 14:01:58.95ID:wdzHnAM+0
>>52にも指摘されているけど、自分で出来ないなら仕事としてメンテナンスや改修を依頼するなど
した方が良いと思う
もしあなたがその立場だとしたら仕事が出来ないという事を伝えた方がいい
0056デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/04(火) 14:02:48.68ID:blbvBx1gM
>>51
ここから自分の理想の左に画像右に抜粋表示の形に持っていくのは非常に困難なので依頼を出すかプラグインを購入します。
コードを考えて教えてくださりありがとうございます。
0057デフォルトの名無しさん (ワッチョイ df02-G4Yb)
垢版 |
2021/05/04(火) 14:18:43.33ID:yFx0moer0
>>51
>これだと実用できません。どうすればよいのでしょうか?

echoしてる箇所箇所に自分で好きなタグ差し込めばいいだろ?
あなたがどんなタグ使うかどんなclassで装飾するかなんて誰もわかんよ

>>56
>非常に困難なので

仮にこれでhtml出力できてもfunctions.phpの使い方が間違ってるから次は「任意のタイミング出力したいですがどうすれば」とか言い出すのが目に見えてる

金で解決が正解、お疲れ様
0058デフォルトの名無しさん (ワッチョイ a72c-zL94)
垢版 |
2021/05/04(火) 15:29:53.83ID:Z3Fw33AT0
>>51
>ただ自分が目指すのはあくまでhtmlで形にすることですので

別のファイルにモジュール化して、
HTML で、その関数を使えば?

例えば、Ruby on Rails では、
ヘルパー用のファイルに、自分でヘルパー関数を定義すると、
自動的に読み込まれて、定義したヘルパー関数を、HTML 内で使えるようになる
0061デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/04(火) 16:35:23.70ID:blbvBx1gM
もう一点質問があるのですが、個別ページをプラグインで表示している場合 検索欄を設置しても検索結果は改造前のデザインが表示されてしまいます。
wordpressで検索欄とプラグインで作った個別ページを結びつけることは可能でしょうか?
0063デフォルトの名無しさん (ワッチョイ c71d-TNk6)
垢版 |
2021/05/04(火) 18:20:25.60ID:q/VBEoPh0
また質問させて下さい
郵便番号から住所を検索して表示するアプリを本に従って作っているのですが、
GETで得た値を途中でint型にキャストする理由が分かりません
文字列で送られてくるのだからそのままでいいと思うのですが…

コードは以下です
https://pastebin.com/ERrUf4Ga
0064デフォルトの名無しさん (ワッチョイ e724-eh0L)
垢版 |
2021/05/04(火) 18:41:34.91ID:i9uz7Z8I0
>>63
初心者向けだからってそんな酷い本あるの?
おそらく$_GET['zip']に変な文字入れられても
とりあえずintにキャストしておけば無害化できるとか
そんな安直な思考やってるんだろうけど
こんなやり方はバグの温床になるだけ
ちゃんとバリデーションすべきだね
0065デフォルトの名無しさん (ワッチョイ bfad-TNk6)
垢版 |
2021/05/04(火) 18:45:46.00ID:3mVKEEbM0
>>63
キャストする理由が無いのでその本がおかしい
そのコードはintにキャストした後、文字列結合する為にすぐstringにキャストされてる

さらに言うと0から始まる郵便番号をintにキャストすると0埋めが消えるのでただのバグにしからならない
例えば北海道北区の郵便番号 '001-0000' をintにキャストすると 1 になって最終的にこうなる
https://zipcloud.ibsnet.co.jp/api/search?zipcode=1
0066デフォルトの名無しさん (ワッチョイ 877c-0RyI)
垢版 |
2021/05/04(火) 18:55:00.43ID:105dsh2D0
>>63
糞本のタイトル教えてください
006763 (ワッチョイ c71d-TNk6)
垢版 |
2021/05/04(火) 19:05:36.40ID:q/VBEoPh0
答えてくれた方、ありがとうございます

>>64
バリデーションの項目は、後のページに記述されているみたいです

>>65
それは困りますね…

>>66
これだけでクソ本かを判断してもらいたくないですが、
MdNコーポレーションの本です
0068デフォルトの名無しさん (ワッチョイ 2734-EFEA)
垢版 |
2021/05/04(火) 19:32:59.61ID:oSclcFmd0
>>67
コード見たけど紛れもない糞本
PHPってほんとロクな本がないから、他の言語の基礎がない人がいきなりPHPやると罠にハマりやすい

他の人も書いてる通り、安易な型キャストはバグや脆弱性の元になるから絶対にやったら駄目
具体例として有名なのは以下のWordPressの脆弱性
https://blog.tokumaru.org/2017/02/wordpress-4.7.1-Privilege-Escalation.html
006963 (ワッチョイ c71d-TNk6)
垢版 |
2021/05/04(火) 19:46:58.61ID:q/VBEoPh0
>>68
警告をしてくれたことには感謝します

ですが俺はこの本は(入門本としては)悪い本だとは思わないので
しばらく続けようと思います
0072デフォルトの名無しさん (ワッチョイ 2734-EFEA)
垢版 |
2021/05/04(火) 21:42:23.00ID:oSclcFmd0
俺はPHPも好きだからあんま悪くは書きたくないが、まぁPHPerが馬鹿にされる理由がこういうレスから何となく分かるのは確か
他の言語の経験がない初学者だからこそ、「型」みたいな「基礎的な概念」の理解が大事なんだがな

PHPの本人はマジでウンコだらけだよ
公式のPHPマニュアルの出来は素晴らしいが
0073デフォルトの名無しさん (ワッチョイ bfad-TNk6)
垢版 |
2021/05/04(火) 21:43:46.75ID:3mVKEEbM0
>>69
所詮は入門本だから深く考えずにその本の通りにやって良いと思うよ
ただその本を読んでて >>63 の時のように「あれ?」って思ったら本の解説が悪かったのかもしれないから、今回のように改めて聞くなり調べたほうがいいと思う
007463 (ワッチョイ c71d-TNk6)
垢版 |
2021/05/04(火) 23:25:42.85ID:q/VBEoPh0
>>70
いえ、アドバイスを無視はしてません
全て自己流でやるつもりもありません

ただ本に関しては、お金を出して買ったものですし、
俺のフィーリングとはマッチするので、勉強をストップはしないというだけです

>>72
ありがとうございます
辛口ですね

>>73
とても寛容な方ですね
ありがとうございます
0076デフォルトの名無しさん (オッペケ Sr5b-FYM5)
垢版 |
2021/05/05(水) 01:00:20.49ID:nLfsJ5FLr
jquearyをword pressで使いたくても準備の段階でいつも躓くんですよね
環境の設定がうまくいかない、どこを調べてもサポートが載ってない エラーをiniで調べてもわからない。
結局JavascriptとPHPで作らないといけない。
JavascriptやPHPで勉強する為にはまず自分のやりたいことを調べる→コードを見つける→加えたいコードについて調べる→加える部分の文法を調べる→文法に合わせて加えたいコードを変える
これでいいのでしょうか?
0077デフォルトの名無しさん (ワッチョイ df52-FRJu)
垢版 |
2021/05/05(水) 01:23:29.52ID://JWI9di0
>>76
それじゃすぐに行き詰まって挫折するか、進めたとしてもコピペで切り貼りしないとプログラムが書けない最底辺のプログラマになりそう。
基本的な文法や流れを入門書で一通り学んでから作りたいものを作ることに取りかかった方がいいと思うよ。
0078デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/05(水) 02:11:13.71ID:0GVtuCHcM
自分の分析ではhttps://designsupplyweb.com/media/knowledgeside/5563/
のように。
<php if( 条件A ): ?>
<!-- 条件Aの処理 -->=サムネイルを取得する方法?
<php endif; ?>
<!-- 条件Bの処理 -->=サムネイルがない場合、記事の1番目の画像を取得する方法?

つまり
<php endif; ?>
</a>
<div class="cell medium-79">
<a class="name21" href="<php echo $item->get_permalink(); ?>">
<php echo $item->get_title();// タイトル ?>
</a>
と書くことでパーマリンクとタイトルの抜粋を取得しているのではないかと考えました。

先ほどご回答いただいたRSSについて少し理解ができました。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13242533143
0079デフォルトの名無しさん (アウアウクー MM5b-FYM5)
垢版 |
2021/05/05(水) 02:39:25.83ID:0GVtuCHcM
ifより下にサムネイルを取得する方法(A)

else?より下にサムネイルがない場合1番目の画像パーマリンクタイトルを取得する方法(B)
endifより下にサムネイル(A)、記事の1番目の画像がない場合(B)の取得方法(C)

こういう風な書き方だと考えました。
0081デフォルトの名無しさん (ワッチョイ a72c-zL94)
垢版 |
2021/05/05(水) 14:53:48.11ID:Dw+PnwkB0
>>76
Ruby on Rails なんて、未経験者1年ぐらいで、10年以上のプロよりも上!

WSL2, Docker Compose, Node.js, Bootstrap, CircleCI、データベース、
VSCode(拡張機能・Remote WSL, Remote Container)

さらに、YouTube のKENTA のサロンでは、
AWS Fargate, React, Vue.js

KENTA が教育革命を起こした
0084デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/05(水) 20:13:49.37ID:VRLPB9Rcr
どうしても最後に1件だけ教えてもらいたいことがあります。
<php
$first_img = '';
if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi',
$item->get_content(), $matches )
) { $first_img = $matches[1]; } ?>
<php
if(!empty($first_img)) $first_img = "/images/default.jpg";
?>
<span class="thumbnail2">
<img class="heit6" src="<php echo esc_attr( $first_img ); ?>" alt="" />
</span>
<php endif; ?>
0085デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/05(水) 20:14:07.11ID:VRLPB9Rcr
if文としては下記の記述方法だけです。

1.
if (条件式)
実行する文;

2.
if (条件式) {
実行する文ブロック
}

3,
if (条件式):
実行する文ブロック
endif;

エラーの内容は
if (empty($first_img)) $first_img = "/images/default.jpg";で構文は完結しているのに、

<span class="thumbnail2">
<img class="heit6" src="<php echo esc_attr( $first_img ); ?>" alt="" />
</span>
<php endif; ?> 同じ内容の構文を二度書いているのかというものでした。

ここからは持論ですが、<span></span>の前に<php if>と付け加えることで<php endif; ?>のエラーは起きず、
サムネイルがない場合の処理は正常に機能するのではないかと考えました。
0086デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/05(水) 20:23:39.13ID:VRLPB9Rcr
サムネイルがある場合の処理は
<php
$first_img = '';
if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi',
$item->get_content(), $matches )
) { $first_img = $matches[1]; } ?> で完結してます。

<php
if(empty($first_img)) $first_img = "/images/default.jpg";
?> でサムネイルがない場合の画像の表示は成功してます。

<span class="thumbnail2">
<img class="heit6" src="<php echo esc_attr( $first_img ); ?>" alt="" />
</span>
<php endif; ?>は <php endif; ?>が構文重複を起こしているため削除すると、

以下のサムネイルがない場合のパーマリンク、タイトルの処理が無効になります。

<span class="thumbnail2">
<img class="heit6" src="<php echo esc_attr( $first_img ); ?>" alt="" />
</span>
<php endif; ?>
</a>
<div class="cell medium-79">
<a class="name21" href="<php echo $item->get_permalink(); ?>">
<php echo $item->get_title();// タイトル ?>
</a>
</div></div><!-- 記事中の1枚目の画像を取得終了-->

<php endforeach; ?>
</div>
<php endif; ?>
0087デフォルトの名無しさん (オッペケ Sr5b-/um6)
垢版 |
2021/05/05(水) 20:24:45.03ID:VRLPB9Rcr
今回で最後にします。連投すみません。どうしてもコードを調べてスキルアップしたく、ご質問しました。
0090デフォルトの名無しさん (ワッチョイ df02-G4Yb)
垢版 |
2021/05/05(水) 22:22:19.87ID:CkXeLifR0
>>87
だから自分でブロック追えるようになるまでHTMLタグ除去していきなって
それでコード追えたら望みの処理加えてタグ戻すだけだろ?

初心者がろくに手も動かさずにあれこれ推測したって1mmもスキルアップしないよ
0091デフォルトの名無しさん (オッペケ Sr5b-FYM5)
垢版 |
2021/05/05(水) 22:44:46.51ID:VRLPB9Rcr
>>90
つまりPHPの処理を書いてからhtmlは後付けしなさいということでしょうか?
009481 (ワッチョイ a72c-zL94)
垢版 |
2021/05/06(木) 12:37:29.96ID:b7Mkjg0R0
>>81
に書いたけど、Ruby on Rails では、
未経験者が1年ぐらいで、10年以上のプロよりも、技術力が上になる!

それは、KENTA も言ってるように、Rails の教育体制があるから

Rails 6 だけでも数冊の本が出る。
他にも、Rails ガイド・Rails チュートリアルなど

一方、WordPress では、まともな本が無い。
デザインの本ばかりで、プログラミングする本が無い

教育体制がないから、勉強もできない。
だからKENTAも、PHP は、やる必要がないと言ってる

ちなみに、WordPressのスレは、web制作管理板の方にある。
このスレよりも、そちらで聞いた方がよい
009581 (ワッチョイ a72c-zL94)
垢版 |
2021/05/06(木) 12:58:09.14ID:b7Mkjg0R0
>>85
if (条件式)
実行する文;

この1. のif は、挙動が怪しい。
endif が無いのか、構文が次へ続くのか、はっきりしない

素人は、使わない方がよい。
バグるだけ
0096デフォルトの名無しさん (ワッチョイ 0708-mIzA)
垢版 |
2021/05/06(木) 15:13:01.82ID:vADWO+XJ0
アホー知恵遅れにこんな質問があったが、このスレの奴じゃね?w

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11242758436
テラテイルでプログラミングのわからないところを質問すると高確率でもう批判されます。
知恵袋民は親切で優しいのに何故テラテイルは尖った人が多いのでしょうか?
0098デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/06(木) 18:32:23.80ID:eFqM4kkiM
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13242533143
アドバイス コード修正をいただいて無事コードを作成できました!
とても勉強になりましたし、構文を知れべて自分でつくりながらアドバイスをもらっていけば、コードの修正は可能だと思いました。
セキュリティ等は素人なためプラグインのみの対策になると思います。
0099デフォルトの名無しさん (アウアウクー MM5b-/um6)
垢版 |
2021/05/06(木) 18:34:16.25ID:eFqM4kkiM
複数回の質問は迷惑をおかけしましたが、もう少しおだやかにお願いします。
0100デフォルトの名無しさん (アウアウカー Sa3b-FRJu)
垢版 |
2021/05/06(木) 18:49:02.57ID:JK9SHRy4a
>>98
本当に勉強になったのか?
リンク先を流し読みしかしてないけど、回答者から正解をもらって、そのままやればいいところを理解不足のために勝手な改編をして回答者のアドバイスを無視する形になって、そのままごちゃごちゃやってるうちに結果的に動いたというだけでないの?
0104デフォルトの名無しさん (アウアウクー MM5b-FYM5)
垢版 |
2021/05/06(木) 19:20:27.71ID:eFqM4kkiM
>>100
はい、勉強になりました。アドバイスを自分なりに調べてそのあとコードにしました。
コードも1つ1つ丁寧に調べました。
0105デフォルトの名無しさん (アウアウクー MM5b-FYM5)
垢版 |
2021/05/06(木) 19:21:24.77ID:eFqM4kkiM
構文と1つ1つのコードを両方調べましたので。
0106デフォルトの名無しさん (ワッチョイ aa71-DjaX)
垢版 |
2021/05/08(土) 06:09:43.42ID:L6ON1lDZ0
PHP8の参考書っていまのところこの3冊くらいだけ?

初心者からちゃんとしたプロになる PHP基礎入門〈PHP8対応〉
2021/3/2

独習PHP 第4版
2021/6/14

スラスラわかるPHP 第2版
2021/6/21

独習買うかぁ。。
0108デフォルトの名無しさん (アウアウウー Sa1f-nFSz)
垢版 |
2021/05/09(日) 22:39:40.75ID:QFMWrYCLa
最近のteratailひどいと思います。
Yahoo!知恵袋だと丁寧に教えてくれますが、teratailを見るとコードを盗もうとしてるとしか思えません。
1つ1つ調べていけば誰だってコードをほぼ完成まで書けるはず。
それを少し指摘して、コードを盗む気満々じゃないですか。
0111デフォルトの名無しさん (アウアウウー Sa1f-nFSz)
垢版 |
2021/05/09(日) 23:09:32.06ID:HRmcdH49a
>>109
数年前の回答率と比べても教える人が減っているのは明らか
それに回答の正確さも落ちている、どう見てもひどいです。
0113デフォルトの名無しさん (アウアウウー Sa1f-nFSz)
垢版 |
2021/05/09(日) 23:11:18.03ID:iI4vdA3ra
>>110
自分と同じことを過去に書いている方が5〜6人いましたがどれも解決していない。
それに閲覧数に比べて回答が少なすぎる
0114デフォルトの名無しさん (ワッチョイ 8a52-KFFl)
垢版 |
2021/05/09(日) 23:28:45.08ID:kUoJObmB0
>>113
どんな質問か知らんが、解決しないのは解決に足るだけの意味のある情報を質問者が提示できてないケースが大半だろう。
閲覧数にたいして回答者数が少ないのも同じ理由。解決に必要な情報が足りてないか、もっとひどい場合には、質問の内容からこいつは話の通じない奴と思われて、相手にされてないんだろう。
0116デフォルトの名無しさん (アウアウウー Sa1f-nFSz)
垢版 |
2021/05/10(月) 00:47:19.87ID:2QvdpAMsa
>>114
ありがとうございます。今後わからない時はこのスレを利用させてもらいます。
0118デフォルトの名無しさん (ワッチョイ 732c-C7Xb)
垢版 |
2021/05/10(月) 23:04:25.33ID:ViCp850r0
質問の意味が分からないとか、
漠然とした事・抽象的な事を質問してるとか、

要点だけを聞かずに、関係のない部分も含めているとか。
数行のコードで済むはずなのに、10行以上書いてる香具師とかいる

要点と関係ない部分を、書いてはいけない

たいていは質問者が悪い。
具体的で、要点だけを聞くべき
0122デフォルトの名無しさん (ワッチョイ ea82-IbTx)
垢版 |
2021/05/12(水) 20:37:31.63ID:Ux15IMaX0
>>106
どれも変わらん。どれか一冊買って使い倒すのが良かろう。

例えば、あのphpの本あかんから別のphp本買うってなったら
もうその人はphp使える人では無くなる。

このままでは、↓のスレ主みたいな事になるぞ。
そうなってしまうと、あなたはものすごく不幸にだろう。
https://medaka.5ch.net/test/read.cgi/dame/1617355161/

他人の不幸で飯が旨いって言うけど
いくら何でも限度があるわ。
そうならない事を切に願う・・・
0124106 (ワッチョイ aa71-DjaX)
垢版 |
2021/05/13(木) 00:58:28.68ID:eg0K6B+N0
あのさぁ・・・
俺が聞きたかったことは
「PHP7対応の書籍が他にある?」かであって、
どれがいいかなんて聞いてない

ハァ〜〜〜〜〜〜(クソデカため息)

話が通じない人間って、
ホンッット、人の話を聞かないよな
0126デフォルトの名無しさん (ワッチョイ ea82-IbTx)
垢版 |
2021/05/13(木) 07:20:11.85ID:coUjx+ix0
  どうしてこんなになるまで放っておいたんだ!
   三           三三
        /;:"ゝ  三三  f;:二iュ  三三三
  三   _ゞ::.ニ!    ,..'´ ̄`ヽノン
      /.;: .:}^(     <;:::::i:::::::.::: :}:}  三三
    〈::::.´ .:;.へに)二/.::i :::::::,.イ ト ヽ__
    ,へ;:ヾ-、ll__/.:::::、:::::f=ー'==、`ー->>123,124
  . 〈::ミ/;;;iー゙ii====:::::::.` Y ̄ ̄ ̄,.シ'=llー一'";;;ド'
    };;;};;;;;! ̄ll ̄ ̄:::::::::.ヽ\-‐'"´ ̄ ̄ll
0127デフォルトの名無しさん (スッップ Sd8a-v7+d)
垢版 |
2021/05/13(木) 19:51:06.45ID:TYrG9hF3d
恐れ入ります。。
下記実装で悩んでおりまして、、

一度ログイン認証に成功したユーザーについて、そのユーザーがどのページに遷移しても
ユーザーIDのようなものをページのURLにくっつける仕組みを考えております

何か良い案はありますでしょうか?
お知恵拝借したく。。
0128デフォルトの名無しさん (ワッチョイ 73a7-gUNg)
垢版 |
2021/05/13(木) 20:36:02.84ID:XqtV/lgG0
>>127
結論からいうとURLに入れる必要は全くないし入れるべきではないんだけど
ログイン認証実装で当たり前の知識として
セッションという言葉が出てくるのだけどセッションってわかる?
0129デフォルトの名無しさん (ワッチョイ 732c-C7Xb)
垢版 |
2021/05/13(木) 20:48:38.42ID:NATYYilK0
Ruby on Rails では、セッションを使う

本来、HTML のページには連続性が無い・1回限りのものだから、
それを同じ人が連続してアクセスしているように見せる概念を、セッションと言う

セッションでは、このアクセスは、5分前にアクセスしたA さんだよね、と判別できる
0131デフォルトの名無しさん (スッップ Sd8a-v7+d)
垢版 |
2021/05/13(木) 23:38:44.73ID:TYrG9hF3d
>>128
>>129

お二方誠に恐縮です。有り難うございます。
セッションに保持ということですね。
勉強不足でした。

あとは、ユーザーがページに飛ぶごとに
セッションに保持したIDをくっつける、、

ひゃー どうしよ 難しそう
0133129 (ワッチョイ 312c-S5yT)
垢版 |
2021/05/14(金) 00:50:25.47ID:QMgVBpCt0
Ruby on Rails では、セッションキーをURL に付けたりしない。
たぶん、フォームの隠しフィールドか何かに入れて、サーバーへ送って確認する

セッションキーは、ブラウザのcookie に入っているから、F12 開発者ツールでも見れる

ログイン・セッションみたいな機能は、自作するものではない。
普通、Rails みたいなフレームワークを使う

フレームワークの最初が、ログイン機能の説明
0134デフォルトの名無しさん (スッップ Sd2f-bAGF)
垢版 |
2021/05/14(金) 10:47:01.28ID:ajnT/ZT0d
PHPといいますか
APIは、どのように定義して使うものでしょうか? API自体未経験でして。
コントローラ配下に置く?
0135デフォルトの名無しさん (スッップ Sd2f-bAGF)
垢版 |
2021/05/14(金) 10:47:53.07ID:ajnT/ZT0d
定義と、それの引き出し方(利用するときの記述の仕方)が不明でして
0139デフォルトの名無しさん (スッップ Sd2f-bAGF)
垢版 |
2021/05/14(金) 18:00:45.30ID:ajnT/ZT0d
>>136
恐れ入ります。ご教授有り難うございました
0140デフォルトの名無しさん (スッップ Sd2f-bAGF)
垢版 |
2021/05/14(金) 18:01:16.49ID:ajnT/ZT0d
>>137
なるほど、、ちょっと発想が違ったやうです
誠に有り難うございました!!
0141デフォルトの名無しさん (ワッチョイ e91d-JrGs)
垢版 |
2021/05/14(金) 23:35:06.21ID:jVp+ssGw0
XAMPPのMySQLのAdminをクリックしたら、
Fatal error: Maximum execution time of 120 seconds exceeded in C:\xampp\phpMyAdmin\libraries\classes\OutputBuffering.php on line 171
と表示されてしまいました
どう対処すればよいでしょうか?
色々検索してみたのですがいまいちよく分かりませんでした
0142デフォルトの名無しさん (スッップ Sd2f-bAGF)
垢版 |
2021/05/15(土) 12:14:03.19ID:JdcAefgZd
UNIXtimeを数値に変換したいのですが
どのようにすれば、、
情けない質問でスミマセン
0143デフォルトの名無しさん (ワントンキン MM9f-uaXl)
垢版 |
2021/05/15(土) 14:00:28.25ID:YuiGgBpOM
そんくらい調べたらどうなんだい…?
php unixtimeで調べればマニュアルのtime関数にたどり着くでしょう?
んでこいつの返り値はintって書いてるんだからこいつが正解よ
数値がfloatさすなら参考関数のmicrotime関数辿ってみればこいつだなぁってのがわかる
0146デフォルトの名無しさん (スッップ Sd2f-bAGF)
垢版 |
2021/05/15(土) 20:03:18.67ID:JdcAefgZd
そうでしたか、、お恥ずかしい
0149デフォルトの名無しさん (スプッッ Sddb-bAGF)
垢版 |
2021/05/17(月) 21:27:55.47ID:dCClJgVhd
恐れ入ります。。マイグレーションにて
あるカラムに
$table = integer('uniq_id')->length(20)

にしたのに、このカラムの桁数が何故か11で
各レコードごとに入れている値が
何故か全部2147483647がセットされていた

なにをどうやっても、この値のまま
update文にセットする直前の値は
想定通りの値なのに、、
0150デフォルトの名無しさん (スプッッ Sddb-bAGF)
垢版 |
2021/05/17(月) 21:36:36.84ID:dCClJgVhd
スミマセン。自己解決しました。
登録しようとしてた数値が全部デカイ
ものばかりで、オーバーフローになって
それを表示してただけでした。
お恥ずかしい
0154デフォルトの名無しさん (ワッチョイ c75d-LNyB)
垢版 |
2021/05/23(日) 19:53:27.42ID:83ibJO/A0
Nodejs AWSは絶望したけどPHP さくらインターネットはすんなりできたわ。
0155デフォルトの名無しさん (ワッチョイ 275f-2SPt)
垢版 |
2021/05/24(月) 11:04:23.66ID:qQRUQj1u0
type hintingを自動で入れてくれるIDEか
コマンドラインから使えるライブラリってありませんか?
公文チェッカーでtype hintingを指摘されるんですけど
毎回自分で記述するのが面倒なのです
0156デフォルトの名無しさん (ワッチョイ 0332-gwqZ)
垢版 |
2021/05/24(月) 23:57:08.18ID:QCFa71A50
昔大学の卒業研究でPHPでデータベースを扱う感じのプログラムを組みました
周りの人全員がMYSQL等のRDBMSを使っていたので、ちょっと違うことをしてみようかなとRDBMSではなく、テキストデータベース…CSVファイルを分割して表にして扱う感じにしました
CSVでもリレーショナルデータベースは作成できるし、わざわざMYSQLと連携しなくても使えます
それぞれのデータを配列に格納すれば、追加や削除等もできます
MYSQL等は専門的な知識がある人しか触れませんが、CSVの場合はただのテキストデータなので文字が打てる人なら誰でも編集可能です
なのにPHP等でデータベースを組むときにほぼ100パーセントRDBMSが使われる理由は何故でしょうか
CSVデータベースより勝ってる所はなんでしょうか?
CSVをforeachとexplodeで配列に格納してarray_searchやarray_spliceその他の配列操作で検索したり削除したりってしてはだめなのでしょうか?

ってこれだとデータベースの質問になってる…?
0157デフォルトの名無しさん (ワッチョイ 5ba7-lZiV)
垢版 |
2021/05/25(火) 00:55:12.31ID:OCfeEYNR0
規模によるとしか言えないが
何百万、何千万レコードになると配列操作とかメモリが足りなくなるか
うまくメモリ管理した上でやっても爆遅で現実的に使い物にならずデータの管理も大変
MySQLは設定が大変なあなたのために組み込みのSQLiteが用意されてるのでそれを使ってください

SELECT文で高度な選択するときに長ったらしく難しそうなSQL書く場合はあるけど
素人が編集ってSQLでもINSERT文、UPDATE文ぐらいのもんだし
(これらでもサブクエリでSELECT文書いたりするかもしれないが必須ってわけではない)
専門的な知識が要求されるほど難しい操作じゃない
そもそもそんな素人にSQLを直接書かせて実行させるようなことはまずしない
CMSでよく見られるようにそういう人向けに玄人が管理画面(UI)を提供すべき
0160デフォルトの名無しさん (ワッチョイ 5ba7-lZiV)
垢版 |
2021/05/25(火) 05:32:49.12ID:OCfeEYNR0
規模によるというのは誤解を招く表現だったね
まず小規模であってもインデックスされたRDBのほうが動作は格段に早い
キャッシュ使えばだいぶましになるだろうが
CSVは基本的に都度ファイルの内容を全部読み込む必要があるってのは恐ろしいこと
データが壊れないようトランザクションやらデッドロック回避するための処理も自分で書かないといけない
探せば誰か作ってるのかもしれないけどおとなしくRDB使ったほうが得策
0161デフォルトの名無しさん (スフッ Sdba-+uhp)
垢版 |
2021/05/25(火) 09:25:35.01ID:nqZ7AMuGd
偶然10年ほど前の卒業研究のプログラムを見つけたから質問してみたのですが、なるほど…
もしかしてflock関数でCSVファイルをロックするだけでは不十分でしたか?
0163デフォルトの名無しさん (ワッチョイ 4e10-7S+s)
垢版 |
2021/05/25(火) 11:36:19.63ID:i4fgZWTV0
ブロック崩しを作成しようと思い、サイトを見ながら作っているのですが、上手くいかなくどうしようもなくなったので、ご教授いただけると幸いです。
ブロック崩しは、2人で行えるようバーを二つ設置し、「Excel Gamer 」を参考にバーを二つにし、ブロック数を525、横幅を500縦を450に設定しました。
現在はCrossPoint.X = (b1 * c2 - b2 * c1) / (a1 * b2 - a2 * b1)でオーバーフローが発生し、直しようがなくなりました・・・
お力を貸していただけると幸いです。
0164デフォルトの名無しさん (ワッチョイ 4e10-7S+s)
垢版 |
2021/05/25(火) 11:38:54.70ID:i4fgZWTV0
163質問場所を間違えました。申し訳ありません。
0166デフォルトの名無しさん (ワッチョイ da7c-4P7j)
垢版 |
2021/05/26(水) 06:54:00.59ID:69csG91U0
PC初心者ならWindowsの方が分かりやすい気がする
XAMPPは普通にインストールするだけで動くので楽
(勿論XAMPP Controll Panelを起動してApacheや必要ならMySQLのサービスはStartさせないと動かないが)
0167デフォルトの名無しさん (ワッチョイ 5b2c-5BAZ)
垢版 |
2021/05/26(水) 07:12:17.10ID:XGTO2klA0
>>156
DB は2分探索だから、計算量がO(log N)

ある行を探す際、線形探索なら千行は千回だけど、
2分探索なら、2^10 = 1,024 だから、10回で探索できる

その代わり、インデックスが必要。
DBは、探すのに特化してる
0168デフォルトの名無しさん (ワッチョイ 5b2c-5BAZ)
垢版 |
2021/05/26(水) 07:24:40.58ID:XGTO2klA0
Windows 10 Home, WSL2, Linux, Docker,
VSCode(拡張機能・Remote WSL, Remote Container)もある。

Windows Home版でも、Dockerを使えるようになった。
でもプリインストールなら、Pro版は5千円ほど

WSL2 はハイパーバイザーで、本物のLinux サーバーが動く。
ただし、CUI のみ。GUI は無い

CPU は、i-7 みたいに仮想支援機構が必要。
Docker を使うから、メモリは最低でも、16GB は欲しい。
32GBの方が良いけど

Ruby on Rails とかWeb系は普通、Mac で32GB は欲しい。
Vagrant・仮想OS で、Linux, Dockerを使う

Railsで、Windowsで教える学校はない。
10万円の東京フリーランスでも、Macのみ

ただし、最近のMacは、CPU がインテルじゃないらしいから、よく分からないので調べて
0173デフォルトの名無しさん (スプッッ Sd4b-CkxD)
垢版 |
2021/05/27(木) 15:29:26.40ID:wacuw9FKd
初歩的な質問で大変恐縮ですが、

eloquentを使う際
例えば

test1::with(test2)
といった形で書いた場合

両者のモデルを結合するにあたり、両者の
主キー同士で暗黙的に結合される認識で
良いでしょうか??

inner joinとかのように明示的に
on test1.id = test2.idのように書かれていないために不安になりまして。。
0179デフォルトの名無しさん (ワッチョイ 93d9-w12y)
垢版 |
2021/05/28(金) 19:09:27.77ID:2c5MmCLH0
たった5〜6人の仲間でも熱い展開はあるのに
その仲間の輪が極限にまで広がった全員救われ、全員幸せになる完全無欠の大団円エンドは
誰も体験したことがないようなすさまじいカタルシスなんだよ 要はすごいんだよ!

俺はその物語の最強の中心メンバーのこの世界の主人公で、宇宙二位の人気者で
宇宙最強の存在なのだ
皆がキャラ覚醒やヒーロー覚醒していく物語  一番好きな自分になれる物語だ
0188デフォルトの名無しさん (ワッチョイ 59da-n7CU)
垢版 |
2021/06/03(木) 11:58:08.78ID:8LmW0nkV0
宜しくお願いします



↓の分の最後の?が何でしょうか、ワイルドカードの仲間でしょうか


INSERT INTO テーブル名 SET カラム名=?

--------------------------
例:
    $message = $_POST['message'];
    if (strlen($message) >= 1 && strlen($message) <= 200) {
        $statement = $db->prepare('INSERT INTO posts SET message=?');
        $statement->execute(array($_POST['message']));
        echo '投稿を送信しました';
    } else {
        echo '投稿エラー: 200文字以内で入力してください';
    }
0189デフォルトの名無しさん (ワッチョイ 512c-0h5H)
垢版 |
2021/06/03(木) 12:15:29.93ID:Ers5yK+g0
? は、place holder。
それを使わないと、SQL インジェクションされるから危険

例えば、文字列を連結させて、クエリー文を作っていると、
「1=1 or テーブル削除文」みたいに、関係のない文も入れてくる

?を使うと、そういう危険な文をエラーにしてくれる
0190デフォルトの名無しさん (ワッチョイ 59da-n7CU)
垢版 |
2021/06/03(木) 12:19:52.18ID:8LmW0nkV0
>>189
ありがとうございます、勉強になりました

https://i.imgur.com/gaMtNqS.jpg
0191デフォルトの名無しさん (スプッッ Sdf3-n7CU)
垢版 |
2021/06/03(木) 12:36:41.22ID:RiqJ4UERd
広瀬アリスに脳内変換
0197デフォルトの名無しさん (ワッチョイ a11d-9b/0)
垢版 |
2021/06/04(金) 15:59:37.32ID:KWGLQaPU0
preg_match関数は、エラーの時にnullを返すことってあるのでしょうか?
本にそのように書いてありました…

PHPマニュアルによると、原則としてエラーの時はfalseを返すが、
時にfalse相当の別の値を返すこともありうると書いてありました
0198デフォルトの名無しさん (ワッチョイ 4a02-9V+W)
垢版 |
2021/06/04(金) 16:31:57.79ID:cYS3aqAu0
マッチしたら 1
しなかったら 0
エラーの場合 false

エラーかどうかを判定するために
if (!preg_match(...))
なんてことをするとエラーじゃないがマッチしない場合も正として評価されると言うことかと

nullの話は本が間違ってるか、または第三引数に入ってくる値のことかも
0201デフォルトの名無しさん (ワッチョイ a11d-9b/0)
垢版 |
2021/06/05(土) 20:42:13.27ID:D2bNwRnn0
データベースに接続する時についてなんですが、
PDOオブジェクトをインスタンス化する際の第一引数(DSN)では、
文字コードを指定しなくても特に問題ないでしょうか?
本には、
$dbh = new PDO('mysql:host=localhost;dbname=sample_db', (以下略));
と書いてあります
0202デフォルトの名無しさん (ワッチョイ 06bb-62sI)
垢版 |
2021/06/05(土) 21:06:16.71ID:WZ+0wJ8c0
>>201
サーバとクライアントの間で適切な文字コードを設定しないと意図しない挙動を引き起こすことがある
結果として、SQLインジェクションができる場合も

`SET NAMES utf8`とかやるのはダメな例
0203デフォルトの名無しさん (ワッチョイ 4d90-xKLf)
垢版 |
2021/06/05(土) 23:32:10.29ID:aCDMde3X0
初歩的な質問ですいません。
WordPressである変数の値をリンク先の別のファイルでも使いたいのですが、うまく取得できません。どういうキーワードでググったらいいのか教えて下さい。一番簡単な方法がいいです。よろしくお願いします。
0204201 (ワッチョイ a11d-9b/0)
垢版 |
2021/06/06(日) 00:10:06.42ID:OZUQa5NH0
>>202
回答ありがとうございます
… new PDO('mysql:host=localhost;dbname=sample_db;charset=utf8mb4', …);
とした方がいいですか?
0206デフォルトの名無しさん (ワッチョイ c114-xpOm)
垢版 |
2021/06/08(火) 12:31:49.08ID:kOEZc78Z0
さくらインターネットサーバー契約してターミナルで繋いでVimでプログラミングしているんですが
vscodeとかでプログラミングするにはどういうふうな開発環境を整えたらいいんでしょうか
0207デフォルトの名無しさん (スフッ Sdca-RtK3)
垢版 |
2021/06/08(火) 12:50:39.53ID:RYeCuNYXd
mysqli_fetch_assocの質問なのですが"もう存在しない"場合はnullを返す、との事ですが"始めから一行も存在しない"場合でもやはりnullを返すのでしょうか?
自分で試せればいいのですがdbの設計はまだ手をつけてない分野ですのでお聞きしたいです
0210デフォルトの名無しさん (ワッチョイ 152c-3tT5)
垢版 |
2021/06/08(火) 14:11:40.84ID:dOMi6vvz0
>>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 の本も出してる、たにぐちまことも有名
0213210 (ワッチョイ 152c-3tT5)
垢版 |
2021/06/08(火) 16:50:43.18ID:dOMi6vvz0
Ruby on Rails で良ければ、Docker, CircleCI まで含めた動画ある

Udemy の山浦清透、1/15

Docker超入門講座 合併版 | ゼロから実践する4時間のフルコース
https://www.youtube.com/watch?v=lZD1MIHwMBY

Windows 10 Home版, WSL2, Ubuntu 20.04 LTS,
Docker Compose, VSCode, Heroku, Rails, Git, CI/CD, CircleCI
0220デフォルトの名無しさん (ワッチョイ 8610-B62f)
垢版 |
2021/06/09(水) 14:07:19.93ID:suiQmlXU0
Zend→CakePHP→Laravelに代わったように、
フレームワークの移り変わりが一定周期でありますが、
その時に作っていたプログラムはどうなりますか?
なかったことにして、新しいFWで作り直すんですか?

車輪の再発明をFWが出るたびに行っているように感じますが
皆さんはどうしてるか気になります。
0222210 (ワッチョイ 152c-3tT5)
垢版 |
2021/06/09(水) 15:53:02.92ID:w6w52mg40
>>216
以下のスレに書いた

ぶっちゃけ始めるのにいい言語て何 part5
https://mevius.5ch.net/test/read.cgi/tech/1622766330/120-121

Udemy の山浦清透も、PHP・Laravel のおすすめ本は無いと言ってる。
一方、Rails なら、Railsチュートリアル、黒田努の本とか、教育体制が優れている

だから、KENTA も、Railsを推奨してる

優れた教育体制が無いと、効率的に勉強できない。
ドラゴン桜・予備校などと同じ
0229デフォルトの名無しさん (ワッチョイ b95d-+X+v)
垢版 |
2021/06/10(木) 07:13:04.52ID:q2jU2qVx0
PHPで掲示板サイト作ったんだけどアドセンス落ちた…一応ある程度の書き込みもあるのになんでだろ、ちなみに低俗な内容ではない、もっと人集めんと行かんのかね
0231デフォルトの名無しさん (ワッチョイ b908-INBt)
垢版 |
2021/06/10(木) 11:51:36.67ID:wZ1zl+ZN0
>>226
今どき自宅サーバなんかしなくていいよw

月額500円未満で借りられるVPSがあるから、それ使うのがお勧め
レンタルサーバを使うのだけはやめとけ
あんなもん使っても何の勉強にもならんから
0234デフォルトの名無しさん (ワッチョイ 15a7-Fu2c)
垢版 |
2021/06/10(木) 13:26:11.53ID:MBvszo0r0
PHPの勉強がしたい→ローカル
店の宣伝をしたい→レンタルサーバ〜
店の予約管理をしたい・小規模な販売、売上管理をしたい→VPS〜
Webサービスを提供したい・スマホアプリのバックエンド→クラウド
0235デフォルトの名無しさん (ワッチョイ 86f2-AY6T)
垢版 |
2021/06/10(木) 16:59:07.23ID:rgwU/HuH0
以下PHPの2処理があります。

1.CSVアップロードフォームからユーザー操作でアップロードされる
 場合によっては同一ファイルを更新する目的でアップロードされるときもある
 move_uploaded_fileを使用
2.何かしらのトリガーでCSVを読み込んで処理する(書き込みはしない)

この1.2.の処理は何かの決まりを守って順番に実行されるわけではなく、
1.の処理はユーザー操作で不定期に実行されます。
2.の処理は該当ファイルが無ければ実行しませんし、トリガー発行がなければやはり実行しません。

ここで質問ですが、1.2.の処理が同時に実行される可能性があると思いますが、この場合問題が発生するでしょうか?
move_uploaded_fileを使う1.の処理中はファイルがロックされているようですが、2.では読み取りエラーの
処理を強化するだけでいいでしょうか?

よろしくお願いします。
0238デフォルトの名無しさん (ワッチョイ 15a7-Fu2c)
垢版 |
2021/06/10(木) 19:13:16.05ID:MBvszo0r0
同じシステムをフレームワーク変えてまで作り直したりは普通しない
>>221も言ってるけど基本作ったら作りっぱなし
セキュリティに問題があって修正パッチ当てる必要があるとかでない限り
保守は必要最低限にとどめたものになる
0239デフォルトの名無しさん (ワッチョイ 8610-B62f)
垢版 |
2021/06/10(木) 21:30:19.86ID:9KIBsohX0
>>238
いえ、過去に作ったものの保守ではなく、これから作るものについてです。
例えば、お問い合せフォームとか会員管理とか
どの言語・フレームワーク使おうが必要な機能ってありますよね?

そういうライブラリであったりプラグインであったりを、
フレームワーク毎にまた作るのか?って質問です。
0243デフォルトの名無しさん (ワッチョイ 931d-tjD1)
垢版 |
2021/06/11(金) 11:46:50.82ID:0v+h5w7s0
俺もアマゾンレビューでの評価が高かったいきなりはじめるPHPを買ったが、
なんか合わなかった 本のノリが嫌い
載っている情報も古い
エディタはテラパッドを使っているし、echoでなくprintを使っている
0244デフォルトの名無しさん (ワッチョイ f3da-fCQn)
垢版 |
2021/06/11(金) 12:02:16.66ID:+ogjkljv0
お昼時にゴメンナサイ、よろしくお願いいたします

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
0247デフォルトの名無しさん (ワッチョイ f3da-fCQn)
垢版 |
2021/06/11(金) 13:48:23.23ID:+ogjkljv0
>>245
ありがとうございます!
0250デフォルトの名無しさん (ワッチョイ cf10-qX5C)
垢版 |
2021/06/11(金) 18:38:14.01ID:llLxlLmn0
>>246
マイグレーションにしても、CakeとLaravelで大きく違うし、
CRUDの書き方も違うのに、変数変える程度で済むとは意外です。

というか、変換プログラムみたいなのを作るなら
車輪の再発明と言っても良いんじゃないですか?
0251デフォルトの名無しさん (ワントンキン MM9f-42hD)
垢版 |
2021/06/11(金) 20:47:03.14ID:jsMTDkupM
自分で作ってたものをFWに合わせて作りなおすってのはただの改良
PHPのバージョンアップに合わせて動かなくなったコードを書き直すのと全く同じこと
ていうか車輪の再発明が嫌そうなのに自分で作る前提がそもそもおかしいのでは
探せばあるでしょうに
0252デフォルトの名無しさん (ワッチョイ cf10-qX5C)
垢版 |
2021/06/11(金) 21:23:49.98ID:llLxlLmn0
いえ、嫌かどうかじゃなくて、みなさんはどうしてるのか気になるのです。
PHPのバージョンが変わるから書き換えるのと、
フレームワークが変わるから作り直すのでは明らかに手間が違うわけで、
同じような作業をまたやるという行為が、プログラマとして正しいのか知りたいだけです。
0254デフォルトの名無しさん (ワントンキン MM9f-42hD)
垢版 |
2021/06/11(金) 22:20:07.19ID:jsMTDkupM
手間の問題じゃなくて
そうしないと動かないからそうするという話であって
それを車輪の再発明とは言わない
移行先で前のものがそのまま使えるような場合もあるだろうけど
そうでない場合は使えないのだから作り直すのは当たり前
0255デフォルトの名無しさん (ワッチョイ cf10-qX5C)
垢版 |
2021/06/11(金) 22:39:30.70ID:llLxlLmn0
わかりました。つまり、作り直すのが一般的(普通)という受け取り方で良いわけですね。

自分もそうなので、他の人はどうしているか気になりましたが
別におかしなことではないと知って安心しました。
0256デフォルトの名無しさん (ワッチョイ ffa9-t88l)
垢版 |
2021/06/12(土) 20:17:18.78ID:S66YQD530
wordpressのogpに関する出力ですが

$ogp_type = ( is_front_page() || is_home() ) ? 'website' : 'article';

フロントページやホームでなければ○○だと思うのですが
「?」が何をしているかわからないのと、
2つの文字列がコロンで繋がれているのがわかりません。

動かして見ると articleが出力されています。
0260デフォルトの名無しさん (ワッチョイ 835f-IdmB)
垢版 |
2021/06/13(日) 03:13:44.77ID:oPgmrpm20
const HOST = 'localhost';
echo $HOST;

自学の為一纏めにしたいのですが上記のソースですとHOSTにnoticeが出てしまいます
調べたのですがconstを使う方法が乗ってるサイトにこれ以上の情報が無かったのでお聞きしたいです
0265デフォルトの名無しさん (ワッチョイ 032c-JlJp)
垢版 |
2021/06/13(日) 06:09:18.51ID:d/vYrCOI0
5ch のバグ。
URL などを投稿すると、; が付いたりする

5chの書き込みには、表示を変えるような特殊な命令があったりして、
それを解析する箇所に、バグがあるのだろう
0266デフォルトの名無しさん (ワッチョイ 03a7-42hD)
垢版 |
2021/06/13(日) 12:08:56.26ID:h3r9Ktq+0
三項演算子は条件次第で$varが変化するような場合には使っていいけど
それ以外のことやelseifが入る場合は使わないほうがいい
改行駆使して読みやすくする手法もあるがそんなことするなら普通にかけばいいし
読みづらいコードは保守の妨げになったりバグうむ原因になる
0267デフォルトの名無しさん (ワッチョイ 335f-IxVf)
垢版 |
2021/06/13(日) 14:06:10.67ID:V1lM1Rfw0
教えてください。

<?php
print("接続開始");
pg_connect("user=pet930 password=h17174422");
# if($dbconn == false){
# print("<p>接続失敗</p>");
#
# }
print("<html><p>接続成功</p></html>");



?>

なんか、pg_connect()で止まっちゃってるみたいで、「接続成功」の表示まで行けません。
pg_connect()でエラーメッセージ吐いてくれないんで原因が解らないです。

何処が悪いとエスパーできますか?
よろしくお願いします。
0270デフォルトの名無しさん (ワッチョイ 03a7-42hD)
垢版 |
2021/06/13(日) 14:26:08.18ID:h3r9Ktq+0
pgsql使ったことないからわからないけど
host port dbnameまでパラメーターちゃんと入れてみたら?
あとPHPの設定やバージョンがどうなのかわからんけど
error_reporting(E_ALL);を先頭に追加してエラーメッセージ出るようになるかどうか確認する
本当にpg_connectが原因なのか判断するには
pg_connect(略) or die("接続失敗");に変えるのがてっとり早いと思うけど
0272267 (ワッチョイ 335f-IxVf)
垢版 |
2021/06/13(日) 14:51:02.33ID:V1lM1Rfw0
>>270
設定を調べてみます。
でも、かなり勉強になりました、エラー設定とかDieとか知りませんでした。

5chにコード書き込めないみたいですが、pg_connect()以降は表示されなかったです。
設定関係調べてきます。
0273267 (ワッチョイ 335f-IxVf)
垢版 |
2021/06/13(日) 16:36:28.97ID:V1lM1Rfw0
phpinfo()でpostgresqlのセクションがありませんでした。
正常ならセクションが有るらしいので、調べてみます。

情報が豊富なphp7系にするべきかなぁ;
0274デフォルトの名無しさん (ワッチョイ 03a7-42hD)
垢版 |
2021/06/13(日) 17:12:59.44ID:h3r9Ktq+0
https://www.php.net/manual/ja/pgsql.installation.php
ソースからなら上記みたいにインストールが必要かもしれないし
なんかのパッケージ使ってるならphp.iniに
;extension=pgsql
っていうラインがあれば先頭の;取り払ってみるだけで使えるかもしれない
将来pdoも使うだろうからついでに
;extension=pdo_pgsql
も有効にしといたほうがいいかもね
0275267 (ワッチョイ 335f-IxVf)
垢版 |
2021/06/13(日) 17:31:29.77ID:V1lM1Rfw0
>>274
ありがとうございます!!

リンク先読みました。
Apacheのhpd.confに、LoadFile "C:\Program Files\PostgreSQL\13\bin\libpq.dll"を書き足してphpinfo()に、postgresql反映されました。

助かりましたorz
0276267 (ワッチョイ 335f-IxVf)
垢版 |
2021/06/13(日) 17:33:44.93ID:V1lM1Rfw0
>>274
pg_connect()も、無事動いて、想定どうりスクリプトが動きました。
お世話になりました〜
0279267 (ワッチョイ 335f-IxVf)
垢版 |
2021/06/16(水) 15:53:30.79ID:+Q5Hm82n0
何度も失礼します!

iframe先にPOTしたいのですが、飛ばせてないみたいです。
検索したら、これで動くのが一般的みたいですが…

<iframe src="http://localhost/frame.php"; id="frame_1"></iframe>

<form method="post" target="frame_1" action="http://localhost/frame.php"; 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
0281267 (ワッチョイ 335f-IxVf)
垢版 |
2021/06/16(水) 16:33:45.31ID:+Q5Hm82n0
>>280
ありがとうございます!
しかし、修正しましたが、動きませんでした…


アパッチの設定見てきます。

>引数はintだから”要らない
ありがとです。
0282267 (ワッチョイ 335f-IxVf)
垢版 |
2021/06/16(水) 17:15:07.61ID:+Q5Hm82n0
すいませんでした。

<input type="button" …> のbuttonをsubmitに変更したら動きました!

ありがとうございました!
0283デフォルトの名無しさん (ワッチョイ 931d-9wAC)
垢版 |
2021/06/16(水) 17:55:12.30ID:u+PEF3EC0
データベースを扱う際の例外処理で、本に、

} catch (PDOException $e) {
echo "エラー:" . htmlspecialchars($e->getMessage(), …) . "<br>";
exit;
} // 一部改変
とあったのですが、$e->getMessage()を無害化する必要性がよく分かりません
ここはPHP製作者の側で用意した文字列が表示されるのではないでしょうか?
0284デフォルトの名無しさん (ワッチョイ 6fad-8W0u)
垢版 |
2021/06/16(水) 18:39:41.81ID:o6SqvTfC0
>>283
そうだよ、無害化する意味ない。

さらに言うと、エンドユーザーにシステムがそのまま出力するメッセージを見せるとかありえないから、あくまで開発者向けのデバッグ用という意図で書かれているんだろうけど、それを無害化する意味も分からない。
0285デフォルトの名無しさん (ワッチョイ cfbb-EDyt)
垢版 |
2021/06/16(水) 18:54:22.90ID:KT0G0U9/0
>>283
メッセージの内容によっては外部入力が表示される可能性があるので、htmlspecialchars でエスケープすることは必要
ただし、そもそも出力するの?ってところは、ちゃんと考える必要がある
0286283 (ワッチョイ 931d-9wAC)
垢版 |
2021/06/16(水) 19:03:06.47ID:u+PEF3EC0
>>284
>>285
回答ありがとうございます

>>284
>あくまで開発者向けのデバッグ用という意図で書かれているんだろうけど
はい、そのように書かれています 本番ではこの部分は削除しろと

>>285
上に書いたように、本番環境では削除すると思います

外部入力が表示されるのって、例えばどういう場合でしょうか?
0289283 (ワッチョイ 931d-9wAC)
垢版 |
2021/06/16(水) 19:37:48.13ID:u+PEF3EC0
>>287
>>288
分かりました
少しでも外部入力が反映される可能性があったら必ずエスケープなんですね〜
ありがとうございました
0295デフォルトの名無しさん (ワッチョイ f3da-fCQn)
垢版 |
2021/06/17(木) 10:58:21.11ID:mta/I3G30
よろしくお願いします

PHP+Mysqlのサイトで会員ページへのログイン管理をセッションIDでやっていたのですが、ログイン後のURLの「ID=1234」を書き換えれば別の会員ページが見えてしまいます

そこでログイン後にセッション開放をしたのですが、今度は会員ページを見るたびにID&パスワードを入力する必要があり窮屈です

今後の改善策として↓どれがオススメですか?


【パターン1】
・パラメーターを非表示にする(できな?)

【パターン2】
・cookieにセッションIDを保存

【パターン3】
・その他
0297デフォルトの名無しさん (ワッチョイ 03a7-42hD)
垢版 |
2021/06/17(木) 12:12:31.57ID:8B6FG2Oh0
パラメーターを非表示にするっていうかセッション使ってるのにURLに入れたりしない
cookieにセッションIDを保存ってPHPのセッションを設定いじらず普通に使ってれば最初からそういう風になってる
んまー>>296の通りね
0298295 (ワッチョイ f3da-fCQn)
垢版 |
2021/06/17(木) 12:26:05.33ID:mta/I3G30
>>296
>>297

セッションを使ってるのにURLのパラメーターなんていらないですね、失礼しました
0299デフォルトの名無しさん (ワッチョイ b308-tD/8)
垢版 |
2021/06/17(木) 12:52:01.77ID:r4gx4cxd0
>>298
いやそうではなく、296も書いてる通り根本的にセッションに対する認識が間違ってる

セッション自体は、クッキーでもURLパラメータでもどっちでも扱える
URLのパラメータを書き換えられるのと同様に、クッキーの中身もユーザーが任意で書き換えられるのだから、
> ログイン後のURLの「ID=1234」を書き換えれば別の会員ページが見えてしまいます
のであれば、根本的に作り方がおかしい

理解してないととんでもない事になるぞw
0300295 (ワッチョイ f3da-fCQn)
垢版 |
2021/06/17(木) 13:00:10.33ID:mta/I3G30
>>299
セッションID漏洩 で検索すると沢山ヒットしますね

気を付けます
0301デフォルトの名無しさん (スッップ Sd1f-p3pc)
垢版 |
2021/06/17(木) 17:28:03.44ID:PjL3bf8Xd
PHPをダウンロードしたいんですがfor windowsのページが接続できません。
Windowsサポートが終了するからなくなったんでしょうか?
0303267 (ワッチョイ a75f-6Bmi)
垢版 |
2021/06/20(日) 10:33:06.70ID:/i2MBFyI0
度々失礼します。

クラスにどんな名前をつけても、クラス名が重複している種のエラーが出てしまいます。

>Cannot declare class file_test\unkotinntin, because the name is already

namespaceを設定してみても変わらないのですが、どうしたら良いのか。
よろしくお願いします。
0306303 (ワッチョイ a75f-6Bmi)
垢版 |
2021/06/20(日) 11:32:00.12ID:/i2MBFyI0
>Fatal error: Cannot declare class file_test\Onsensyoujo, because the name is already

ダメ元で変えてみましたが、やっぱりダメでした…
0307303 (ワッチョイ a75f-6Bmi)
垢版 |
2021/06/20(日) 13:06:22.04ID:/i2MBFyI0
すいませんでした。
解決しそうです

ファイル読み込みを

index.php ← vm_test.php

file_test.php ↑

って具合にしてしまいました。
vmからfileの読み込みを止めれば大丈夫みたいです。orz
0314デフォルトの名無しさん (オッペケ Sr3b-AWpu)
垢版 |
2021/06/21(月) 22:24:48.02ID:hHdGCfUDr
1記事につき1つずつ最新のコメントを5つ表示させたいのですが、同じ記事の最新コメントがダブって表示されます。
1記事につき1つずつの条件をついかする場合どうすればよいのでしょうか?
調べたのですが、わかりませんでした。
https://codepen.io/sadsfff/pen/XWMwWbe
該当のphpはこちらです。
0315デフォルトの名無しさん (オッペケ Sr3b-AWpu)
垢版 |
2021/06/21(月) 22:33:54.76ID:hHdGCfUDr
記事にIDをつけてその特定の記事から最新コメントを5件取得する方法はあったのですが、
全部の記事から最新5件 各記事から1つ限定で取得する方法がわからなかったのですが。
0316デフォルトの名無しさん (ワッチョイ 3b5f-6inw)
垢版 |
2021/06/24(木) 02:55:14.60ID:x4SNvOJV0
とあるページを作っていて指定されたIDの情報をDBから引っ張ってきたいのですが動きません1つ1つ検証していって恐らくここに原因がある事は突き止めたんですが何が間違ってるのかが分かりません、、、ご教授お願いしたいです

"SELECT id,name,age,ext
FROM sample
WHERE id = " . $id . "");
0321デフォルトの名無しさん (ワッチョイ 3b5f-6inw)
垢版 |
2021/06/24(木) 10:13:01.81ID:x4SNvOJV0
>>317
すいません、mysqli_queryの()の後ろの方が入り込んでしまいました
>>319
無知で申し訳ないのですがどのような方法を取るのがベストなのでしょうか?
0322デフォルトの名無しさん (ワッチョイ 4708-VNxU)
垢版 |
2021/06/24(木) 10:19:49.86ID:yb980iZA0
>>316
319も指摘しているけど、こんな事をやってるからSQLインジェクションが起こる
「PDO プリペアドステートメント」でググろう
ついでに「SQLインジェクション」についても勉強しとこう
0325デフォルトの名無しさん (ワッチョイ dba7-hhAf)
垢版 |
2021/06/24(木) 14:30:59.72ID:C8/wW34i0
本なんかを見ながらやってるなら
そのうちプリペアドステートメントは出てくるし余計なお世話かなと思って書かなかったけど
$idが適切な処理をされてるなら
無理してプリペアドステートメントを使う必要はない
0326デフォルトの名無しさん (ワッチョイ 3b5f-6inw)
垢版 |
2021/06/24(木) 15:35:30.79ID:x4SNvOJV0
皆さんありがとうございます
購入した教材の通りに進めていて練習問題の所で詰まっていたのですがもう少し色々な方面から勉強します…
0328デフォルトの名無しさん (ワッチョイ a702-19dE)
垢版 |
2021/06/24(木) 18:41:28.99ID:C9HpnekB0
SQLインジェクションはほぼ阻止できる、
文字列をいちいち引用符で囲む必要ないから文法エラーも激減、
SQL構文の解析が減るのでオーバーヘッドも減少と、
プリペアドステートメントを使わない言い訳をするほうが難しい
0330デフォルトの名無しさん (アウアウクー MMa3-BOqF)
垢版 |
2021/06/25(金) 13:44:54.61ID:7ZVx0ICKM
<dt class="imgcomment"><a class="commentheight" href="<はてな= $url はてな>"><はてな= $imgはてな></a></dt>
画像の高さをCSSで指定できないのでphpに直接数値を入れたいのですが、どうすればよいのでしょうか?
0333デフォルトの名無しさん (アウアウクー MMa3-BOqF)
垢版 |
2021/06/25(金) 14:34:44.43ID:7ZVx0ICKM
だめですわ効きません
wordpressの仕様でimg.attachment-post-thumbnail.size-post-thumbnail.wp-post-imageと勝手にクラスが付与されてます。
おそらくphp事態にクラスを付与してないため一色単にされてます。
0334デフォルトの名無しさん (オッペケ Sra3-BOqF)
垢版 |
2021/06/25(金) 17:17:32.55ID:Zp0CPETQr
$img = get_the_post_thumbnail($pid , array('class' => 'myClass'));

構文的におかしいかもしれませんがクラス指定できました。
https://memocarilog.info/wordpress/6529
wordpressより独自クラスをつける方法より。
0337デフォルトの名無しさん (アウアウウー Sad3-eHmd)
垢版 |
2021/06/25(金) 19:53:28.76ID:4lJT+uTla
>>336
そこで聞いてもPHPは教えてくれませんもん
0339デフォルトの名無しさん (ワッチョイ ffcb-SUSz)
垢版 |
2021/06/25(金) 21:55:46.72ID:CTgcEISH0
curlでとってきたサイトの情報というのは何が含まれているんでしょうか?
rssリーダーを作成しているので、xmlが含まれるのは分かります。

それ以外にもいろんなデータが含まれているんですよね。
このオブジェクト?をなんと呼ぶのでしょうか?

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
xmlns="http://purl.org/rss/1.0/";
xmlns:content="http://purl.org/rss/1.0/modules/content/";
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/";
xmlns:dc="http://purl.org/dc/elements/1.1/";
xmlns:syn="http://purl.org/rss/1.0/modules/syndication/";
xmlns:admin="http://webns.net/mvcb/";
xmlns:atom="http://www.w3.org/2005/Atom";
>
<channel rdf:about="http://blog.livedoor.jp/dqnplus/";>
<title>痛いニュ'... (length=47435)
0343デフォルトの名無しさん (ワッチョイ ffcb-SUSz)
垢版 |
2021/06/26(土) 12:37:16.56ID:gNSotHtr0
>>341
rssフィードはurlオブジェクト?の一部ってことじゃないんですか?
0344デフォルトの名無しさん (ワッチョイ 0f2c-W41i)
垢版 |
2021/06/26(土) 13:10:59.38ID:6sjjJ5as0
Ruby なら、RSS 用のモジュールがある
https://docs.ruby-lang.org/ja/latest/library/rss.html

1. RSS 1.0をパースした場合は RSS::RDF オブジェクト
2. RSS 0.9x/2.0をパースした場合は RSS::Rss オブジェクト
3. Atom をパースした場合は RSS::Atom::Feed オブジェクト

3つの形式を抽象化して、同時に扱えるモジュールも、たぶん誰かが作っている

基本、こういうものを自分で作ってはいけない。
車輪の再発明は、低品質で、製作・保守コストが高いから、ダメ
0348デフォルトの名無しさん (ワッチョイ cf1d-kMi9)
垢版 |
2021/06/27(日) 08:11:30.48ID:X9FVTu1L0
3つのページから構成されているサイトを作成しているのですが、
スーパーグローバル変数$_POST['hoge']の内容をうまく送信できません

1つ目のページの入力フォームで受け取ったデータは、
2つ目のページで受け取り利用できるのですが、そのデータを3つ目のページに
うまく送信できません

<inpu type="hidden" name="hoge" value="$_POST['hoge']">
としましたがダメでした

どう対処したらよいでしょうか?
0350デフォルトの名無しさん (ワッチョイ ffcb-SUSz)
垢版 |
2021/06/27(日) 10:26:55.16ID:ItQV7X9X0
feedを取ってくる場合、simplexmlとcurlのどちらがいいのでしょうか?
複数サイトになります。
0353デフォルトの名無しさん (ワッチョイ ffcb-SUSz)
垢版 |
2021/06/27(日) 12:46:28.79ID:ItQV7X9X0
>>351
curlは使わないのでしょうか?
複数サイトの場合はcurlのほうがいいと聞いたのです。
0355デフォルトの名無しさん (ワッチョイ 3f66-j5Ba)
垢版 |
2021/06/27(日) 13:32:19.99ID:eeXftvTT0
複数サイトの場合はcurlがいいってのはcurlを子プロセスとして複数同時に動かせるからってことじゃないの?
いずれにしても、curlがやってくれるのはhtmlを取ってきてくれるまで、よ?
0356デフォルトの名無しさん (ワッチョイ 0f2c-m5uv)
垢版 |
2021/06/27(日) 13:59:51.79ID:tkVDl+qA0
例えば、Ruby でも、普通に書くと、
open-uri モジュールのopen でファイルを取得する

require 'open-uri'
require 'nokogiri'

url = "https://example.com/";
doc = Nokogiri::HTML( open( url ) )

elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain

これを、外部コマンドのcurl に書き換える事もできるが、
外部コマンド(プロセス)を呼ぶ必要がない

html = `curl https://example.com/`
doc = Nokogiri::HTML( html )

外部コマンドは、OS に左右される

特に、Windows では、curl.exe なのか、
PowerShell のcurl(curlモドキ)なのか、
アプリごとに微妙に挙動が異なるかも

(そもそもシステムに、Windowsを使うこと自体が間違いだけど。
すべての言語は、Linux用だから)
0357デフォルトの名無しさん (ワッチョイ ffcb-SUSz)
垢版 |
2021/06/27(日) 14:45:24.55ID:ItQV7X9X0
>>354
simplexmlだと複数対応出来ないと思ってました。
なしでやってみるです

>>355
並列処理云々と聞きました。
詳しくは分かりませんが、、、。
0358348 (ワッチョイ cf1d-kMi9)
垢版 |
2021/06/27(日) 14:55:13.19ID:X9FVTu1L0
>>349
>>352
回答ありがとうございます

>>349
使ってないです

>>352
失礼しました 3ページ目で、$_POST['hoge']、という文字列が表示されてしまいます
{}をつけて、<(略) value="{$_POST['hoge']}"としてみましたがダメでした(上と同様に文字列が表示されてしまいます)
0361デフォルトの名無しさん (スププ Sd5f-itWn)
垢版 |
2021/06/27(日) 17:11:37.21ID:Cz2fHMTfd
ローカルホストで練習中にphpmyadminでSQLにWHERE文をつけ忘れupdateして全データが更新されてしまいました。
本番でやったら恐ろしい事だと思うんですが、ロールバックのやり方等あったら教えてもらえませんか。

一応ターミナルでログインしてROLLBACK;はしましたが戻らなかったです。
0365デフォルトの名無しさん (ワッチョイ 8fa7-hdpQ)
垢版 |
2021/06/27(日) 18:46:38.38ID:pjTb3Z/m0
>>361
ロールバックはトランザクション開始してないとできないから
begin(トランザクション開始)してから書いて
updateしたらselectで確認したのちに問題があればrollback
問題がなければcommitする
つうかphp関係ないで…
0368デフォルトの名無しさん (ワッチョイ 4f08-H7K1)
垢版 |
2021/06/28(月) 08:58:02.88ID:GRcsjrE80
>>357
たしかに curl_multi_init() で初期化してからの一連の流れで複数の通信を非同期実行できるから、
それを「使いこなせば」、直列的に複数のサイトからデータ取得するよりは圧倒的に速くはなる
使いこなせば…ね
0369デフォルトの名無しさん (ワッチョイ ffcb-SUSz)
垢版 |
2021/06/28(月) 12:05:36.38ID:SRAdQ7Kv0
>>368
どうも
とりあえずsimplexmlでやるdeath
0370デフォルトの名無しさん (ワッチョイ ffcb-SUSz)
垢版 |
2021/06/28(月) 12:30:55.32ID:SRAdQ7Kv0
simplexmlloadfileで取得したxmlなんですが、見やすいように整形出来ないでしょうか?非常に見づらいです。
var_dumpを使用しています。
$url_arr = ["http://blog.livedoor.jp/dqnplus/index.rdf";,"http://jin115.com/index.rdf";];


foreach($url_arr as $url){
$xml_elm = simplexml_load_file($url);
var_dump($xml_elm);
}
0371デフォルトの名無しさん (ワッチョイ 4f08-H7K1)
垢版 |
2021/06/28(月) 12:42:58.79ID:GRcsjrE80
>>370
var_dump($xml_elm);
までやってるのに自分で解決できないなら、それはもう「PHPの書き方自体がわかってない」って事じゃんw

とりあえず
$xml_elm を foreach() で回せ
foreachの対象は配列だけじゃない
0372デフォルトの名無しさん (ワッチョイ ffcb-SUSz)
垢版 |
2021/06/28(月) 12:53:32.28ID:SRAdQ7Kv0
>>371
$xml_elmをforで回すということは、自分でhtmlなりで整形しないとだめってことですかね
サクッと構造わかりやすく表示してくれればよかったんですが
0374デフォルトの名無しさん (ワッチョイ 4f08-H7K1)
垢版 |
2021/06/28(月) 13:32:04.00ID:GRcsjrE80
>>372
print_r($xml_elm);

そういえば前にも似た感じの質問してた人いたが同一人物?
もし同一人物なら諦めた方がいいぞ
スキップできない人が100M走のオリンピック選手目指してるレベル
0377デフォルトの名無しさん (ワッチョイ ffcb-SUSz)
垢版 |
2021/06/28(月) 16:18:41.46ID:SRAdQ7Kv0
>>374
print_rで見やすくはならないのですが
xmlの階層構造を知りたいのです
0379デフォルトの名無しさん (オッペケ Sra3-BOqF)
垢版 |
2021/06/29(火) 12:43:13.08ID:QFJ3/yA+r
条件分岐して
$user_id = $comment->comment_author; (投稿に名前を入力された場合)

$user_id = empty($comment->user_id) ? "default" : $comment->user_id;  (投稿に名前を入力せずにコメントが投稿された場合)
に分岐させる場合、
if foreach でどう構文を書けばよいのでしょうか?
0380デフォルトの名無しさん (ワッチョイ 4f08-H7K1)
垢版 |
2021/06/29(火) 14:13:26.09ID:jcOSDUmu0
>>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
0382デフォルトの名無しさん (オッペケ Sra3-BOqF)
垢版 |
2021/06/29(火) 16:14:27.35ID:QFJ3/yA+r
>>380
勉強になりました。ありがとうございます。
実装できました!
0383デフォルトの名無しさん (オッペケ Sra3-BOqF)
垢版 |
2021/06/30(水) 00:45:39.78ID:9XHMQjkRr
すみません調べてもわからなかったことがあるんですが、
$date = get_comment_date( 'Y/n/d', $comment->comment_ID);
<span class="my_author"><= $date ></span>
で日付けを取得してるんですが (Y/n/d)と出力したい場合どうすればいいんでしょうか?
日付けを()でくくる方法をネットで調べたんですがどうしてもわかりません...
0387デフォルトの名無しさん (オッペケ Sra3-BOqF)
垢版 |
2021/06/30(水) 15:33:44.49ID:E5lZLJuwr
>>384
>>385
大かっこ中かっこみたいに連結できるんですね、勉強になりました。
ありがとうございます。
0388デフォルトの名無しさん (ササクッテロラ Spa3-DNyh)
垢版 |
2021/07/01(木) 16:07:46.68ID:/VJoNeIAp
VBで二限一次方程式のツール作るとしたら使う文法教えてくれ
0389デフォルトの名無しさん (ワッチョイ 3f5c-lfrx)
垢版 |
2021/07/01(木) 17:07:12.29ID:rtzdpng60
>>388
ここに詳細な解説が載っているよ!
https://www.ruby-lang.org/ja/
0391デフォルトの名無しさん (ワッチョイ 8aa9-Q9JX)
垢版 |
2021/07/02(金) 05:15:42.19ID:8vqpw3og0
古い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を出す処理";
}

みたいな感じになるのでしょうか
0392デフォルトの名無しさん (ワッチョイ 2f08-c9XW)
垢版 |
2021/07/02(金) 10:13:53.35ID:zJt0vXnM0
>>391
実際に書いてみればいいじゃん
PHPはスクリプト言語なんだから、悩んでる暇があったら書いた方が早い

https://paiza.io/projects/2BR9QkERR6BrplG1Ym3P0w

上記の例ではテストのために $uri の値を固定しているが
本番環境なら
$uri = getenv('REQUEST_URI');
を使えばいい

こういう実行環境をローカルに用意できてないなら、先にそっちを何とかした方がいいぞ
スクリプト言語のメリットが全く活かせてないから
0394デフォルトの名無しさん (ワッチョイ 8aa9-Q9JX)
垢版 |
2021/07/03(土) 04:35:11.36ID:XWbbAf/z0
>>392-393
ありがとう、paizaというものがあるのね。
すごい便利でびっくり
そう、実はローカル環境が無くて、公開している本番サイトをちょっと触ったら白くなって慌てて戻してとかダメダメなやり方してる
ローカル環境作らないとダメよね。

https://paiza.io/projects/37-EQNMdOt_AlBtXvaS0bQ

やってみたけど出来ていそうで上手くいかないorz
true, falseのところが間違っているのかな
フラグ用の変数を設けて、自宅用の固定IPか、レスポンシブ用のURIならcssを追記するってことなんだけど
無条件にcssが付加されてしまう
0397デフォルトの名無しさん (ワッチョイ 035f-Sdyw)
垢版 |
2021/07/04(日) 21:04:35.74ID:wDVNm/sr0
入力項目の中で生年月日が入力されてなかったらdb側の生年月日にはnullを入れるシステムがどうしても作れなくてアイディアに詰まってるので助けてください
data型でdefault nullで作ってます
0399デフォルトの名無しさん (スフッ Sd4a-Sdyw)
垢版 |
2021/07/05(月) 01:27:32.49ID:fHx0Uh9Wd
めちゃくちゃ素人質問で申し訳ないんですけど入力された値が数値では無い場合と指定文字数じゃない場合にエラーを出したいんですけどどこが間違ってますでしょうか?
if(!is_numeric($_POST['te']) ||
!mb_strlen($_POST['te'])==8){
$err ='正しい数値を入力して下さい';
}
0401デフォルトの名無しさん (ワッチョイ 0a02-lJqZ)
垢版 |
2021/07/05(月) 02:16:11.46ID:gY5D6WDn0
>>399
is_numericとmb_strlenを一緒に使っているが、$_POSTに入力されるのは全角、半角どちらを期待しているのか?
半角ならばstrlen使うべきだし、全角ならis_numericではなくpreg_matchなどで処理する必要がある

解決方法としては、一旦$_POSTを変数に入れて全角か半角どちらか必要な方に統一した後、然るべき処理を行うのがよいと思われる
0402デフォルトの名無しさん (スフッ Sd4a-Sdyw)
垢版 |
2021/07/05(月) 11:03:40.35ID:fHx0Uh9Wd
>>400
そうですね、その予定です!

>>401
ありがとうございます
1つずつ確認してみます
0405デフォルトの名無しさん (ワッチョイ 2f08-c9XW)
垢版 |
2021/07/05(月) 12:18:25.72ID:kyq5FLmC0
>>394
strpos()で「〜を含む」という処理を書きたいならこう書くこと
※理由はPHPマニュアルに書いてある筈
×:strpos($now_url, $res_url)
○:strpos($now_url, $res_url) !== false

極めつけはこれ
×:$match_responsive = true
○:$match_responsive ==== TRUE
$match_responsiveに true を入れてるのだから、結果は常に真になるぞ?
0406デフォルトの名無しさん (ワッチョイ 2f08-c9XW)
垢版 |
2021/07/05(月) 12:19:27.72ID:kyq5FLmC0
>>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
0408デフォルトの名無しさん (オッペケ Sr23-x1uT)
垢版 |
2021/07/06(火) 14:16:58.59ID:K/Yz4VXdr
//ここにメイン部分のコードを記述 ループしないので <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;?> で出力してるんですが<!--クラス付きの内容を追加-->の部分のみ繰り返し出力する場合どうすればいいんでしょうか?
0409デフォルトの名無しさん (ワッチョイ 1e10-GLL6)
垢版 |
2021/07/06(火) 14:57:40.96ID:EJPu27Tj0
暇つぶしに過去作っていたプログラムを改修していたのですが、
関数ばかりのライブラリが、わりと使い勝って良くて軽量だったりします。

セキュリティを考慮すること無く、CRUD程度の操作なら
フレームワーク使わなくても良いと思ったりしたのですが、
みなさんはやっぱり自作の物は使わないようにしてますか?
0410デフォルトの名無しさん (ワッチョイ ab2c-Ijop)
垢版 |
2021/07/07(水) 01:26:08.59ID:bUHYGk470
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>
0416デフォルトの名無しさん (オッペケ Sra1-AlcT)
垢版 |
2021/07/09(金) 18:15:18.49ID:KkNlGqxZr
<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ページ目を表示させる場合どういうコードを書けばよいのでしょうか?
0418デフォルトの名無しさん (オッペケ Sra1-4x/S)
垢版 |
2021/07/09(金) 19:09:49.46ID:KkNlGqxZr
>>417
向こうで聞いても教えて貰えなくて…
0419デフォルトの名無しさん (ワッチョイ 2302-K8O7)
垢版 |
2021/07/09(金) 19:23:26.52ID:aS/fIL1f0
>>418
ナビに関係ないコードばかりだし
ブロックに波括弧とコロンが混在してて見づらいし
$nextpostと$prevpostを使ってとか言いながら、$nextpostと$prevpostがそもそもコード内に存在しないし

質問の仕方が悪い
0420デフォルトの名無しさん (オッペケ Sra1-4x/S)
垢版 |
2021/07/09(金) 20:07:03.69ID:KkNlGqxZr
>>419
コードに付けたいんですが文字数制限があって書けないんです…
code penを見ていただけるなら書きますが…
0421デフォルトの名無しさん (オッペケ Sra1-AlcT)
垢版 |
2021/07/09(金) 20:18:24.64ID:KkNlGqxZr
https://codepen.io/sadsfff/pen/bGWeOOo
このコードを書くとエラーが出ます。どこが間違っているのでしょうか?
syntax error, unexpected end of file, expecting elseif (T_ELSEIF) or else (T_ELSE) or endif (T_ENDIF)
0422410 (ワッチョイ 852c-xNKK)
垢版 |
2021/07/09(金) 20:57:16.85ID:TIX9j1Dy0
>>410
に書いたみたいに、HTML 内に、PHP の構文を埋め込めば?
逆に、PHPで文字列をつなげて、HTMLを作ると分かりにくい

Ruby on Rails では、全部そう。
HTML内に、Rubyの式を埋め込む

<%= 〜 %> は、HTMLに出力される。
<% 〜 %> は出力されない

Rubyで文字列をつなげて、HTMLを作らない

なぜかと言うと、パーシャル・部分テンプレートにして、
その部分だけを別ファイルにして切り出せないから

それに文字列でつなげて、HTMLを作ると、
SQL インジェクションみたいに、
相手が情報を抜くような命令を入れてくるので、超危険!

だから、Railsでは、a.html.erb みたいに、
ERB(埋め込みRuby)で書いて、それをHTMLにする
0423デフォルトの名無しさん (ワッチョイ 2302-K8O7)
垢版 |
2021/07/09(金) 21:46:12.63ID:aS/fIL1f0
>>421
そもそも動かないコードとかさぁ
仮にナビができたとしても動かないじゃん

エラーの内容IFのタグの問題だよね
タグが合わないのはRSSの時に、タグ統一して不要な部分一旦コメントするなりして流れを追えって言われたよね?

何も進歩してないな、やれやれ…
0424デフォルトの名無しさん (アウアウウー Sa09-4x/S)
垢版 |
2021/07/09(金) 22:34:16.27ID:SqCApkwQa
>>423
元のコードが動いていて、ページ要素を加えるために$next postを加えたときにエラーが起きました

タグを統一って具体的にどこでしょうか?
0426デフォルトの名無しさん (ワッチョイ 2302-K8O7)
垢版 |
2021/07/09(金) 23:06:03.20ID:aS/fIL1f0
>>424
if やら foreach やらのブロック開始終了タグが波括弧だったりコロンだったりってのを直していくってことね

wordpress触る以上埋め込みが混在するコードを追う能力は必須になるから、この程度のこと自力で解決できないならwordpress触るの諦めたほうがいいよ
0427デフォルトの名無しさん (ワッチョイ 852c-xNKK)
垢版 |
2021/07/09(金) 23:58:42.15ID:TIX9j1Dy0
Web制作管理板のWordPress のスレで、やってるみたい

5ch ではマルチポストは禁止だから、このスレでは話を続けない方がよい。
向こうのスレで議論してください!

1つのスレだけにしないと、答える人も同じ事を調べたりするので、無駄
0429デフォルトの名無しさん (ワッチョイ 15c5-jjVx)
垢版 |
2021/07/10(土) 02:53:56.58ID:etRC44er0
>>5ch ではマルチポストは禁止

いつそんなこと決まったんだ?
0435デフォルトの名無しさん (ワッチョイ 239f-jjVx)
垢版 |
2021/07/10(土) 17:15:08.23ID:xuQr++Bu0
>>434
お前がな
0436デフォルトの名無しさん (オッペケ Sra1-AlcT)
垢版 |
2021/07/10(土) 23:37:27.16ID:L/F3nxmer
原因が少しわかりました
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とかで投稿画像など取得できるのでしょうか?
0437デフォルトの名無しさん (ワッチョイ 852c-KGMb)
垢版 |
2021/07/11(日) 02:17:32.48ID:lZiRxAj00
WordPress の質問ですか?
WordPressの事なら、Web制作管理板のWordPressのスレに書き込んでください!

5ch はマルチポスト禁止だから、
同じ質問を、複数のスレに書くのは禁止!

このスレではなく、WordPressのスレの方で聞く方がよい
0438デフォルトの名無しさん (オッペケ Sra1-AlcT)
垢版 |
2021/07/12(月) 01:09:59.12ID:cRbCoWRWr
https://teratail.com/questions/348616
何とか作り上げることができました。
頭痛いのでねます。
0441デフォルトの名無しさん (スププ Sd43-pM4a)
垢版 |
2021/07/12(月) 22:17:47.32ID:SYagZpGJd
アップロードされた画像をconstで定義されてるパス先に移動させたいんですが上手く出来ないので教えてください
move_uploaded_file($upload_file['tmp_name'],DIR_IMG.$new_file_name);

DIR_IMGには相対パスが入ってます('../img/など)
0442デフォルトの名無しさん (ワッチョイ a37c-C4NE)
垢版 |
2021/07/13(火) 13:02:35.06ID:I15vJP3h0
そもそもアップロードされたファイルなのかどうか
is_uploaded_file()でチェック出来る
そうじゃないならrename()使え

その相対パスあってる?
realpath()で確認してみる

相対パスがあってたとして、パーミッションチェックした?
0443デフォルトの名無しさん (ワッチョイ 2342-6Mb1)
垢版 |
2021/07/14(水) 19:07:13.52ID:dWCeWde70
$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を更新したいのです。
0444デフォルトの名無しさん (ワッチョイ 2342-6Mb1)
垢版 |
2021/07/14(水) 19:09:54.91ID:dWCeWde70
訂正::すいません。
×var_dump($morning);
〇var_dump($fruits);
0445デフォルトの名無しさん (ワッチョイ a37c-C4NE)
垢版 |
2021/07/14(水) 19:40:05.21ID:b60WN8TB0
グローバル変数なら別にスコープ関係無い筈だがそれ前提は設計的にどうかと思うので
以下の方法のどちらかを使う方が良いだろう

参照で渡す
function test(&$a) {
$aへの代入は関数で渡した変数に及ぶ
別にreturnする必要は無い
}

複数の結果をリターンする
function test2()
{
return [1,2];
}

list($a,$b) = test();
$aと$bに結果が入る
0446デフォルトの名無しさん (ワッチョイ 2342-6Mb1)
垢版 |
2021/07/14(水) 20:25:55.80ID:dWCeWde70
よくわかりました。
関数外に変数を定義したからといって、
global変数になるわけじゃないんですね。
ありがとございました。

参照渡しか、global変数の定義か、どちらかでやっていきます。
0448デフォルトの名無しさん (ワッチョイ 0d08-6wWl)
垢版 |
2021/07/15(木) 14:33:47.08ID:Hy5PN9MF0
>>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マニュアルは優秀だから大抵の事は書いてある
最低限のルールは覚えよう
0449デフォルトの名無しさん (ワッチョイ 0d08-6wWl)
垢版 |
2021/07/15(木) 14:39:40.15ID:Hy5PN9MF0
>>441
その質問には超能力者しか答えられない

とりあえず、以下を参考にエラーを出力させよう
https://qiita.com/fallout/items/31f793708b243033fab1

次に、そのエラー内容をきちんと読もう
中学レベルの英語力で読めるので

そのエラーを読んでも意味が理解できないなら、エラー内容を転載して質問
俺らはエスパーじゃないw
0450デフォルトの名無しさん (ワッチョイ e3a7-wTJ1)
垢版 |
2021/07/15(木) 20:53:46.77ID:jGrj3A7F0
>>443
なんとなく設計がよくない気がする
$fruits、$coffeeは、別々の関数で処理させて、returnはそれぞれ1つの方がよいと思う
無理にまとめると関数の独立性を損ねるし、それに参照渡しもlist関数も直感的でなく可読性が落ちる
0451デフォルトの名無しさん (ワッチョイ 5a42-E0YB)
垢版 |
2021/07/17(土) 05:15:45.31ID:YBqRFemK0
>>449
妙にしっくりきます。
長年ソフトボールに慣れ親しんで、
野球も似たようなもんだろ。って参加したら
両者の違いにやっと気づいて、苦悶する状態w
0452デフォルトの名無しさん (ワッチョイ 5a42-E0YB)
垢版 |
2021/07/17(土) 05:18:10.65ID:YBqRFemK0
>>449ではなくて>>448
すまそ。
0453デフォルトの名無しさん (オッペケ Sr75-VsZy)
垢版 |
2021/07/17(土) 18:21:09.31ID:ohkviaGsr
指定画像を出力したうえでメニューを作りたい
<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>にしたい場合どうすればよいでしょうか?
0454デフォルトの名無しさん (オッペケ Sr75-VsZy)
垢版 |
2021/07/17(土) 18:25:44.28ID:ohkviaGsr
画像が画面いっぱいに表示されるということは別のファイルに出力するということですかね、
複数表示してcssを付与するのはどうすればよいのでしょうか?
0455蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdfa-rTLR)
垢版 |
2021/07/17(土) 18:54:11.12ID:UtbSZ1Qtd
htmlの中にtable出力、その中でimg要素をsrc属性を付けて複数指定する。ブラウザはsrc属性付きのimgのイメージを自動的に読み込む。
0456デフォルトの名無しさん (オッペケ Sr75-VsZy)
垢版 |
2021/07/17(土) 20:16:21.59ID:ohkviaGsr
>>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を出力するとしても画像が出力できません。
何が原因でしょうか?
0458デフォルトの名無しさん (アウアウクー MM35-VsZy)
垢版 |
2021/07/17(土) 21:34:37.90ID:OaBiTcJcM
>>457
画像を呼び出す場合<img src="/header_image.php">のようにphpスクリプトを呼び出して、そのphpスクリプトが画像データを返すようにすべきです。
と言われたのですがほかに方法はあるのでしょうか?
0459デフォルトの名無しさん (ワッチョイ 552c-0PSu)
垢版 |
2021/07/17(土) 21:38:04.55ID:xmQE+uIu0
<img src="img.php?img=uploads/2021/07/7mgpH3K.jpg">
じゃなくて、

<img src="uploads/2021/07/7mgpH3K.jpg">
じゃないの?

まあでも、ユーザーから送られたものを、チェック無しに、そのまま使うのは危険!
そこに、色々なファイルパス・命令などを入れてくる
0461デフォルトの名無しさん (オッペケ Sr75-VsZy)
垢版 |
2021/07/18(日) 12:58:29.71ID:VnC3iq6Ar
>>459 >>460
ユーザーからおくられたものではなく自身のサイトのサーバーに置いた画像を指定して任意の場所に表示させ、メニューを作りたいんですがその場合
<img src="uploads/2021/07/7mgpH3K.jpg">でいいのでしょうか?
<table>にして画像 画像 メニュー メニュー 画像としたいんですが、phpを使わなければならないと勝手に認識してるんですが
0463デフォルトの名無しさん (ワッチョイ 9a7c-xL6t)
垢版 |
2021/07/18(日) 14:04:59.57ID:fBmvBk7Y0
そもそもアップロード先フォルダだとしてそれをそのまま公開するのは頭がおかしい
PHP以前の問題
本来ならアップロードした時点でファイルを調べて、それでOKであれば
(例えばちゃんと画像ファイルなのかどうか等)
公開フォルダへコピーするなりするべきじゃね?
0465デフォルトの名無しさん (アウアウウー Sa39-hwij)
垢版 |
2021/07/18(日) 16:44:58.59ID:UQ3hWlPAa
セキュリティ的に危ないという理由を教えてください
一度サーバーのフォルダにアップしたものを公開するのは危ないのでしょうか?
0466デフォルトの名無しさん (ワッチョイ f6bb-YmP5)
垢版 |
2021/07/18(日) 17:23:13.71ID:ca/UjVuI0
>>465
セキュリティはちゃんと体系的な知識を身につけたほうが良いですよ
一応アップロード系の用語がそれなりに出てくる記事をリンクしておきます

https://qiita.com/mpyw/items/939964377766a54d4682

記事中の実装は、今となっては古すぎなので参考になりませんが、用語レベルでは網羅されているかと
入り口の記事として読んでください

外部からアクセスできる場所にアクセス・実行できるファイルを一個置かれただけで、かなりのことができるようになります
0469デフォルトの名無しさん (ワッチョイ 552c-NvNM)
垢版 |
2021/07/18(日) 21:08:39.36ID:H/NN8O820
セキュリティーは、膨大な種類ある

だから皆、Ruby on Rails などのフレームワークを使う。
素の言語では、一生やっても作れない

Rails では、サーバーへプロフィール画像をアップロードする、機能がよく出てくる。
画像ファイルの縦横幅の制限、容量の制限、
中身にウイルスがうめこまれていないかチェックするなど、
色々なセキュリティー対策をしないといけない

さらにレスポンシブ対応で、様々なサイズに拡大縮小するなど、
OSS のモジュールを使わないと作れない

一々、自分で作っていては、一生掛かる。
Railsなどのフレームワークの勉強をしていない人は、絶対にシステムを作れない

他にも、マスアサインメント・SQL インジェクションとか、
セキュリティーには膨大な種類ある

だから、PHP のサイトばかり攻撃されるのは、
セキュリティーを知らない人が作っているから、情報を取りやすい
0475デフォルトの名無しさん (アウアウクー MM35-VsZy)
垢版 |
2021/07/20(火) 17:18:42.82ID:IgegoDKDM
以前質問させていただいた画像を直接上げてはいけない原因を調べたところ、
誰からも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

これで大丈夫でしょうか?画像は表示されました。
0476デフォルトの名無しさん (ワッチョイ 058c-p0fO)
垢版 |
2021/07/22(木) 13:17:48.55ID:pnEPB7fm0
質問お願いします。
環境は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の時にも日本語にするためには、なにをしたら良いでしょうか。
どうぞよろしくお願いいたします。
0477デフォルトの名無しさん (アウアウクー MM35-Hsms)
垢版 |
2021/07/22(木) 15:43:09.09ID:b8/cFbDKM
>>463
言ってる意味がおおよそ理解できたのですが。
・暗号化
 可逆な存在
 =複合することができる
 =変換方式が決まっているため、だれでも復元(decode)できる。

可逆な存在といえば「Base64」
エンコード(暗号化)も出来るし、デコード(複合化)もできる。
(でもね、厳密には暗号化=エンコードとは言えないんだよ…)
(詳しくはもう少し下で…)

逆に、不可逆な存在といえば「SHA-1」
こっちは複合化することが出来ない。

画像をハッシュ関数化してそれをもとに画像を表示させる方法がわからないんですが、
phpで可能なんでしょうか?
0479デフォルトの名無しさん (ワッチョイ 1389-1sa8)
垢版 |
2021/07/26(月) 09:39:33.21ID:nRSOkyaR0
質問です。
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);
0480デフォルトの名無しさん (ワッチョイ 519b-Hgw+)
垢版 |
2021/07/26(月) 09:43:24.61ID:UUQ7nGaW0
うちはできてる
0481デフォルトの名無しさん (ワッチョイ 1389-1sa8)
垢版 |
2021/07/26(月) 09:51:26.23ID:nRSOkyaR0
うう…マジか
XAMPPのローカル環境だから上手く行かないのだろうか?
0482デフォルトの名無しさん (ワッチョイ 7bad-0CkY)
垢版 |
2021/07/26(月) 10:38:53.43ID:rdRO2HTr0
せめてエラーログくらい貼りなよ
0484デフォルトの名無しさん (ワッチョイ 7bad-0CkY)
垢版 |
2021/07/26(月) 11:43:48.93ID:rdRO2HTr0
>>479
レスポンスがbrotliで圧縮されてる
そのままブラウザに出力したいだけならContent-Encodingを設定しておくだけ
header('Content-Encoding: br');

jsonとして読み込みたいならbrotliのエクステンションをインストールしてからデコードした上でjsonにデコードする
0485デフォルトの名無しさん (アウアウクー MM05-KMlg)
垢版 |
2021/07/26(月) 20:20:23.98ID:BzqZLuZJM
1つ聞きたいんですが画像ファイルのセキュリティについてです。
自分の調べた聞いて理解した範囲では画像を<img src="画像URL">で表示するのは、
画像を表示するためにそのURLにアクセスできるので危険

画像をbase64にエンコードします
デコード(複合化)もできるので意味がほぼないです

サイズとMIMEチェックをして画像を表示させる前に、画像ファイルである事を確認する
必要ならサイズやビット深度を変更する

https://teratail.com/questions/350744で聞くと,
ファイルをアップロードするのは「サイト運営側」だけであれば問題ありません。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13246474913で聞くと、
mineチェックとサイズ変更しなさい、
できればアップロード時のファイル名を元のものから変更する、自サイトのページ内に配置された画像としてしかアクセスを禁止するなどしなさい
結局どれが正解なんでしょうか?
0486デフォルトの名無しさん (ワッチョイ 8bbb-OwHR)
垢版 |
2021/07/26(月) 20:26:04.88ID:B9v6ZV500
>>485
どのようなリソースをどのような攻撃から守るかの仕様が提示されない以上正解はありません
セキュリティポリシーやセキュリティ設計から見直してください
実装を決めるのはその後です
0490デフォルトの名無しさん (オッペケ Sr85-KMlg)
垢版 |
2021/07/26(月) 22:31:24.99ID:nQwBFtLMr
>>487
wordpress以外でも同じでしょ?
それに管理画面からじゃなくフォルダのディレクトリに置いたファイルの話なんで画像限定じゃないですね
phpやcssのファイルでも同様かどうか知りたいです
0491デフォルトの名無しさん (オッペケ Sr85-KMlg)
垢版 |
2021/07/26(月) 22:44:03.71ID:nQwBFtLMr
画像ファイルのアップロードの時のセキュリティはwordpress関係なく同じでしょ
0492デフォルトの名無しさん (ワッチョイ 1302-/zz1)
垢版 |
2021/07/26(月) 22:56:31.97ID:7+uo32oc0
>>491
WPインストールしたらアップロード周りのソース全部読んでセキュリティホール無いことを確認するの?
WPで画像表示する時は表示用PHP作ってbase64変換かますの?
そして、アップロードする時は常に気をはるの?
0493デフォルトの名無しさん (アウアウウー Sa5d-XNQa)
垢版 |
2021/07/27(火) 00:25:56.73ID:eUxCT57wa
>>492
そんなことはしませんが、最低限のセキュリティは同じでしょ?
base64じゃセキュリティにならないからファイルを関数化して複雑なファイル名にする
それプラス最低限のセキュリティ、今回は画像なのでMIMEチェック
もし自分以外のユーザーが画像を上げるなら
自サイトのページ内に配置された画像としてしかアクセスを禁止する
word pressだからセキュリティは要らないっていうのはおかしいでしょ
0494デフォルトの名無しさん (ワッチョイ 1302-/zz1)
垢版 |
2021/07/27(火) 01:30:32.63ID:7P6684PB0
>>493
>>487 を読み返してください
WPが前提、WPのシステムからアップされたメディアファイルの話し
更に言えば、このスレに住み着いてるWPガイジへのレス(アンカー見ればわかるでしょう)で自分で弄ることが前提
そして事の発端は
>>指定画像を出力したうえでメニューを作りたい
だからね?


>そんなことはしませんが
と仰られるように、前のレスの質問にNoと言うことはWPのシステムのセキュリティをある程度信頼してるわけですよね
この件ではそれで十分だろうと言う話ですよ

セキュリティの一般論の話なんてしてませんよ
0496デフォルトの名無しさん (ワッチョイ 532c-MYQi)
垢版 |
2021/07/27(火) 04:39:04.62ID:x4yitIm80
Word Press の質問は、web制作管理板のスレの方へ移動してください!

Laravel のスレも、この板に立てている香具師がいる。
Laravelの質問は、WEBプログラミング板の方へ!
0500デフォルトの名無しさん (ワッチョイ 2954-p8kO)
垢版 |
2021/07/27(火) 09:02:44.68ID:opDlelu60
るびースレに行ってもらえば万事解決するんじゃないかな
0504デフォルトの名無しさん (ワッチョイ 7108-8Xcr)
垢版 |
2021/07/28(水) 10:44:10.50ID:5Wbud5da0
>>485
関連レスをザッとだけ読んだけど、スレ回答者の中にもおかしな事を言ってるやつはわりといる
いちいち指摘してたらキリないから割愛するが、スレ回答者の皆が実務経験豊富なプロってわけじゃないからなぁ…

でもお前さんも、自分が「思い込みが激しくて頭が固いタイプ」だって事は自覚しよう
rssの質問のときも、print_r($rss); とするだけで理解できる筈の事を理解できず、質問を繰り返してたでしょ?
だからスレが荒れるんだよ? 分かる?
0505デフォルトの名無しさん (ワッチョイ 7108-8Xcr)
垢版 |
2021/07/28(水) 10:44:53.11ID:5Wbud5da0
>>485
で、元の質問は>>453でしょ?
画像を出力するコードの中にHTMLを出力すれば、意図した結果にならないのは当たり前

普通は「画像出力専用のPHP」を用意してこうやる
<img src="output_image.php?id=12345">

そして「HTMLを出力するPHP」の中で下記のようにすればいいだけ
<html>
<body>
<img src="output_image.php?id=12345">
</body>

こういう発想ができないのは、頭が固い証拠


どうしても1つのPHPファイルの中で、画像の出力とHTMLの出力とを同時に行いたい場合はこうする
echo '<img src="data:image/jpeg;base64,' . base64_encode(file_get_contents('img/abc/123.jpg')) . '">';
要するに、画像(バイナリデータ)をbase64でエンコードし「文字列(テキストデータ)として出力」すればいい(インラインイメージと呼ぶ)

これに「セキュリティ的な意味はほぼない」ので、勘違いしないよう
インラインイメージで画像を出すかどうか?ってだけ

まぁこんな事をやってもメリットなんか無いから、普通は「画像出力専用のPHP」を用意する
0506デフォルトの名無しさん (ワッチョイ 7108-8Xcr)
垢版 |
2021/07/28(水) 10:46:52.30ID:5Wbud5da0
>>485
>>505に書いたoutput_image.phpの仕様がもし
output_image.php?path=img/abc/123.jpg
のように、画像のパスを渡したらその内容をそのまま表示するとなっていた場合、「パストラバーサル」と呼ばれる脆弱性が発生する危険性がある

例えば、pathの値が「img/../../../secret.txt」だった場合、意図せずsecret.txtの中身が第三者に読まれてしまうって事ね
だから、そうならないようpathの値をしっかりチェックしないといけないのだけど、一連の質問を見ている感じ、あなたにそれを自前でやるのは無理だと思う

なので、「ファイルパスを渡す」のではなく、最初の例のように「画像を識別できるIDを渡す」ようにすればいい

※?path= で値を受け取るPHPをインターネット上に公開し、ログを取ってみるといい
※笑うぐらい攻撃があちこちから飛んでくるのが確認できるから
0507デフォルトの名無しさん (ワッチョイ 7108-8Xcr)
垢版 |
2021/07/28(水) 10:50:19.40ID:5Wbud5da0
>>485
最後に

アップロード処理が管理者にしかできない = 第三者に変なファイルをアップされる心配がないのであれば、
<img src="img/abc/123.jpg">
で別にええのよw

img/abc/123.jpg というファイルパスを第三者に知られたくないなら、>>505の例のように「間にPHPをかまして出力」すれば良いってだけ


逆に、第三者に変なファイルをアップされる心配があるのであれば、「アップロード処理の際に(出力の時ではなく)」厳密なチェック処理をしないとダメ

それについては、>>466さんも紹介してくれている
https://qiita.com/mpyw/items/939964377766a54d4682
を読めばいい

・第三者が自由にファイルがアップロードできる
・アップロード処理の際に上記のようなチェック処理ができてない
・アップロードされたファイルへ第三者がアクセスできる

3つの条件を満たしているとセキュリティ的にヤバいよねってだけ
例えば、「任意のファイルを自由に読み書きできるPHPファイル」をアップロードしそれがそのまま実行できたらヤバいでしょ?
分かる?
0508デフォルトの名無しさん (ワッチョイ 0bba-p8kO)
垢版 |
2021/07/28(水) 12:52:23.66ID:9bJDIHUz0
釣り質問にマジレスすんなよアホ
0511デフォルトの名無しさん (ワッチョイ 7108-8Xcr)
垢版 |
2021/07/28(水) 16:54:11.72ID:5Wbud5da0
>>479
error_reporting(E_ALL);
ini_set('display_errors', 1);
$url = "https://f.irbank.net/files/8700/fy-profit-and-loss.json";;
$json = file_get_contents($url);
var_dump($json);

ってやったらどうなる?
string(1676) "{"meta":{"type":"\u696d\u7e3e","item":{"\u5e74\u5ea6":["\u58f2\u4e0a\u9ad8",…
みたいなレスポンスが返ってこない?

とりあえず↓の行は要らんでしょ
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');

>>481
関係ない
PHPのバージョンぐらいは書いた方がいいが
0512デフォルトの名無しさん (オッペケ Sr85-KMlg)
垢版 |
2021/07/28(水) 20:23:13.38ID:jpPdNADXr
>>507
それをあわせてファイルをチェックするのが
MIMEチェックをして画像を表示させる前に、画像ファイルである事を確認するってことですよね?
画像をecho '<img src="data:image/jpeg;base64,' . base64_encode(file_get_contents('img/abc/123.jpg')) . '">';で表示して
MIMEチェックするのがそんなに難しいことなんですか?
0514デフォルトの名無しさん (ワッチョイ 7108-8Xcr)
垢版 |
2021/07/28(水) 22:44:28.91ID:5Wbud5da0
>>512
MIMEのチェックが必要なのは、「第三者が」画像の「アップロードをするとき」の話ね
画像を表示させる前にそんなものは要らない

> MIMEチェックするのがそんなに難しいことなんですか?

PHPでアップロード処理した際、MIMEタイプは $_FILES['hoge']['mime'] に入るんだけど、
それは偽装できる
だからその値は信用せず mime_content_type() などで別途チェックしようってこと

当たり前だが、自分しかアップロードしないならそんなチェックはしなくていい

つかさ、「自分(管理者)しか画像をアップロードしない」のか
それとも「第三者も画像をアップロードする」のか、
まずはそこをハッキリさせるべき

だから回答もめちゃくちゃになる
0516デフォルトの名無しさん (ワッチョイ 8bbb-OwHR)
垢版 |
2021/07/29(木) 05:43:31.56ID:4AVEtKuA0
>>514
> 当たり前だが、自分しかアップロードしないならそんなチェックはしなくていい

これ、管理画面からしか画像アップロードを許さないって状況を言ってるんだと思うけど、その場合もちゃんとチェックすべき
他の脆弱性と合わせて管理者権限でアップロードする手口があるので、このへんで手は抜かないほうがいい
0518デフォルトの名無しさん (ワッチョイ 0934-nYep)
垢版 |
2021/07/29(木) 09:20:26.22ID:zpf7CT600
え?お前らSFTPで画像アップロードする時なんかもMIMEタイプのチェックやってるの?
管理者権限奪取されるような状況でMIMEタイプのチェックなんか意味ないだろw
0519デフォルトの名無しさん (ワッチョイ b93e-96xQ)
垢版 |
2021/07/29(木) 09:39:40.25ID:rmmFdFBh0
自分WPしらんから適当言ってる
0520デフォルトの名無しさん (ワッチョイ 7108-8Xcr)
垢版 |
2021/07/29(木) 11:01:03.28ID:CBbl/boe0
>>516
>>453に "wp-content/uploads/2021/07/7mgpH3K.jpg"
ってパスがあるからWordPressだよね

WordPressの管理画面からアップロードされたファイルは、
デフォのディレクトリ構成なら最終的には wp-content/uploads/ 以下の「公開ディレクトリ」に置かれる

なのでWordPressへその画像が表示される際も
<img src="ttps://example.com/wp-content/uploads/○○.jpg">
という形になる

だったら>>453も単に
<img src="ttps://example.com/wp-content/uploads/○○.jpg">
とすれば終わりの話だよw

でも、何がしたいのかよく分からんが、>>453ではわざわざ readfile() とか使ってるw

まぁでも、WordPress管理画面から自分がアップロードし公開ディレクトリに置かれたものなのだから、
readfile() でそれをそのまま出力しても問題はないさ
0521デフォルトの名無しさん (ワッチョイ 7108-8Xcr)
垢版 |
2021/07/29(木) 11:02:30.36ID:CBbl/boe0
>>520の話は俺より先に
ID:7+uo32oc0
さんが指摘してるし、>>494さんもそれをフォローしてる

そこへゴチャゴチャ言うのがいるから話がこじれる
453は「HTMLとPHPの役割分担すら理解できてないヤベー人」なわけで、
そんな人へゴチャゴチャ言っても理解できるわけがないのにさ

WPスレへ行けといくら書こうが無駄なのだし、
さっさと問題を解決しスレから居なくなってもらうのがベターかと
0523デフォルトの名無しさん (ワッチョイ 4901-nYep)
垢版 |
2021/07/29(木) 11:17:31.59ID:HtmB+4p50
セキュリティの一般論なんか持ち出すのがいけない
0527デフォルトの名無しさん (ワッチョイ b37d-p7II)
垢版 |
2021/07/29(木) 13:14:38.56ID:kQQSV7PN0
こいつサイトに載せるバナーイラストをお絵描き板で個スレ立てて練習してるやつと同一かな?
pixivを超えるサイトを作るらしいぞ。だから第三者がアップロードする事に拘ってるんだと思うぞ。
0529デフォルトの名無しさん (ワッチョイ 7108-8Xcr)
垢版 |
2021/07/29(木) 18:37:55.60ID:CBbl/boe0
>>526
たしかに同一人物だ あまりにも口調が違うから気づかなかったw
Rubyガイジの件もサンクス これも気づいてなかった

>>528
だね
フィルタ使って 'attachment_link' や ''wp_get_attachment_url'
に対し絶対URLを相対パスへ変換するフィルタを適用すれば
相対パスに変える事もできるけどね

526が教えてくれたけど、524はRubyガイジみたいだから相手にしなくていいよ
0531デフォルトの名無しさん (ワッチョイ faad-ozmT)
垢版 |
2021/07/30(金) 15:35:03.64ID:B9OLCwSG0
2005年前後にに発行されたPHPの本がたくさんあります
バージョン4や5辺りです
以前はこれらの本を見ながら簡単なことをやったりしていましたがもう完全に忘れています
今、小さな店のweb予約システムをPHPで作りたいと思っています
今はPHPのバージョン7か8でしょうか
新規に本を揃えた方がいいですよね?
おすすめの本、勉強方法などあったら教えてください
スレチであれば誘導お願いします
0534デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/07/30(金) 17:00:35.86ID:UtQvC7c20
>>531
本が必要なら買い換えるべき(最低限PHP7…できれば7.3〜対応のものを )
作りたいものがはっきり決まってるのはとても良い事

とにもかくにも、まずはローカルにまともな開発環境を作ろう
スレの質問を見てると、開発環境を作れていないであろう人の質問は色んな意味でヤバいw
開発環境を作るのははじめは面倒だと思うけど急がば回れ

※533はRubyガイジなので注意
0535デフォルトの名無しさん (ワッチョイ faad-ozmT)
垢版 |
2021/07/30(金) 19:29:14.24ID:B9OLCwSG0
どうせなら新しい8を勉強した方が効率いいかなと思ったんですけど、今使っているレンタルサーバがまだ8に対応してませんでした
7.3以上ですね、わかりやすそうな本を店頭で探してみます
予約システムの作り方とか似たようなものがないかも探してみよう

ローカルの環境開発、どの本にも書いてあったので昔入れてました
懐かしい
これも入れておきます
いつ完成するかわかりませんが久しぶりで楽しみです
アドバイスありがとうございした
0536デフォルトの名無しさん (オッペケ Sr05-4OD8)
垢版 |
2021/07/30(金) 19:29:28.58ID:r27NHL07r
img.phpを用意して<img src="output_image.php?id=12123">
header.phpのbodyに<img src="output_image.php?id=12123">と追加したのですが表示されないようです。
output_image.php?idで画像を表示できるのでしょうか?
0537蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9a-KTRx)
垢版 |
2021/07/30(金) 19:34:30.43ID:GDRR8sIEd
確認します。
img.phpというファイルはありますか?
output_image.phpというファイルはありますか?
output_image.php?id=...
に直接アクセスして画像は表示されますか?
0538デフォルトの名無しさん (オッペケ Sr05-4OD8)
垢版 |
2021/07/30(金) 19:40:25.38ID:r27NHL07r
画像パスがupload.php?item=12123となっているのに対し
<img src="upload.php?id=12123">では取得できない気がするのですが、idから取得できるんでしょうか?
0539デフォルトの名無しさん (オッペケ Sr05-4OD8)
垢版 |
2021/07/30(金) 19:46:25.67ID:r27NHL07r
output_image.phpというファイルを作って中に<img src="upload.php?id=12123">
header.phpのbodyに<img src="upload.php?id=12123">と記載しても表示されません

直接output_image.php?id=12123にアクセスしても表示されないようです
0540デフォルトの名無しさん (オッペケ Sr05-4OD8)
垢版 |
2021/07/30(金) 19:58:25.74ID:r27NHL07r
wordpressの場合特殊なのか、idから画像をリサイズして表示するときに<php echo wp_get_attachment_link( 12123 ); ?>で表示されました。

テンプレートタグ/wp get attachment link - WordPress Codex 日本語版
0542デフォルトの名無しさん (オッペケ Sr05-4OD8)
垢版 |
2021/07/30(金) 20:00:25.98ID:r27NHL07r
いずれはwordpressではなくデータベース軸でサイトを立ててみたいので、output_image.php?id=...で
なぜ表示できないのかも知りたいんですが…
0543デフォルトの名無しさん (オッペケ Sr05-4OD8)
垢版 |
2021/07/30(金) 20:09:34.89ID:r27NHL07r
<php echo '<img src="data:image/jpeg;base64,' . base64_encode(file_get_contents('wp-content/uploads/2021/07/7mgpH3K.jpg')) . '">';?>

だと同じように表示されました。教えていただきありがとうございます。
第三者がアップロードするかどうかでセキュリティを考えるんですね、コメントしかりページナビしかりマイページ機能しかり。
0544蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9a-KTRx)
垢版 |
2021/07/30(金) 20:34:44.87ID:GDRR8sIEd
WordPressはWPの作法に従わないと動かないことがあるよ。裏でCSSやら.htaccessやらJavaScriptやらが動いていて、実際の処理は隠蔽されてるから。
0545デフォルトの名無しさん (オッペケ Sr05-4OD8)
垢版 |
2021/07/30(金) 21:45:55.50ID:r27NHL07r
>>544
ありがとうございます
0546デフォルトの名無しさん (オッペケ Sr05-4OD8)
垢版 |
2021/07/30(金) 21:52:20.21ID:r27NHL07r
> 「不正な画像をアップロード」できるのも内部犯に限られることになる

XSS を利用して不正アップロードする手口が徳丸さんのとこで紹介されていました。
https://www.youtube.com/watch?v=FpCabifwhKg

WordPress なら外部から似たような攻撃でアップロードされる可能性があるので、プログラムレベルでも適切にアップロード対策をしておくべきだと思います。

このような回答が追加されていたのですが外部からも勝手にアップロードされる危険性はあるのでしょうか?
0547デフォルトの名無しさん (ワッチョイ d610-oSv0)
垢版 |
2021/07/30(金) 23:36:35.91ID:1geFHcN20
ありますよ。実際に自分はアップローダーからマルウェア仕込まれて
VPSサーバーを総入れ替え舌経験があります。
WordPress宛の攻撃は毎日あるし、できる対策は全てしたほうが良いでしょうね
0548デフォルトの名無しさん (アウアウウー Sa09-d0wC)
垢版 |
2021/07/31(土) 01:52:34.20ID:v7hkUDSma
この動画を見たところ検索フォーム?のXSS対策コードの記載漏れから不正コードを入力されて管理画面に侵入されたみたいですが

要するに第3者が侵入出来るような検索フォームやお問い合わせフォームやコメントフォームやマイページの対策を怠らない事で防げるということですよね?
自分のみがアップロードする場合は該当しないのでしょうか?
0549蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9a-KTRx)
垢版 |
2021/07/31(土) 03:18:27.24ID:ZYWMYotdd
脆弱性は様々な枯れてない技術から発見されている。あのWPだってあちこちからゼロデイ攻撃が見つかっている。WP のテーマやプラグインにも脆弱性がある。度重なる更新や脆弱性に対応できないならWPを使うのをやめた方がいい。

パスワードセキュリティにも危険性がある。パスワードはセキュリティの基本であり、5文字程度の単純なパスワードはパスワードクラッカーで短い時間で突破されてしまう。攻撃者は性能の高い計算能力を持ち、世界中のどこからでも攻撃できる。パスワードは単純なのはダメ、短いのはダメ、憶測できるのはダメ。

あるいはソーシャルハッキングや電波漏れなどの未知のハッキング手法からも攻撃が成立することがある。

こうすれば絶対にハッキングされないという方法はないが、危険性が高いものを避けることは可能。
0550デフォルトの名無しさん (ワッチョイ d610-oSv0)
垢版 |
2021/07/31(土) 10:31:19.92ID:fqpnvpaJ0
>>548
WordPressの場合、自分は管理画面のURL変えてIP制限入れてますよ。
自分のみがアップロードなら、自分しか使えないIPアドレス制限した方がいいし、
ホスト名とか環境変数とか、そこまでチェックした方が確実だと思います。

ま、一番良いのはWordPress使わないことですけどね
0553デフォルトの名無しさん (ワッチョイ 56bb-ds/h)
垢版 |
2021/07/31(土) 11:34:42.98ID:z/SvtBD30
>>552
ユーザ投稿のプレビュー箇所とアップロード機能を持つ管理画面って,WordPressで頻繁に見るんだが?
それぞれに問題箇所があるとwebshell置かれて終了!の可能性を指摘する動画だけど、理解できてる?
0554デフォルトの名無しさん (ワッチョイ 9154-mx9M)
垢版 |
2021/07/31(土) 11:37:50.11ID:BUpo1U8M0
プログラムで例えば4×4のマップがあった場合、4という数字は私は格子点数と呼んでいますが、皆さんは何と呼びますか?
0556デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/02(月) 10:21:18.11ID:JwyUb7gK0
>>536
Oh...
それ、単に「例」として出しただけなのでw

例えば(あくまでも例え話ねw)
ID | 画像のパス
1 | hage/abc.jpg
2 | fuge/345.jpg
みたいにデータ管理してたとして、

id=1 を渡せば hage/abc.jpg を取得できるようにすれば結果的に
output_image.php?id=1
とすれば、「hage/abc.jpg」を表示できるでしょ?ってこと

それを、
output_image.php?path=hage/abc.jpg
みたいに直接パスを渡すような設計にしてると、あなたのレベルでは危ないよってだけ
0557デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/02(月) 10:45:18.84ID:JwyUb7gK0
>>546
> 外部からも勝手にアップロードされる危険性はあるのでしょうか?
そりゃ「可能性」はあるよw
人間が作るものにバグ(脆弱性)がないものなんてない

で、>>546にはその動画の意味は理解できる?
理解できてないよね
理解できてないのに、何をどうやって「対策」するの?w

その動画に指摘されている脆弱性は、「プラグインのXSS脆弱性を悪用した攻撃」なので、
対策といったところで、あなたのレベルでできるのは「WP本体やプラグインは常に最新版を使う」事ぐらいだよ?
※その動画の攻撃例は管理画面にIP制限なんかしても無駄ですw

結局、「画像は546本人しかアップロードしない」んだよね?
だったら、「アップロードした画像には問題ない」事を前提に話を進めようよ

546は、「HTMLやPHPの基礎がないままWordPressから始めた」のがいけない
基礎がガタガタなの
そんな人が細かい事を気にしたところで、話は前に進まんよ
0558デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/02(月) 10:50:01.92ID:JwyUb7gK0
>>552
>>555
546の動画の例は、WordPressでECサイトを構築する際の「超定番」プラグインEC-CUBEのXSS脆弱性を悪用したもので、
「実際に悪用事例も出た」ものだけどね…
そんな事すら理解できないなら、横からしゃしゃり出てこずに黙っておけw
0559デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/02(月) 10:59:23.86ID:JwyUb7gK0
>>546
>>557に補足しとくと、WordPress本体・プラグイン・テーマファイルの致命的な脆弱性を悪用され、
WordPress権限から自由にファイルのアップロード・編集が可能になった場合、
サーバー内の画像をPHP経由で出力する際のセキュリティ(笑)なんか、いくら考えても無駄ですw

その点については>>518さんが指摘している通り

例えるなら、「ヘルメットを被っていたら快速電車にダイブしても大丈夫だよね?」って聞いてるみたいもんw

だから、自分しかアップロードしない画像ファイルは安全であるという前提で、話を進めようよ…いや頼むからそうしてくれw
てかRSSの時もそうだけど、たったこんだけの事にどんだけ時間かけてるのよw
0565デフォルトの名無しさん (ワッチョイ 5d01-QEAr)
垢版 |
2021/08/04(水) 15:31:27.53ID:QhYrANy70
Array(a1,b1,c1,d1,...)とArray(a2,b2,c2,d2,...)を足し算して、
2次元配列にする時って、どうすればいいでしょうか?

$x[0]がArray(a1,b1,c1,d1,...)の時、
$x[1] = $s;としたら、
$xがArray(a2,b2,c2,d2,...)で上書きされてしまいました。
0567デフォルトの名無しさん (ワッチョイ 5d01-QEAr)
垢版 |
2021/08/04(水) 15:44:34.90ID:QhYrANy70
foreach とか for とか使うしかないでしょうか?
0569デフォルトの名無しさん (ワッチョイ 9a2c-QEAr)
垢版 |
2021/08/04(水) 16:36:34.91ID:BE8GLseK0
Ruby なら、zip で複数の配列を、組み合わせられる

ary_1 = [ 1, 2, 3 ]
ary_2 = [ 10, 20, 30 ]

p tmp_ary = ary_1.zip( ary_2 )
#=> [[1, 10], [2, 20], [3, 30]]

p results = tmp_ary.map{ |a, b| a + b }
#=> [11, 22, 33]
0572デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 00:28:51.82ID:F8+XC2Dv0
PHPで接続を明示的に切る方法ってある?

本処理後、後処理としてDBの整理を行うのだが、
本処理と後処理が同程度の重さになるので、可能であればTCP接続を明示的に切りたい。
そうすればブラウザが確実に処理を始めるので、クライアント側の体感速度が上がることを期待している。
とりあえずfush()はした。出力バッファは使ってないので、ob_xxxxはやってない。
他に何かある?
0573デフォルトの名無しさん (ワッチョイ 5d01-pCDs)
垢版 |
2021/08/05(木) 00:42:12.36ID:N2Iw/qnR0
意味不明
0575デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 01:01:42.06ID:F8+XC2Dv0
ああすまん、書き方が悪かった。
こちらはPHPの初心者なので、そちらが想定しているような高度なことはしていない。
「TCP接続」をDBとの接続だと想定したのだと思うが、こちらはSQLiteだ。

クライアント(ブラウザ)からのアクセスで、SQLiteを操作してhttp出力を行う。
その後、ユーザーに対しての追加の出力はないので、ここでユーザーとのTCP接続(=http接続)を切りたい。
(確かGoかNodeだとこれが出来た)
さらにその後、後処理を行うのだが、これが本処理と同じ程度に重い。
そしてexitで終了する。

ブラウザがexitにてTCP接続が切れてからパースを開始すると、体感2倍重くなってしまう。
flushでデータを全部送りきることは出来るが、
ブラウザはパースしないと全部来たことが分からないので、fulsh後にすぐ動くことは期待出来ない。
http接続が切れれば、それ以上のデータはないと確定するので、パースを確実に開始する。
だからこれを早めたい。

何か明示的に出来る方法ってある?
0578デフォルトの名無しさん (スップ Sd9a-0pp8)
垢版 |
2021/08/05(木) 03:48:16.16ID:9Ap3lZssd
>>575
〜ここまで本処理
// 結果を待たずに次の行へ進む非同期コマンド
exec('php 後処理.php > /dev/null &');
exit;

もし後処理.phpに何かパラメーターを渡したい場合は
exec('php 後処理.php パラ1 パラ2 パラ3 > /dev/null &');

受け取る側の「後処理.php」の中で$argvに配列として格納されてる
0579デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 06:36:47.33ID:F8+XC2Dv0
>>577-578
なるほど、マルチプロセスだから根本的に考え方が違うんだな。ありがとう。
(だとすると、途中で明示的に接続を切れたのはNodeか?)

マニュアルページが完全にstackoverflow並のtips集になっていることにも驚いた。
https://www.php.net/manual/ja/function.exec
(やたらWindowsについての言及が多いが、意外にIIS上で動かされてるのか?)

見た目同期コマンドだが、出力を捨てれば確かにバックグランウンドで動くらしい。
そしていきなり環境依存コードを注入するというのはプログラマとしては頂けない。
ここら辺のノリがPHPの嫌いなところだ。
プログラマ向けに作ってないから、プログラマの常識でやってると変に嵌ったり、見落としたりする。
とはいえ、便利なのは事実だし、所詮スクリプトだと割り切るのも必要なのだろうけど。

とりあえずの問題は、開発環境がローカルホストのXAMPP(つまりwindows)で、
実行環境がレンタルサーバー(つまりLinux)ってところだが。

まあ、いずれにしてもありがとう。
この質問には確かにexecが正解のように見える。
0581デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 07:24:02.52ID:F8+XC2Dv0
>>580
だから発想が『プログラマとしては』おかしいんだよ。
少なくともNodeでもGoでも、環境依存無しのコードを記述出来る。
PHPでは出来ないのに、それでも良しとされてる。
そういうところが嫌いなんだよ。

覚えだが、上記の通り、明示的に切れたのは多分Nodeだ。
これはそもそもシングルスレッドだから、PHPのようにスクリプト終了=接続終了とは出来ないから当たり前だが。
そしてGoなら内部プロセス(goroutine)で、となる。もちろん環境とは依存しない。

PHPでも、session_write_closeと同様に、例えば write_close() というコマンドを作り、
そこで接続終了、それ以降の出力は全部捨てられます、とすれば、全く問題なく環境依存無しに出来る。
だからプログラマが主導して開発をしていればとっくにそうなってるはずなのに、
現実としてそうなってないから、色々無駄に戸惑う。だから好きにはなれない。

何だかんだで意外とNodeが蔓延っているのは、ここら辺の理由もある。
今回の使途ならJSのsetTimeoutでの実装の方がプログラムとしては断然美しくフィットする。
PHPで書くと、こんなコードにしかならないのかよ、と本当に愕然としてしまう。
腕が良くてもまともなコードを書けないんだよ。
それは上記の通り、PHPの開発の方向性が間違ってるからだ。
(とはいえ例の三項演算子についてはPHP8で修正されてるようだが)

まあとにかくだ、プログラマとしては禁忌に近い「環境依存コードの注入」を普通にやらせるのは異常だし、
そんな状況が放置されてること自体も異常なんだよ。
だからプログラマがPHPを好きになることはないと思うよ。
PHPを好きな奴は、他言語をまともに使えない奴だけだと思う。
0582デフォルトの名無しさん (ワッチョイ 56bb-ds/h)
垢版 |
2021/08/05(木) 07:52:13.16ID:Sb1zsMiv0
>>581
んなアホなことやりたいなら、phpでWebサーバ書けばいい
メジャーなのはないけど、ふつうにGitHubにも転がってる

そもそもフィトするもんが別にあるんだったらそっち使うのがエンジニアだぞ
0583デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 08:23:37.05ID:F8+XC2Dv0
>>582
だからその発想がおかしいんだよ。フィットしてるなんて到底言えない。

PHPは「できればいい」「動けばいい」で済ませる初心者〜中級者の感覚に合ってる。
だからその層には絶大な支持を受けるが、上級者には支持されない。
実際、PHPが「プログラミング言語として」素晴らしいなんて言ってる上級者は世界中でも誰一人もいないだろ。

connection_closeとかを用意すればいいだけなのに、
外部コマンドで自己ファイルをバックグラウンドプロセスとして起動する、なんて解は、頭がおかしいレベルだ。
自宅から歩いて3秒の場所に自動車で行く、に近い。

以前は「XAMPPなんて捨てろ。どうせ本番環境では動かないし、XAMPPで開発する意味はない」とか言ってる奴も居たが、
実際はこの辺の、それが環境依存コードだと理解出来ないレベルの初心者が勝手にやらかしまくってるだけだと思うよ。
そしてその意味も分からず、「XAMPPなんて捨てろ」だけ真に受けた初心者が、
例えば>>394みたいに、右も左も分からないのにリモート環境で開発する、みたいな、余計におかしな事をやらかす要因となってる。

そしてその根元は、PHP自体に落とし穴がありまくるからだ。
なんでそこで環境依存コードを注入するしか解がないの?というね。

が、まあ、parallelとかphtとかはここら辺の対策用なのかな?
それにしても connection_close とかの単純な解の方が断然いいが。
0584デフォルトの名無しさん (ワッチョイ 56bb-ds/h)
垢版 |
2021/08/05(木) 08:42:00.19ID:Sb1zsMiv0
>>583
使ってる方からするとWebサーバレベルのハンドリングを意識しなくて良いレベルで抽象化されていることが使いやすいし、不足箇所は最近だとフレームワークが補完してくれている

ところで、支持してない上級者って何?
サーバサイド言語として、phpが必要ないって言っている人がいる?
普通に用途が合えばphp選択するのがエンジニアだと思うけど?
0585デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 08:50:37.83ID:F8+XC2Dv0
というか、思うにこれはPHPだと「出力用」と「DB整理用」のphpを別にして、
「DB整理用」は別にcronで叩く、というのが一般解なのかな?

これ自体も外部依存しているのでよい解ではないが、
ここまで蔓延っているPHPがこの辺の「普通にやる処理」を上手く記述出来ないのもあり得ない。
だとすると、現実的にはこの解なのだろう。

とはいえ、最安のレンタルサーバーだとcronは使えないし、
纏めて整理する時に命中したらその時だけ奇妙に遅くなるわけで、
出来ればマメに整理しておきたいのだが。
0586デフォルトの名無しさん (スップ Sd7a-0pp8)
垢版 |
2021/08/05(木) 08:55:46.01ID:yR6UN7xmd
>>583
〜ここまで本処理
//接続が切れてもスクリプトを実行させる
ignore_user_abort(true);
// メッセージ表示ページへ飛ばす
header('Location: 本処理完了しました.html');
flush();
ここから後処理〜

環境依存使わないなら、こんなんでどうですか?
0587デフォルトの名無しさん (ワッチョイ da52-wbwm)
垢版 |
2021/08/05(木) 09:02:59.57ID:e8dh7hYU0
>>583
ソースもないのに誰一人いないとか断言しちゃうから、だらだら長いだけで説得力のない空っぽな主張に見えちゃうんだぞ

お前さんの主張を支持する上級者は誰一人いないw
0588デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 09:24:21.23ID:F8+XC2Dv0
>>584
> 不足箇所は最近だとフレームワークが補完してくれている
では今回の connection_close なり write_close が出来るフレームワークを紹介してくれ。
無いだろ。
PHPで出来ないことは、PHPで記述したフレームワークでも出来るはずがないからだ。
(とJS同様に思ってるんだが、PHPの場合は例えばC++で記述されててPHPをDSLとして採用してるだけ、
みたいな実行環境形のフレームワークがあるのか?
それがapacheだnginxだ、みたいな状況ではあるが)


> サーバサイド言語として、phpが必要ないって言っている人がいる?
居ない。
しかし、PHPは「素晴らしいプログラミング言語だ」と言ってる奴も居ない。
それは君も知ってるとおり、色々グダグダ過ぎるからだ。今回も然り。
他言語だと楽に美しく実装出来る事が、出来ない。いちいちストレスだ。
(とはいえRust/Go推しの連中もどうかしてると思うが)

> 普通に用途が合えばphp選択するのがエンジニアだと思うけど?
それはその通り。だから俺も今回はPHPを選択している。
ただこれは「プログラミング言語として」ではなく、「実行環境含めて」だ。
今回は「無料レンタルサーバーでも動く」事も重要な為、今のところPHP以外に選択肢がない。
技術的には、サーバーレス+Nodeが一番フィットし、つまりherokuなのだが、
あれは無料だが海外鯖なので見送りにしてる。
サービス提供先は主に国内なのにいちいち海外鯖では無駄に遅くなるから。
そしてNodeの無料鯖が国内にも広まるのを待っていたのだが、これは今のところ全然なさそうだ。

とかやってるうちに他状況も整ってきたから、しょうがないからPHPで本格的に書くか、と諦めたわけだ。
あと、Nodeが数倍速いのも事実なのだが、どうせ鯖を借りる側からすれば、
値段当たりの処理能力なら実はVPS+Nodeもレンタルサーバー+PHPも大差ないのかも、という気もしてきてる。
この辺も諦めにつながってる。とはいえ、どのみちNodeでも書く羽目にはなりそうなのだが。
0590デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 09:33:30.26ID:F8+XC2Dv0
>>586
それは動かないだろ。
本処理で既にheaderとbodyは出力してる。
だからその後に header('Location')はアウトだ。

そして仮に動いたとしても、いちいちLocationで飛ばすってのも余計におかしい。
今現在の、結果的にブラウザが反応しないかも、その場合は通常より倍の時間がかかります、の方がまだマシだ。

ここらへんの、ちゃんとした解がないから余計なことで遠回りにやる、ってのもPHP界隈が嫌いな理由だ。
そういうのは初心者から中級者にクラスアップしてきた連中が俺ツエー的にやりたがるのだけど、
そういうのが多すぎて、PHP界隈はウザイ。
ただ逆に言えば、そういうことをしたいレベルの奴にとっては「俺カッケー」が出来るから、大受けする。
だからPHPを嫌いな人は多いが、廃れることもないだろうね。新規参入者はいくらでもいるから。
ある意味初心者ホイホイな面はある。
(ただしプログラマになる為の教育としてはかなり最悪だが)
0591デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 09:37:34.01ID:F8+XC2Dv0
>>589
あるならそれを教えてくれ。PHP.net上のurlだけでいいから。
jobで出てくるのは The GearmanClient class だけだが、さらっと見た限りなんか違うっぽいし。

というかね、PHP.netは本当に出来がいい。
あれだけは他言語も見習うべきだよ。
0593デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 10:14:26.57ID:F8+XC2Dv0
>>592
LaravelはPHPで書かれてるのだから、素のPHPで出来ないことが出来るはずがないだろ。
と思ってるのだが、この認識が間違ってるのか?
まあ、導入する予定はないが、見てみるよ。


Webプログラミング板のスレはさらっと読んでみたが、ぶっちゃけここと大差ないような。
まあ、ここで一通り終了したら向こうでも聞いてみるかも。

なお、俺はプログラミングの初心者ではないが、PHPに関しては初心者だ。
一通りも知らないからPHP.netをいちいち引きながら書いてる。
それでいちいち、「他言語ならこうだけど、PHPならどう書くの?」になるわけ。
0594デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 10:15:03.38ID:jTl1oJKL0
要は「非同期処理すればいいだけ」の話なのだが、ID:F8+XC2Dv0 はLinuxができない人?

だってさ、Linuxではコマンドの最後に「&」をつけるとバックグランドジョブになるのだから、
「言語を問わず」 "コマンド > /dev/null &" ってすればいいかな?って発想になるもん

で、開発環境はDockerやVagrantで作ればいい
PHPなんて良くも悪くも適当に書けば適当に動いてくれる言語なのだから、別にそれでいいじゃんw

PHPがどういう思想から生まれた言語なのかは以下のインタービュー記事を読むといい
https://gihyo.jp/news/interview/2010/rasmus

例えばNode.jsはシングルスレッド・シングルプロセスなのだから、入出力関連の処理を非同期で行ったりと設計思想からPHPとはまるで違う
1つの言語に固執せず適材適所で言語を使い分けるのがプログラマのなのだから、お前みたいな書き方をしてたら「だったらPHP以外の言語でやれば?」って思われるだけだw

ちなみにPHP8.1以降では「Fibers」が実装されて、非同期処理を綺麗に書けるようにもなるんだけどね
https://php.watch/versions/8.1/fibers
PHPってここら辺がすごい柔軟 良いと思った仕様はどんどん取り入れる

とにかく、グダグダグダグダとうるせぇんだよお前はw
自分の頭が固いだけなのに仕事ができると「勘違いしている自称上級プログラマ様(笑)」ってのが、現場で一番タチが悪い人間なのは間違いない
固くするのはチンコだけにしておこうな?
0595デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 10:21:45.83ID:F8+XC2Dv0
>>592
あ、すまん。訂正。
laravelをさらっと見たが、dockerで導入してるところからして、俺
が想定していたJS的なフレームワークとは違い、これは実行環境形のフレームワークだな。
Job管理もあるのだろう。これはこれから読む。(とはいえ時間はかかるが)
0597デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 10:24:44.74ID:F8+XC2Dv0
>>594
> 「言語を問わず」 "コマンド > /dev/null &" ってすればいいかな?って発想になるもん
理解してないのお前だ。俺は「言語を問わず」ではなく、「実行環境依存」なのを問題視してる。

まあお前レベルの奴がグダグダ言ってくるところがPHP界隈の嫌いなところだよマジで。
0599デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 10:49:57.76ID:jTl1oJKL0
>>597
だから「開発環境はDockerやVagrantで作ればいい」と書いた

とにかく質問は解決しただろ?
だったらPHPスレに居座る必要もない

WPガイジ(こいつも相当頭が固いw)といい、俺はサッサと質問を解決しガイジにお帰り頂きたいだけだ
繰り返すが固いのはチンコだけにしとけw それといももうチンコも勃たない歳か?w
0600デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 10:51:05.04ID:F8+XC2Dv0
>>594
ラスマスの記事を読んだ。まあ想定どおり。
これはWeb上のオープンソース開発、つまりJSやRustも同じ事。
それらに比べてPHPはポンコツ過ぎ。

ちなみにfiberが欲しいわけではない。それも「歩いて3秒の場所に自転車で行く」に近い。
俺がやりたいのは、 fclose(/dev/stdout) だよ。
ただまあ、PHPがラスマスの言うとおり勝手に開発された機能の団子なのなら、
俺が勝手にCのコード書いて送れば採用されるのかな?
精々10行程度で実装出来るから送ってみてもいいんだけどさ。

あとそれ、「PHPは柔軟でスゴイ!」ってのも、
最近よくいる「俺が使ってる言語スゲー=俺スゲー」系の馬鹿だから止めとけ。
他言語で既に使えてる便利機能が今更採用されたところでスゲーと思えるのは明らかに信者でしかない。
第三者なら「ようやくかよ」でしかない。
0601デフォルトの名無しさん (ワッチョイ 5d01-RnN5)
垢版 |
2021/08/05(木) 10:57:59.07ID:kPeKr//s0
ID:F8+XC2Dv0
質問に非同期って単語が出てない時点でお察しですな
PHPへの噛みつき方もテンプレ過ぎて10年前にタイムスリップしたかと思ったよ
加齢臭のするオッサンだろうな
0602デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 11:01:32.69ID:F8+XC2Dv0
>>599
> だから「開発環境はDockerやVagrantで作ればいい」と書いた
だからその解も本来は間違ってるんだよ。それは、

実行環境依存のコードしか書けないから、それぞれの実行環境を毎回用意してそこで開発しろ

なわけだろ。それはJavaが目指した「Write once, run anywhere」でも全然無いだろ。
まあ実際はともかく、そもそもプログラミング言語はOS上のレイヤだけで動いているのなら、こうあるべきなんだよ。
そしてJSとか他言語はそうなってる。
PHPはその努力もしてないから駄目なんだよ。

その、「間違った解を正解として誇らしげにドヤる」のも、
典型的な「初心者から中級者にアップしたての馬鹿」がやることで、おまえはまさにそれだよ。
実際PHP界隈はそういうのが多数派で、それが問題視されることはないのだろうけど、それ自体が問題だよ。
それでは生産性がまるで上がらない。まあこれも理解出来ないのだろうけどさ。
0603デフォルトの名無しさん (スップ Sd9a-0pp8)
垢版 |
2021/08/05(木) 11:04:37.37ID:/R94gyIjd
>>590
あたしは575の提案をして、環境依存に難色を示されたので、代替提案をしただけなのに、おかしいだろとか、ダメだとか、あっちのほうがマシだとか、なんでそんなに上からなんですか笑

既にbody出力済みという前提も無かったし。

なるほど、でもできればリダイレクトはしたくないです。とだけ返事すればいいものを。

リダイレクトNGなら、更に別の提案もあるんだけど、萎えましたです。
0604デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 11:05:12.89ID:jTl1oJKL0
俺、PHPがすげぇなんて一言も書いてないけどw
だからこそ「PHPなんて良くも悪くも適当に書けば適当に動いてくれる言語」だと書いたし
ラスマスのインタービュー記事を紹介したのだが、このガイオヤジはドヤ顔で何を勘違いしてるのだろうw

例えば>>579
> 見た目同期コマンドだが、出力を捨てれば確かにバックグランウンドで動くらしい

なーんて書いちゃってるから…ね
「&」ついてるのに、これのどこか同期コマンドなんだというツッコミw

質問は解決してるんだからもう用はないだろ?
あとはチラシの裏にでも書いとけw
0606デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 11:09:50.52ID:F8+XC2Dv0
>>601
非同期知ってる俺カッケー、か。
俺がやりたいのは非同期ではないんだよ。

ここら辺なんだよ、PHPerは、(JSerもだからWeb系全般だと思うが)
本人が実力を過大評価しすぎてていちいちウザイ。

今回は同期の fclose(/dev/stdout) がベストで、この単純なことが出来ないのは奇妙だと思って聞いてる。
他の言語/実行環境なら最初に用意される物であって、存在しないのはほぼありえない。
だから俺の勘違いか見落としだと思って聞いてるわけだ。
そしてこんな基本的な物がないのに非同期とかfiberとか、整備の順番を完全に間違ってるんだよ。


とはいえlaravelはどうやら俺の想定していたものとは違うので、そこにあることには期待している。
0607デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 11:14:45.50ID:F8+XC2Dv0
>>603
> 既にbody出力済みという前提も無かったし。
いやそれは普通に読めば分かるだろ。
むしろ、接続を切ろうとしてるのに、なんでその後に何か出せると思ったの?

もしかして、本処理ではheaderだけしか出力してないと思った?
それはレアケース(常に403とか?)であって、その仮定の方が無理あるだろ。
0610デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 11:25:02.26ID:F8+XC2Dv0
>>604
exec自体は同期コマンドなんだよ。
そしてその書き方自体も他言語が出来るプログラマにとっては気に入らない。

exec("cmd"); // 同期
exec("cmd > /dev/null &"); // PHPではこれで非同期、しかし書き方がイマイチ
exec("cmd") > /dev/null; // これならまだマシ
exec_async("cmd"); // 本来はこうあるべき

まあここら辺もPHPが嫌われる理由だよ。他言語と揃ってないからいちいち文法で躓く。
だから他言語で慣らした連中に取っては無駄に参入障壁となっていて、
結果的にPHPはPHP育ちの初心者パラダイスになってる。
そりゃ居心地はいいんだろうけど、良いコードに遭遇出来ないのは上達の妨げにしかならないことに本人達も気づけない。
なんだかね。
実際お前ら、上の4つ、何が問題か分からないだろ。
0613デフォルトの名無しさん (スップ Sd9a-0pp8)
垢版 |
2021/08/05(木) 11:34:43.32ID:Lk6xwBBud
>>607
いや、あなたの常識なんて知らないわよ笑
普通にアクセスされただけで(またはgetパラメーター付きとか)処理が走って、本処理が終わるまで何も出力しないように書き直して工夫することだってできる可能性もあるわけだし。
(もうここは掘り下げなくていいです)

てか、あなたが返事すべきはそこじゃないんだけど〜
0614デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 11:43:44.22ID:F8+XC2Dv0
>>612
開発環境の再構築に乗り気ではないのは、それは手段が目的化する恐れがあるから。

いろいろ分かってない状況(=今の俺)の場合は、環境構築こそが最大のネックで、
コード自体は書けば書けるものでしかないんだよ。
そして既にXAMPP+NetBeansでブレークポイントも当たるし、xhprofだっけ?も導入してるからそれでやってる。
(ただし環境を構築したのは4年前だから、君らからするとこれは古すぎかもしれないが)
新しい開発環境も、作ってしまえば結果的には楽勝なのかもしれないが、あっさり出来る自信がないんだ。


ただまあ、今回の話は、環境構築すればいいって物ではないのだけどね。
それって、例えば鯖を変えたり、あるいはGitHubで公開した後に「○○ですけど動きません」ってのに
いちいち対応するのか?って話になるだろ。

そもそも環境依存のコードを書くべきではない

ってのが大正義なのに、それを認めずあれこれ無駄に言ってくるからおかしな事になる。
お前らは何をすべきなのか本質を理解するべきだよ。
0616デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 11:46:58.60ID:F8+XC2Dv0
>>613
> 本処理が終わるまで何も出力しないように書き直して工夫することだってできる可能性もあるわけだし
本処理ではbodyを出力する場合もあるし、403等でheaderだけで終わる場合もある。
本処理終了後は出力はない。だからそこで切りたい。

というわけだがこれでいいか?
いずれにしてLocationでリダイレクトは度頭でやらないといけないから君の間違いだとは思うけど。

> てか、あなたが返事すべきはそこじゃないんだけど〜
どこよ?
0619デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 12:00:42.44ID:F8+XC2Dv0
>>613
616訂正。
> Locationでリダイレクトは度頭でやらないといけない
と思ったが、もしかしてリダイレクトが間に合わなかったケースを意図的に利用して接続を切ろうって事か?

それは解としてはだいぶ酷い。そういうコードを書くと数年後には意味不明で読めなくなる。
あとその場合は結局ブラウザ上でパースされた時に転送(=接続終了する)だけであって、
結局今の実装(ブラウザのパースタイミング次第)と同じでしかないし、改善しないと思うが。
0620デフォルトの名無しさん (ワッチョイ 9a2c-QEAr)
垢版 |
2021/08/05(木) 12:07:25.00ID:bqGeTZjz0
YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
バックエンド初心者用コースのポートフォリオでは、

基本情報技術者資格、Ruby on Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース

今までは、Docker Compose までが初心者用コースだったが、
最近は誰でも、Docker出来るから、
AWS Fargate, Terraform, React, Vue.js, TypeScript も

だから、AWSのくろかわこうへいのサロンにも、入る必要がある

これが済んだら、Ruby → Go で、時給1万円を目指す

Node.js, Django は使われていない。
PHP は一生やらなくてよいと言ってる

XAMPP, MAMP は、Linux じゃないから、やる意味がない。
WSL2 Linux とか、Heroku, AWSなどが良い

システムを、言語・アプリレベルで実現しようとするから、ダメ

普通に、AWSのSQS(キュー)。
企業が欲しい人材は、AWS Solution Architect。
AWSでシステムを組める人

だから何百人も、AWSのくろかわこうへいのサロンに入って勉強してる
0621デフォルトの名無しさん (ワッチョイ 0e70-pCDs)
垢版 |
2021/08/05(木) 12:14:58.24ID:dqIKXfcM0
スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
0623デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 12:19:31.36ID:jTl1oJKL0
まだやってて草w
で、この朝6時から20レス以上してるガイオヤジは、なんでPHPにこだわってるの?

> マルチプロセスだから根本的に考え方が違うんだな
> 質問には確かにexecが正解のように見える
と自分で書きながらもPHPではどうしても納得いかないんでしょ?
だったらPHP以外でやればいい
質問はこれで綺麗サッパリ解決したし、あとはチラシの裏へどうぞ

ちなみに>>610については、例えばPythonでsubprocess.run()を使っても一緒の話なわけで、
「PHPだから」という話ではない
それを非同期で実行したいならPythonならsubprocess.Popen()を使うし
PHPならpopen()やproc_open()を使う
0624620 (ワッチョイ 9a2c-QEAr)
垢版 |
2021/08/05(木) 12:19:59.18ID:bqGeTZjz0
PHP はレンタルサーバー用言語

Ruby on Rails は、プロ用フレームワーク。
WSL2 Linux, Heroku, AWS

だから、PHPでは転職できないから、KENTA のサロンでは勧めない

Node.js, Django も、Railsのシェアを崩せなかった。
募集がなく転職できないから、サロンでは勧めない

唯一の時給1万円コースの道筋は、Ruby → Go だけ

企業が欲しい人材は、AWS Solution Architect。
AWS でシステム構築運用できる人
0625デフォルトの名無しさん (スップ Sd9a-0pp8)
垢版 |
2021/08/05(木) 12:28:51.37ID:6TA++zayd
>>616

> 本処理ではbodyを出力する場合もあるし、403等でheaderだけで終わる場合もある。

だから、今の仕様はそうなのかも知れませんけど、その本処理はユーザーがアクセスしただけで処理が出来るなら本処理が終わるまで何も出力しないように書き換えればいいんだし、何かユーザーの入力に応じて処理するのなら、postで再アクセスさせて本処理が終わるまでなにも出力しないように書けないんですか?

まあいずれにせよ、リダイレクトはそもそも論外のようなので不毛な話しではありますが。
0626620 (ワッチョイ 9a2c-QEAr)
垢版 |
2021/08/05(木) 12:28:59.36ID:bqGeTZjz0
食べチョクみたいな若い女の子が、Ruby on Rails で1人で始めたサイトでも、
求人募集は、AWS に詳しい人

システム構築運用できる人

コロナで取引量が30倍になった。
こういうのは言語・アプリで解決できる問題じゃない

だから、むしろプログラマーよりも、LinuC などのLinux の資格保持者とか、
AWS Solution Architect が必要

今は、プログラミング言語よりも先に、
Linux コマンド・シェルスクリプト、Docker Compose, VSCode などが来る
0627デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 12:30:20.75ID:F8+XC2Dv0
>>623
まあforkしたいわけでもないんだけどね。それも事を大きくしすぎ。

Pythonを選択しないのは、俺が知らないからだね。
ただしレンタルサーバーでも使えるから、選択肢としてはありなんだろうけど、
言っちゃ悪いがPython使う理由なんてPHP以上にないでしょ。
0628デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 12:35:56.18ID:F8+XC2Dv0
>>625
一応聞くが、headerはbodyの後には出力出来ないってのを知ってるか?

ちなみに本処理はgetであって、postではない。
そして304ならheaderのみ、200ならheader+bodyの、至極普通のget処理だ。
その200、つまりheader+bodyを送信後に再びLocation"header"を出すのは不可能だが、それは理解してるか?
0629デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 12:37:33.28ID:jTl1oJKL0
>>627
Python使えなんて一言も書いてないんだがw
PHPのexec()の例は別の言語でも一緒って例を示しただけ

ほんと頭が固いというか思い込みが激しいというか…
現場に居たら陰口叩かれまてるタイプだわお前はw
0630デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 12:44:05.08ID:F8+XC2Dv0
>>629
なら、PythonもPHPと同程度に文法が糞だ、というだけだろ。
実際、Pythonを「プログラミング言語として」褒めてる奴も少ないだろ。
みんなが使ってるから使う、というのが大半であって。
0631デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 12:44:10.37ID:jTl1oJKL0
ちなみに、ものすごく低レベルな方法だがこんなやり方もある

> SQLiteを操作してhttp出力
の中に
<img src="重い処理をするPHP" width="1" height="1">

と書くだけw
これならcronが使えない環境でも簡単にできる
これで解決したら笑う
0633デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 12:58:15.10ID:F8+XC2Dv0
>>631
いや待て、今回はhtmlではなかったので駄目だった。
主にjsonとxmlだ。

まあしかし、発想自体は面白いよ。
ただ、なんか余計なアクセスが出てるように見えるからそれで実装することはないが。

今現在の実装だと、「運が悪く、ブラウザも怠慢していれば、倍かかる時があります」であって、
そんなに問題な実装でもないし、実際htmlを出すのは最初だけ(SPA)にしようとしてるので、それでは解決出来ない。
0634デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 13:00:46.26ID:jTl1oJKL0
>>632
こんなもんは、例えば何かしらのトラッキングや、メルマガで配信するHTMLメールで開封率を調べる時等で
当たり前に使われてる方法だけどねぇ…

でも、元の質問は>>575だろ?
これ>>631で解決するよな?w

でもどうせ気に食わないんだろ? だったらPHPなんかやめてサッサと他の言語でやればいい
なんでこのスレに居るわけ? サッサと出ていけよw
0635デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 13:06:35.62ID:jTl1oJKL0
>>633
また後付でなんか出てきたw
>>575はとにかく、重たい後処理をするPHPを非同期で起動させればいいだけ
それがexec()だろうがproc_open()だろうが<img>タグだろうが同じだ

それが我慢ならんのなら、それ以上PHPにこだわる必要性は何もない
まぁお前みたいな「面倒くさい人」はどこにでもいるよw
もうええでしょ
0636デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 13:08:11.92ID:F8+XC2Dv0
>>634
ああ、Webビーコンと大昔に呼ばれてて、その結果htmlメールは悪だとされた奴だな。
今でも普通に使ってるのか?それはそれで問題だとは思うが。
少なくとも、俺は>>631で出来る状況であってもそれは使わない。今現在の実装の方がマシ。
0637デフォルトの名無しさん (ワッチョイ 5d01-40L9)
垢版 |
2021/08/05(木) 13:08:51.75ID:xWv0yV5l0
pythonというのは、
等加速度直線運動の3公式で、多くの問題を解決するようなもので、
これをできれば、スピードアップするらしいが。
高度なことをできる部品はある。
0638デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 13:26:51.61ID:F8+XC2Dv0
>>635
ちなみに
> 重たい後処理をするPHPを非同期で起動させればいいだけ
これが間違い。

単に、出力を閉じる connection_close みたいな関数を呼んでユーザーとの接続を終了させ、
そのあとそのプロセスが引き続き後処理をすれば良いだけだし、これが一番軽い実装だ。
そして他言語だとこれは出来るのに、何故この基本的な操作ができないのだ?という話。

非同期=軽いとか思ってる馬鹿も特にJSには多いんだが、非同期が軽いわけではないんだよ。
むしろキューイングしてやる分だけ重くなる。
0639620 (ワッチョイ 9a2c-QEAr)
垢版 |
2021/08/05(木) 13:41:39.90ID:bqGeTZjz0
>>628
Ruby on Rails でも、view を、render できるのは1回限り。
double rendering 禁止

>>633
Railsなら、
format.html
format.json

と書いておけば、例えば、
books/1 なら、HTML、
books/1.json なら、JSON を返す

テンプレートファイルも、show.html.erb, show.json.erb と、ERB で2つ書いておく。
show.json.jbuilder と、jbuilder を使えば、もっと簡単に、オブジェクトをJSONにできる

Railsには、SPA 用のAPI モードもある。
HTMLを返さない。JSONでやりとりする

フレームワークを使わず自作してると、10年やっても低品質のまま。
Railsを1年やっただけの人にも勝てない
0640デフォルトの名無しさん (ワッチョイ 4dcf-pCDs)
垢版 |
2021/08/05(木) 13:44:24.19ID:/9S9EoKc0
robots.txtを守らないと逮捕されるって本当ですか?
0641デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 13:47:42.25ID:jTl1oJKL0
>>638
だからさー…あのなぁ…俺は「>>575みたい低レベルな話なら」それで解決するだろ?と言ってる
しかもレンタルサーバでやるような低レベルなもんだろ?

ここは質問スレだ
俺は「その低レベルな質問に対して方法を提示した」だけ

言語仕様が我慢できないなら他の言語を使え 何度も同じ事を言わせるな
つかお前、なんかの病気じゃね?w
0642デフォルトの名無しさん (ワッチョイ d108-1vA1)
垢版 |
2021/08/05(木) 13:51:30.80ID:jTl1oJKL0
>>640
どこから聞いたんだよそんな話w

例えば640が、robots.txtの記述内容を無視してスクレイピングをしたとする
そのせいでサーバに負荷をかけまくりサーバをダウンさせれば、罪に問われる可能性はあるわな
もしくは著作権で守られているコンテンツを無視して転載しても、罪に問われる可能性はあるわな

でもそれは、robots.txtを守らないと逮捕されるって話とは別の話だよな?
理解できるか?
0644デフォルトの名無しさん (ワッチョイ 4ee6-A9KZ)
垢版 |
2021/08/05(木) 14:04:31.11ID:xD0lMLd30
>>643
www
0645デフォルトの名無しさん (ワッチョイ d58c-0pp8)
垢版 |
2021/08/05(木) 14:06:09.47ID:IpTlZujB0
>>628
> 一応聞くが、headerはbodyの後には出力出来ないってのを知ってるか?

知ってますよ笑
だから、本処理終わるまで何も出力しないように書き換えればと言ってるんです
本処理完了の次の行でheader locationを出力し、リダイレクト先のページにパラメーター渡して表示すればいいです

<?php
sleep(3); // ←本処理の代わり(ここまで何も出力しない)
ignore_user_abort(true);
header('location: hoge.php?a=パラ1');
flush();
sleep(10); // ←後処理の代わり
exit;
?>

不可能かどうか、コピペで実行してみて笑
0646デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 14:22:57.10ID:F8+XC2Dv0
>>592
イマイチ全体像が掴めないのだけど、確かにジョブキューイングは出来るようだ。
ただ見たところLaravelのソースコードはphpのようだし、RedisだSQSだとか言ってるから、これは、

DBに対するPDOのように、キューイング機能のあるRedis/SQS等に対しての共通ラッパを提供したもの

ということでいいのか?
(そもそもRedis/SQS等は初耳なので大幅に勘違いしてるかもだが)
なお、確かに今回の俺の用途ならこれで対応可能だ。
話が大げさになりすぎてる感はあるが、
元々Laravelを知ってて、かつ、使える環境なら、この選択もありだろう。
いちいちキューを自前で作るよりもキューサーバー、なんてのは
あらゆる物をマイクロサービスに分割するWeb系的な発想ではあるが、まあ確かに面白い。
実際、Javaとか無駄にモノリシックになってて開発人月がでかくなりすぎてる感はあるし。


ただこれ、インストールが必要みたいだし、最安(=無料)のレンサバじゃ動かないよな?
インストールが必要/有料での契約なら俺的にはNodeの方がマシで、PHPを選ぶ理由がない。
既に言ったが、PHPで書くのは無料サーバーでも動かす為で、
プログラミングについて何も知らない人がGitHubからクローンしたらもう動く!みたいな
超イージーデプロイじゃないとわざわざPHPで書く意味はない。俺なら書き慣れたJSを選ぶ。
(勿論君らがPHPを選ぶのは自由として)


結果的に、エンタープライズな連中はLaravel等を使うから問題なく、こんな基本的な問題も放置されてるってところか。
巣のPHPを使う連中は基本的に初心者であり、細かいことは気にしてないのだろうし。
0647デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 14:31:39.19ID:F8+XC2Dv0
>>641
> しかもレンタルサーバでやるような低レベルなもんだろ?
これはその通りだ。
お前らのやってるエンタープライズなコードでは許されないような方法でも、許されるのだろうさ。

とはいえ、それをやるかどうかはまた別だろ。
プログラミング初心者が四苦八苦して数百行のやっと動くコードを書いてる状況ではないんだよ。
他言語ではバリバリに書ける奴がPHPだとデタラメやっていい、ってことにもならないだろ。
それは矜持の問題だ。
勿論、お前がデタラメやるのもお前の自由だが、俺的には恥ずかしくてそんなコードは公開出来ないよ。
0648620 (ワッチョイ 9a2c-QEAr)
垢版 |
2021/08/05(木) 14:32:09.85ID:bqGeTZjz0
Ruby on Rails では、redirect_to でリダイレクトする(302・発見)。
lesson/step1 にアクセスすれば、lesson/step2 へ飛ばされる

その時、flash に情報を入れておけば、リダイレクト後に使える。
これで、abc と表示される

def step1
flash[ :notice ] = "abc"
redirect_to action: "step2"
end

def step2
render plain: flash[ :notice ]
end
0649デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 14:36:28.61ID:F8+XC2Dv0
>>645
なるほど、その方法でも出来るのは理解した。
が、それだと2往復するし、やっぱりかなり無駄だろ。

結局お前らは「動けばいい」でしかないからそういうことになる。
それだったら、現実装の方がまだマシだよ。


ただまあ、エンタープライズならLaravel等でキューサーバー、ってのは分かった。
確かにこれで玄人は問題ないのだろうさ。
0650620 (ワッチョイ 9a2c-QEAr)
垢版 |
2021/08/05(木) 14:45:20.58ID:bqGeTZjz0
例えば、Ruby on Rails では、

食べチョクみたいな若い女の子が、1人で始める場合は、Heroku, Bootstrap。
食べチョクは、AWS だけど

AWSなら、くろかわこうへいのサロンにも入る必要がある

KENTA, 2021/3

女性エンジニア&個人開発者のだむはさんにインタビュー
www.youtube.com/watch?v=ieljaqRC98A

Heroku, S3, 決済はStripe, Docker

こういうのでビジネスを初めて、会社の時価総額1億円ぐらいへもっていく。
元々、cloud 9, Heroku でクラウド開発してるし、絶対にLinux

XAMPP, MAMP など、Linux以外を使うことはない。
環境が異なると、テストにならない
0651デフォルトの名無しさん (ワッチョイ d58c-By/s)
垢版 |
2021/08/05(木) 14:50:29.16ID:IpTlZujB0
>>649
理解いただけてなによりです。
ただ2往復の意味が良く分かりません。

1.本処理+後処理.phpにGet付でアクセス
2.本処理終わったらbody用パラメーターつけてhoge.phpに飛ばす
3.ユーザーにはhoge.phpが表示される
4.サーバー側は後処理が継続される

進行は分岐するけど常に1方向だし、どこにも戻ったりもしてないと思いますが。
0652デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 14:55:48.88ID:F8+XC2Dv0
>>651
リダイレクトは別サイトにもいけるだろ。
だから基本的にはブラウザとは2往復するはず。

結果的に同一サイトにリダイレクトされる場合でも、おそらくブラウザはもう一度接続し直してくるはず。
この辺は試した方が早いかもしれんが。
0654デフォルトの名無しさん (ワッチョイ d58c-By/s)
垢版 |
2021/08/05(木) 15:08:57.20ID:IpTlZujB0
>>652
なるほど、再接続という意味ならそうですね。

では別の案ですが、
1.本処理中に吐き出すHTMLの先頭に、文字列なりHTMLタグなりの目印を検出するJavascriptを仕込む。
2.本処理が終わったタイミングで目印になる文字なりHTMLタグなりを出力(Flush)する。
3.Javascriptで対象の目印を検出したら window.stop() で、ブラウザ側から切断させる。
0655デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 15:17:03.80ID:F8+XC2Dv0
>>651
ああだからな、元々は「処理を速く見せる為」なんだよ。それで、

・接続を明示的に切れれば、往復1回+本処理
・接続を明示的に切れない現状では、往復1回+本処理+後処理
・651方式で転送した場合、往復2回+本処理

というようにユーザーには見えることになる。
結果、ネットワークが速くて後処理時間より短いならこれもありかもしれないけど、ネットワークも地味に重い。
この辺のさじ加減は君らの方が詳しいだろうけど、
現状の後処理は、整理するデータがある場合は400ms程度、無ければ10-40ms程度だ。
整理するデータが存在するのは1/20程度の確率だと想定している。
となると、単純には後処理は平均して29.5-58ms程度の重さになる。
だから、ネットワークがこれ以上重いと赤字になってしまうんだよ。
(XAMPPでの時間計測なんて意味あるかボケ!というのはさておき)
0657デフォルトの名無しさん (ワッチョイ 6501-pCDs)
垢版 |
2021/08/05(木) 15:26:17.55ID:tyzHpayb0
>>642
ID:bqGeTZjz0の人にrubyスレで教わりました
0658デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 15:31:25.87ID:F8+XC2Dv0
>>654
それは君がブラウザの動きを分かってない。

flushで出力されるのはPHP側のバッファだけで、apache/nginxのバッファはflushされない。
だからapache等でgzしている場合には最後まで出力されるかどうかはかなり怪しい。(というか、多分されない)
そしてブラウザはある程度溜まったら勝手に出来るところまでパースする。
そしてパースが完了しないとJS側からはデータにアクセスしようがない。(送信途中のデータは読めない)

よってその方法では出来ない。
接続を明示的に切れれば、apache等は溜まってるデータをflushして接続を切りに行き、
それを受けてブラウザはすぐにパースを開始する。
だから、接続さえ明示的に切れれば、すぐさまパースされるんだよ。その後PHPが動き続けてても関係なく。
これをやろうとしている。
まあ、Laravelでキューサーバー使えというのはその通り。エンタープライズならこれなのだろう。

多分君はDOM(HTMLページ内)のJSが同期的に動くのを見て勘違いしてる。
ajaxで取得したデータは、途中では読めないよ。
0662デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 15:57:19.11ID:F8+XC2Dv0
ちなみにお前ら、PHPにコントリビュートしてみたい奴はいるか?
居るなら手伝うが。
Web開発ってのは、「こんなポンコツを使わされるくらいなら俺が直してやるからソースコードよこせ!」の繰り返しではある。
今の俺がそれだ。

write_closeは基本的な関数であり、存在しないのがおかしい。
実装は、exitで行っているであろうクローズ処理を前倒しすればいいだけ。具体的には、

1. exitのソースコードを「接続を閉じる部分」と「それ以外」に分け、
2. 「接続を閉じる部分」が write_close() で呼ばれるようにし、閉じたかどうかをフラグで保存、
3. exit ではそのフラグを見て、閉じてない場合は呼んでから、「それ以外」を呼んで終了とする。

とまあ、要は exit のソースコードを2分割すれば済む話ではある。
dieとか、他に止める方法もあるから既に分割されてる可能性もある。
この場合は、単純に関数エントリを一つ追加するだけで終わる。

ソースコードは既にダウンロードしてmain.cとか見てるが、肝心のexit/dieのコードがどこにあるのか分からないんだな。
知っている奴がいればよろしく。
なお、俺一人だとコントリビュートはしない。
俺はPHPの初心者であり仕様を知らなさすぎて、俺一人だとバグを埋め込んでしまうから。
0663620 (ワッチョイ 9a2c-QEAr)
垢版 |
2021/08/05(木) 15:59:24.92ID:bqGeTZjz0
レンタルサーバーの速さを言っても、仕方ない。
他人と共有しているから、他人がリソースを使うと、待たされる

安いのだから、低品質も仕方ない。
そういうものと割り切るしかない

KENTA は完全に割り切ってる。
PHP は一生使わないでよいと言ってる

金にならないから。
低品質で安い仕事
0664デフォルトの名無しさん (ワッチョイ d58c-By/s)
垢版 |
2021/08/05(木) 16:09:21.48ID:IpTlZujB0
>>658
あなたこそ、理屈はともかく現実がわかってないかと。
以下をtest.phpにコピペしてブラウザからアクセスしてみてください。
(Chrome、FireFox、Edgeのどれでも)
hello world が表示されて、接続が切断され、"これは表示されない"は受信されません。
----------
<html><head>
</head>
<body>hello world
<SCRIPT language="JavaScript">
window.stop();
</SCRIPT>
<?
echo str_pad(" ",4096);
flush();
sleep(10);
echo "これは表示されない";
?>
</body>
</html>
----------
0665620 (ワッチョイ 9a2c-QEAr)
垢版 |
2021/08/05(木) 16:10:32.06ID:bqGeTZjz0
Ruby on Rails では、
XAMPP, MAMP など、Linux以外を使うことはない

Linux コマンド・シェルスクリプト、Docker, Heroku, AWS も、
KENTA のサロンの初心者用コースに入っているから

それに皆、AWS のくろかわこうへいのサロンにも入る

Windows 10, WSL2, Linux, Docker, VSCode でも出来る

XAMPP, MAMP とか、訳の分からない環境を使うことはない。
動きが本番環境と異なるから
0667デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 17:59:10.16ID:F8+XC2Dv0
>>664
まあわざわざコード書いてよこしたのだから、こちらでも試したよ。
ファイルは200Bytes, ダウンロードサイズは 4.4KBと表示されてる。
確かにそちらの意図どおり、ハロワだけ先に表示されるよ。(パースされてる)
4KBパディングすれば、通常ならバッファをキック出来るから、確かにパーサもキック出来るはずだし、実際そうなってる。

ただな、時間を既に書いたが、それでは間に合わないんだよ。
ネットワークってのは地味に遅くて、例えばここからPHP.netへのpingは264msかかってる。
後処理は平均29.5-58ms程度だと予想されてるので、window.stopがサーバーに間に合わない。
結果、パケットは送信済みで、受け取られたパケットが捨てられるだけだよ。

ただし確かにパースはされてる。(=その方法でもユーザーの体感速度は上がる可能性がある)
ただ、それはページのhtmlだからであって、ajaxではその方法は使えない。
ページのhtmlはブラウザの速度競争のおかげで出来るだけ早くパースするように出来てるからだ。

xmlを送る場合、閉じタグ以降に何かあったらエラーだったので、パディングで押し込みは無理だ。
jsonについては後ろにパディングしてもエラーは出ないようなので、押し込み自体は出来るが、
そもそもAPIが途中のパース結果を見せるように出来てないから、普通に実装されてれば全部揃ってからパースだよ。
世の中の大部分のサイトがこの「押し込み」で高速化してる、というのならブラウザも対応するはずだけど、聞いたこと無いでしょ。
0670デフォルトの名無しさん (ワッチョイ d58c-0pp8)
垢版 |
2021/08/05(木) 18:23:53.35ID:IpTlZujB0
>>667
間に合わないの意味がわかりませんです。
本処理終了の時点でブラウザ表示に必要な情報と、その次の行にwindow.stopまでを一気に吐き出すんだから、そのあとにサーバーから何か来て破棄されようが、どうでもいいんじゃないかしら?
要は十分な情報を受け取った段階でブラウザ側から切断してるんですよ。

本処理の後の後処理を待たせてる時間をなんとかしたいのが目的なのに、4KBでぐだぐだ言われてもねぇ。

後処理を待たせてる時間と比較したら明らかに早い段階で通信終了してるはずですよ。なんとかしたいレベルってことは人間が認識できるレベルの待ち時間は発生してるんですよね。それと比較して4KBは人間にわからないレベルの時間ですよ。

xmlが〜とかは、htmlでラップするなり、頭良いんでしょうから工夫してくださいな。
0675デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 20:15:50.49ID:F8+XC2Dv0
>>670
「間に合わない」はこちらの勘違いだった。その後送信データはないので関係ない。

とはいえ、君の案を採用することはないから安心しろ。
それはexecより酷すぎる。
実際のところ、ajaxでhtmlを取っても途中でパースするとは思えないので、iframeに突っ込んでそこから取るしかないが、
そんなコードを見せられたら、ハア?ってなるだろ。

それよりはまだexecの方がマシ。環境依存コードは散らかされたら終わるが、俺がやるのでそれはないし、
とりあえず今回については linux.php と windows.php に纏めておけば、そんなに悲惨なことにならない。

纏めると、よい順に、

1. write_close()を呼ぶ。が、無いのでどうしようもない。
 他言語では普通にあるこれがないのでPHPはクソ、
 そしてこれが必要なことを理解出来ないのでPHPerもクソ。
 (なおコントリビュートする気がある奴が居たら手伝うのでよろしく。
 ちなみにexitとdieは同じらしいので今は分離はしてないね、多分。そしてこの辺の基本的な仕様すら抑えてないから俺だけでは無理だ)
2. 現実装。多分平均 29.5-58ms程度待たされることになる。
 が、そもそもajaxはほぼ自動アップデータだし、実際のサイトではどれくらいの速度なのか不明だし、
 これがもっさり感につながるかは分からない。
3. exec。待たされることはないが、環境依存コードになるので開発とデプロイの手間が増える。
 とはいえ、今のところのPHP的な正解はこれのようだ。
4. htmlタグでラップしてiframeに突っ込んでパースさせる。
 ただ、上から下のdomは触れた気がするが、下から上には触れなかった気がするので、実際はchannelで通信か?
 まあやれば出来るが、コード見たら呆れられるだろ。
 execは精々数行で済むのに対し、こちらは一手間二手までは済まないし、execよりも遅いし。

やるのが目的ならそれで良いが、一応execという解があるのだから、それよりもマシでないと意味がない。
今のところ、現実装のままで本番環境まで持っていき、実際の使用感を確かめて、必要ならexecか、というところ。
0676デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 20:22:29.50ID:F8+XC2Dv0
>>670
> なんとかしたいレベルってことは人間が認識できるレベルの待ち時間は発生してるんですよね。
ちなみにこれはない。まだ部品を動かしている段階。

ただそもそもC出身なので基本的にノーコストで速くなるのならそれを選択する。
そして普通の環境では有る close が無いので面食らっているわけだ。
俺が見落としてるだけだと思っていたが、本当にないのだから驚きだ。
0678デフォルトの名無しさん (ワッチョイ 5d01-d0wC)
垢版 |
2021/08/05(木) 20:54:11.00ID:xr/U2THc0
アスペおじさんに50の質問しようぜ

>>675
・PHPはクソクソという癖してPHPにしがみついてるのはなんで?
・なんで無料レンタルサーバーなの?無職だからお金ないの?
・任意でcloseできてウェブと親和性が高い言語って例えば何?あるならそれ使えば?
・例えばNodeならできるが?Nodeでやればいいのに何でやらないの?
・Nodeが使えるサーバーってVPSで500円ぐらいで用意できるけど500円も払えないの?それとも自分じゃサーバーを作れないの?
・何度かproc_openって出てるみたいだけどそれを無視してるのはなんで?
・そもそも働いてるの?
・そんなコミュ能力で仕事できるの?
0680デフォルトの名無しさん (ワッチョイ d58c-0pp8)
垢版 |
2021/08/05(木) 21:05:44.43ID:IpTlZujB0
>>675
あーいえは、こーいうで、なかなか楽しかったです
あなたが不可能と断定したものを、あたしは2つも実現してみせたんですから、少しは敬意を表しなさいよ笑
断定したことをひっくり返されても、上からの態度とか、かっこわるいわよ
そんなんじゃ、いつまで経っても童貞卒業できませんよ
0682デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 21:22:27.97ID:F8+XC2Dv0
>>678
proc_openはexecと変わらんだろ。
それで環境依存無しのコードが書けるわけでも無し。

PHPについては何度も言ってるように無料レンタルサーバーで動かす為で、
それは俺が使う用ではないからだよ。
PCのことなんて分からない連中でも動かせるようにして、しかも無料なら試しにやってみようかともなるだろ。
この辺については俺がどういうアプリ戦略を採るかだから、意見言われてもああそうですか、でしかない。
そしてここで色々ひけらかして後々粘着されてもウザイだけだから、特定出来るほど詳しく言うつもりもない。
なおNodeの無料鯖が日本に出現したら間違いなくそれに向けて作る。
今それがあるのならPHPは捨てるし、多分今後は書くこともない。

既に言ったが俺的にベストなのはサーバレスで、実際はレンタルサーバーよりもサーバレスが断然いい。
だからherokuの鯖が日本に出来るのがベストだが、無いのだから仕方ない。
PHPは糞だが、そもそも俺のアプリはそんなに大きいものではなく、
むしろSQLiteのラッパでしかないので、今はphp.netを睨みながらやってるような状況だが、それでも何とか進めてる。

ただまあ、俺が考えてることは今のWebからすると奇妙な事だから、君達と話が噛み合わないのは仕方ない。
それで君らが頭に来てるのも分からんでもない。
ただ先述の通り、詳しく言うと後々の憂いになるから、お互いに技術的なこと以外には踏み込まないようにした方がいい。
Webってのはそれくらいの距離感が丁度いいのだと俺は思ってる。
0683デフォルトの名無しさん (ワッチョイ 5d01-60o5)
垢版 |
2021/08/05(木) 21:23:55.06ID:xWv0yV5l0
場合分けしました。 →場合分けして検証しました。

たいした仕事ではなかったんだけど、
ある公式を忘れても、基本の基本から証明できるので、
基本の基本が用意されてれば、(システム業界では)不可能と答えてはダメなんです。
0685デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 21:25:17.35ID:F8+XC2Dv0
>>680
つかまともな解じゃねえし。それでドヤられても困る。
動くっつうのと、やっていいかと、やるべきかは、別の問題だよ。

ただまあ、アイデアは面白いよ。それは他の人も言ってるとおり。
0686デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 21:30:22.62ID:F8+XC2Dv0
>>684
エンタープライズ用途ならスケールアウト出来ないSQLiteは論外なのだろうけど、
ぶっちゃけ俺の用途ではSQLiteで十分だし、それは既にチェック済み。

というかね、単体では十分速いよSQLite。
まあ、他は使ったこと無いんだけどね。
SQLとか知らんし、とりあえず一番簡単な奴から、ってことで試して、十分だったのでそれまで。
0689デフォルトの名無しさん (JP 0H2e-3fhR)
垢版 |
2021/08/05(木) 21:48:51.81ID:cTOwQa60H
上のレン鯖の人は、
・無料で使える
・日本国内に鯖がある
・好きなミドルウェアや言語をセットアップできる
という条件を満たす環境があるなら、PHPに拘らないという主旨の発言をしているようにみえるが、その認識であってる?
0691デフォルトの名無しさん (ワッチョイ ed5f-qgft)
垢版 |
2021/08/05(木) 22:05:04.22ID:vJjfvU2/0
php嫌いなのは分かるし俺も別に好きじゃないが、じゃあなんで使うんだよ、使わざるを得ないなら従え、以外に帰着しねーんでは。
お得意のnode様でも他言語からしたらディスられるだろうし不毛だわ
0692デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 22:08:47.31ID:F8+XC2Dv0
>>689
まあyes。正確には

> ・無料で使える
> ・日本国内に鯖がある
ここまではその通りで、

> ・好きなミドルウェアや言語をセットアップできる
この必要はない。好きでもないPHPを使ってるのがその証拠。
一番いいのはNode。
ただ、動的言語でないと無理なのではないかと予想してるので、(が、何故そうなのかは言えない、これはすまん)
GoとRustは駄目だ。というかGoはPHP以上に糞だし、Rustは今のところ様子見してる。

それで、無料鯖で使える動的言語=PHP/Python/Rubyで、どれも知識ゼロだから、
とりあえずメジャーなPHPから試すか、で、まあ、言語と界隈が糞な所以外は問題ないから我慢して使ってる。(というほど使ってないけど)
まあぶっちゃけ、PHPが糞だ糞だと言われつつものさばってるのは、確かに便利なんだよ。これは認める。
そしてPHP.netの出来はマジで素晴らしい。PHP.netと比べるとPythonやRubyのサイトはゴミだね。
この辺も、また、ググッて回答が出てくるかも含めて、知識ゼロならPHPから試すのが妥当だし、そうしただけ。


もしかして他の選択肢がある?
ご指摘の通り、PHPは手段であって、目的ではない。
0693デフォルトの名無しさん (JP 0H2e-3fhR)
垢版 |
2021/08/05(木) 22:18:22.41ID:cTOwQa60H
>>692
あるよ。俺はoracleが提供しているプラットフォームを無料で使ってる。メモリ1GBのインスタンス2つとoracleの自律型DB2台。東京と大阪リージョンがある。

あとGCPのGAEなら東京リージョンで使える無料枠がある。
0694デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 22:20:09.19ID:F8+XC2Dv0
>>691
Nodeは、俺がJS好きなだけで、PHPerからすると糞なのは認める。
というかね、DBと非同期が壮絶に相性が悪くて、Nodeだと結構トンデモなコードになる。
それに慣れてる俺は良いが、慣れてない奴からしたら糞以外の何者でもない。
ただしasyncが導入されたから今書いたらだいぶマシなのかもしれんが。

とはいえ、PHPは真偽判定テーブルとか見るだけでマジで糞で、糞なのを知っててもどハマりするから俺的には無理なんだ。
直近だと三項演算子、勿論結合がおかしいのは知ってるが、癖としてやってしまうんだよ。
そして見た目、バグに見えないから嵌る。
だからまあ、PHPを主力に使ってる人にとっては問題ないのだろうけど、
他言語を普段使ってて、偶にPHPとかだと、本当に無駄に嵌って、あ〜、ってのが多すぎて悲しいんだよ。
0696デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 22:25:46.31ID:F8+XC2Dv0
>>693
Oracleなんてガチ枠だから完全にノーマークでしたわ。
とはいえ、SQLとはまた違うとは聞いてるし、そもそもそれってあんまりど素人向けじゃないから不味い気が。

逆に無料レンタルサーバーなんて完全にど素人向けでしょ。
向こうもど素人が使う前提だし、やっぱりど素人にはレンサバがお似合いだと思うのだけど。
お互いトラブらないという意味で。
0699デフォルトの名無しさん (JP 0H2e-3fhR)
垢版 |
2021/08/05(木) 22:35:41.93ID:cTOwQa60H
>>696
補足しておくと、インスタンス2台無料だから、oracleのDB使いたくない場合は、インスタンス1台に好きなDBインストールする方法もあるよ。ど素人にどこまでのオペレーションを任せるかはわからんけど。
0701デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 22:44:02.23ID:F8+XC2Dv0
>>698
JSのもそれなりに糞だが、
型を意識してれば実際問題としてそこに命中することはないんだよ。
だから一般のプログラミングをしてる奴にとっては問題ない。

PHP7のはなあ、なんだったか忘れたが、
JS的には問題ないものでもおかしなのがあって、しかもそれに普通に命中するから嵌るんだよ。

とはいえ最早PHP8を使うべきなのかな?三項演算子は解決されてるし。
今確認したが、無料鯖はまだ7のようなのだけど、
現実的に俺が今書いてるのを公開するのはどうやっても半年後とかでしかないから、
その頃に一般的に使えれば全く問題ないし、
駄目でもいつかはPHP8に移行するのだろうから、待ってれば済む話ではあるし。

今7を使ってるのは、実は4年前に味見だけしてて、その時に7だったからなんだよね。
まあ、PHP8は検討しとくわ。
0703デフォルトの名無しさん (ワッチョイ bd7b-LMHu)
垢版 |
2021/08/05(木) 22:53:13.39ID:F8+XC2Dv0
>>699
OracleやAWSとかは、基本的に「将来有料のお客様になるかも」な人向けだろ。
だから、その気がない人がずっと使うのは不味いと思ってるんだよ。
勿論技術的な問題もあるけど。

無料レンサバはその点、広告を貼りますよ!だから、
永久に無料で使われてもいいですよ、な点が違う。

だからまあ、ガチ向けなものは基本ノーマークなんだわ。
ただ、技術的にはだんだん敷居が下がってて、サーバレスなんてその最たる物だろ。
たぶん、本当になんにも知らないど素人が、それが鯖であることを認識もせず鯖を運用する時代が来つつあるんだよ。
俺はそれに向けてちょっと仕掛けようとしてる。(まあ高確率でポシャるが、それは致し方ない)
0706620 (ワッチョイ 532c-2tbN)
垢版 |
2021/08/06(金) 05:53:40.73ID:13Hyhr+y0
無料サーバーは低品質だから、まともに動かない。
他のアプリがリソースを使うと、5秒ぐらいの動画広告でも、1時間動かない事もある

素人向けだから、PHP・SQLite でも良いと思う。
KENTA がPHPを一生やらなくても良いというのは、お金にならないから

未経験者の転職では、Ruby on Rails, Heroku, AWS だけ。
Node.js, Django も使われていない

プログラミングの話というよりは、安い・低品質の仕事の話。
すごく限定されたことしか出来ない、世界の話
0710デフォルトの名無しさん (ワッチョイ 895f-VlOp)
垢版 |
2021/08/06(金) 18:17:48.03ID:sAaum+q/0
そもそも後処理とやらを軽くすればいい話ではないのかね
DBの設計とSQLの書き方次第で速度がかなり違うよ
そこを見直すのがいいんじゃないかな
それとnode.jsはwebサーバーと一体だから切断があるがphpはwebサーバーからリクエストされるものであって接続の管理はできないのでは無いんでないのかね
0711デフォルトの名無しさん (ワッチョイ 895f-VlOp)
垢版 |
2021/08/06(金) 18:35:46.02ID:sAaum+q/0
そもそもphp上で接続するのではなくブラウザに終了を認識させればいいので
ob_startとob_get_lengthなどを使い
headerでContent-LengthとConnection: closeを出力する方法がマッチしているのではないかな
適当にググってみたけど下のサイトがわかりやすかったかな
ttps://pisuke-code.com/php-send-response-immediately/
0712デフォルトの名無しさん (ワッチョイ c17b-NIVl)
垢版 |
2021/08/06(金) 20:51:49.77ID:lgptz/Bq0
> Content-Length
おお正解出てきたか。実はこちらもそこに気づいて試して(昼間に)確認済みだった。
んで、いちいち文句言われるからとりあえず夜まで待ってたところだった。

つかマジで、お前らだいぶ酷いわ。改めてPHPerは糞だと再認識した。
小学生同士の小手先テクニック大会は楽しいのだろうけど、そんなんだから上達しないんだと思うぞ。


>>710-711
こちらはheaderだけで問題なくなった。
とりあえずサイト読んでみたが、こちらの結果からすると、ob_xxxもconnection:closeも要らんね。
(というか多分 connection: close は問題になるからやらない方がいい)

> そもそも後処理とやらを軽くすればいい話ではないのかね
> DBの設計とSQLの書き方次第で速度がかなり違うよ
> そこを見直すのがいいんじゃないかな
勿論分かってるが、今でも十分軽いし、これ以上どうしようもないので。

> 接続の管理はできないのでは無いんでないのかね
これは違う。接続の管理を「しなくてもいい」のであって、「出来てもよい」んだよ。
単純には機能が足りてないだけ。
近いのはGUIのイベント、onXXXだが、
あれも最初は addEventListenerとかは不要(onXXXだけで問題ない)と思われてたんだよ。
でも、有るのと無いのとでは大違いで、今は全面的に採用されてるだろ。
といってもお前らは若すぎてこの話が意味不明なら、イベントバブルでもいい。
あれもHTMLは最初から搭載していたようだが、おまえらPHPerなら特に、バブルなんて無くても設計出来ると思ってるだろ?
しかしこれも同様に有るのと無いのでは設計のしやすさの次元が違ってくるので、全面採用になりつつある。
機能が足りてないときでも、足りてないと気づけない人の方が多い。
ネットが無くても不自由しなかったし、その前は携帯が無くても不自由しなかった。
無ければ無いなりにやってしまうものなのだけど、これが有ればどんなに良いか!と思いつける人はほぼ居ないんだよ。
(一応言っておくが、俺も思いついたわけではなく、他言語で知ってたから不便を感じられただけ)
例えば、asyncとか、技術的には最初からあっても不思議ではなかったけど、誰も思いつけなかったろ。あれと同じ。
0713デフォルトの名無しさん (ワッチョイ c17b-NIVl)
垢版 |
2021/08/06(金) 21:13:42.19ID:lgptz/Bq0
>>711
> 適当にググってみたけど
ちなみにどうググッたか教えてもらえないか?
こちらも昼間ググリまくったが、このサイトは見てない。多分ヒットしてない。使ったのはBingだ。
んで、今google/duckduckgo/yandexで"Content-Length header"で試したが、ヒットしない。

ヒットしない(しにくい)理由は簡単で、多分仕様じゃないからだ。
ブラウザが勝手にそう動くだけで、動かなくても問題ないし、動くべきだともされてない物を、
Content-Lengthの紹介で書くことが出来ないからだ。
ただこちらは、前から意味不明なヘッダだなと思ってたので、今日改めて目にした時にピンと来た。
が、ググッてもそうは書いてないし、まあ試しにやってみるか、で、ビンゴだった。
(と書けば簡単そうに見えるが、実際はちゃんと動いているか確認するまでに結構手間取ってる)

だからここみたいに個人レベルのTips集やQiitaとかじゃないと駄目なのだが、
そもそもこちらの検索結果にはそのサイトが出てこない。
どういうキーワードでどこで検索したか教えてもらえないか?
0714デフォルトの名無しさん (ワッチョイ 895f-VlOp)
垢版 |
2021/08/06(金) 22:05:32.07ID:sAaum+q/0
php 後処理 でgoogleで検索して最初に出てきたやつ
接続を切ることができないのはwebサーバーへの接続だから
node.jsはwebサーバーを内包しているから出来ることでphpはwebサーバーを内包していない
Content-Lengthは何バイト応答があったらコンテンツの終わりかブラウザが認知するのでそれを利用したテクニック
0715デフォルトの名無しさん (ワッチョイ c17b-NIVl)
垢版 |
2021/08/06(金) 22:08:02.71ID:lgptz/Bq0
>>711
すまん、713取り下げ。
Bingで「PHP 後処理」でググったら一番上に出た。

俺は仕様を確認しようとしていたのだが、やり方をググれば出るのか。
なまじ自分で出来るものだから「やり方」なんてググろうとも思わなかったのが問題だな。
PHPについては初心者だということを再認識して、「やり方」もググるべきだった。
0716デフォルトの名無しさん (ワッチョイ c17b-NIVl)
垢版 |
2021/08/06(金) 22:36:18.90ID:lgptz/Bq0
>>714
すまん、前後した。手間をかけて本当にすまん。

> node.jsはwebサーバーを内包しているから出来ることでphpはwebサーバーを内包していない
これはその通りだが、PHPから出力をクローズしたら当然apacheにも伝わりクローズされる。
そしてこれはnodeでも同じだ。
実際は(Nodeでも)closeしてもhttpコネクションを切っているわけではない。
それだと再送要求が来た時に対応出来ないだろ。
だから、実際の低レベルの接続はNodeでもPHPでも同様に隠蔽されてる。
(勿論ApacheはHTTP/1.1だとgzipしてるし、別にバッファも持ってる)
よって、PHPでもNodeと同様に『プログラミングモデルとしては』接続を切ることが出来る。
だからやっぱり機能が足りてないんだよ。

パイプで説明した方が分かりやすいかな?
php | apache > /dev/eth0 な状況で、php が stdout(出力パイプ) をクローズすることは出来るだろ。それだけ。
その後も apache は必要なら動き続けるし、終了すれば終わる。
この構造はNodeも内部的に持ってないと話にならないから同様の筈だよ。

ただしそもそも論として「Content-Lengthは常に付けとけボケ!」なノリのようだ。
この手のTipsとしてはStackoverflowが秀逸で、
https://stackoverflow.com/questions/2773396/whats-the-content-length-field-in-http-header
の回答の中に以下仕様書へのリンクとかがあるが、
https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4
読む限りContent-LengthはもしかしてHTTP/1.0時代には必須だったのかな?

今現在、 echo json_encode(...); でjsonを語れ流してるから、これアウトかよ、、、、ってちょっと萎えてる。
メモリを無駄に食わない素晴らしいコードだと思ってたんだがなあ、、、。
0717デフォルトの名無しさん (ワッチョイ 895f-VlOp)
垢版 |
2021/08/06(金) 23:28:26.68ID:RLLkP2Do0
>>716
最初に"TCP接続を明示的に切りたい"とあったので機能はないと回答した
そのあたりは認識してほしい
環境依存にはなるがwebサーバーに通知つする仕組みはある
fastcgi_finish_request
tps://www.php.net/manual/ja/function.fastcgi-finish-request.php
FastCGI用の物なのでapacheのmod_phpでは不可
また、Content-Lengthは後処理不要ならば付けなくても問題なし
json出すならContent-Type: application/jsonは付けたほうがいいと思う
0720デフォルトの名無しさん (ワッチョイ c17b-NIVl)
垢版 |
2021/08/07(土) 00:55:00.18ID:dDF85n970
>>717
> 最初に"TCP接続を明示的に切りたい"とあったので機能はないと回答した
責める気はないが、これはさすがに屁理屈だろ。

572は確かに俺の書き方が悪い。
ただ、「初心者」が間違った「やり方」を選んでトンチンカンな方向に行くことはよくある話で、
これを防ぐ為には「最終的に何を目指してるか」を言わなければならないが、
俺は575の時点で、
・俺が初心者であり、
・後処理してる最中でもブラウザにパースさせてUXを改善したいから、
・TCP接続を切りたい
と全部揃えているのだから、本当に分かってる奴が居たら、この時点で
「それはやり方を間違ってる。ヘッダにContent-Lengthを付ければそれで済む」の回答が出てきて然りなんだよ。
それがおかしな小手先テクニック合戦になったり、
或いは上記のように全部正しく揃えているのにそれを理解せず「コミュ障」呼ばわりしてくるから、
PHPerは糞だと言ってるんだよ。
これは君も含めてね。何を相手に伝えるべきか分かってないんだよ。
まあコミュ障だからこそ、(=つまり何を伝えれば通じるかが分かってない)
相手がコミョ障かどうか(=つまり必要事項が全部含まれているか)を見分けることが出来ないという、
至極当然の話で、よくあるから慣れてはいるけども。

なんかNodeを勘違いしているっぽいが、プログラミングモデルのレイヤーはPHPと同じだよ。
PHPは上手く抽象化されてる(584)というのなら、そりゃNodeでもその他でも同じだよ。
実際書けば(文法が違うだけで)ほぼ同じコードになる。
下位のTCP接続を直接切りに行けるのはCで相当野蛮に書かれたものだけだが、そんな物存在してないでしょ。
だからこれはエスパーではなく常識で読み替えられる範囲だよ。
0721デフォルトの名無しさん (ワッチョイ c17b-NIVl)
垢版 |
2021/08/07(土) 00:55:28.53ID:dDF85n970
>>717
ただまあ、これはさておき、
そもそも環境依存コードを導入する気はないが、無料鯖は大体CGIモードだから行けるのか。
とはいえ少し金かけたらモジュールも選べて、
その際にいちいち「動かなくなりました」とか言われるのが面倒だから止めとくが。

ただ、これだとやっぱり昔は必要だと認識されてたって事だよ。
正直、Content-Lengthよりも直接的で分かりやすい解決策だから、俺も606で言ってるように、
最初に整備されるAPIであり、普通のプログラマにとっては第一選択肢の筈なんだよ。
ただこれだと、モジュール化した際に不要だと見なされて落とされたってことになる。これは何でだろう?
実装自体は至極簡単だし、基本的な物だから、「問題を多発させた」とかない限り落とす判断にはならないはずだけど。

> また、Content-Lengthは後処理不要ならば付けなくても問題なし
MDNは「付いている時も、付いてない時もあります」と言い、
W3Cは「出来る限り付けろ。ストリーミング以外は付けられるだろ」と言い、
実際の他サイトは確かに「付いている」ので、ちと迷ってる。

> json出すならContent-Type: application/jsonは付けたほうがいいと思う
これは勿論付けてる。てか、そうじゃないとブラウザで正しく読めないので。

> 楽に使うならクラス作って継承して使えばエレガントに書けると思う
問題はそこではなく、メモリを出来るだけ食わない方法でやろうとしてた。
jsonはDBの読み出し結果から直接生成する(長さを予期出来ない)ので、Content-Lengthを付けるにはob_xxxxを使うしかないが、
これだと単純に倍のメモリを食ってしまうので。
まあ君らは「でも物理で殴る方が速いんでしょ?」なノリで、実際これも事実ではあるが、俺としては以下と同様、
正しく使えばポンコツでも速いぜ!を目指したいんだよ。
https://qiita.com/masarufuruya/items/3bd72326448e4f8fa569
JSがそうなんだけど、おそらくPHPも同様で、糞コードばかり食わされて正当な評価を得ておらず、
それなりに洗練されたコードだったら意外と速いんだろうとは思うよ。
Webでは「速いよりも早い方が重要」だからある程度致し方ないのだとしても。
0723デフォルトの名無しさん (ワッチョイ c17b-NIVl)
垢版 |
2021/08/07(土) 09:24:23.62ID:dDF85n970
>>717
一応こちらの現時点の結論を言っておくと、
Content-Lengthはストリーミング以外は全部つけないと駄目だな。RFCでもSHOULDだし、
https://datatracker.ietf.org/doc/html/rfc7230#section-3.3.2
動きを見る限り、apacheもこれをスヌープしてる。
よって、「仕様準拠」なら flush() だけで何も問題ないから、
fastcgi_finish_requestはモジュール化した際に廃止された、と見える。

だから711内のページ筆者もだいぶ間違ってて、
まずConnection: closeをTCP接続終了(いわゆるFIN/FINACK/ACK)と勘違いしてるが、
実際はこれは同じコネクションを再利用するかの話だから関係ないし、
HTTP/1.1だとデフォでkeep-aliveなので無駄にcloseにするとバグに当たる可能性があるから悪手だ。
https://en.wikipedia.org/wiki/HTTP_persistent_connection#HTTP_1.1
そしてContent-Lengthを付けたら上手く行くよ!ではなく、付けないと話にならなくて、
仕様準拠=付けてれば最初からこんな事にはならずに済んでる。
だからこいつも俺も『仕様を知っている者から見れば』ただのマッチポンプでしかない。

ここで711内ページ筆者、俺、或いは君らも含めての問題は、レイヤーを間違ってることだ。
PHPは生のヘッダを普通に扱えるレイヤーでのプログラミングになるから、ヘッダについての仕様を(本来は)熟知してないといけない。
だから575に対してはいきなり「Content-Lengthヘッダ付けろ馬鹿タレ」とぶった切れないといけない。
とはいえ昨今の状況であらゆる階層の仕様を熟知しろなんてどだい無理な話ではあるが。

だからやっぱりもう一つレイヤーを上げるべきなんだ。
ヘッダの知識がない状態で具だけ書きたいのなら、ヘッダ周りを自動的によしなにやってくれるフレークワークを使うべきだろう。
そしてLaravelは見たところそんな感じだ。
なるほど、「セッション周りとかはフレームワークに任せてLaravelだけ使ってろ」というのは当たってる。
(俺も含めて)素人ほどフレームワークを使うべきだろう。

とはいえ、俺はデプロイ先が無料サーバなのでいちいち仕様確認して素PHPレイヤでのプログラミングをするしかないのだが。
0726デフォルトの名無しさん (ワッチョイ c134-y0A/)
垢版 |
2021/08/09(月) 02:00:02.31ID:gYL5uhjB0
それにしてもThe老害を絵に書いたような奴だな
加齢臭が半端ない
そんな奴が無料レンタルサーバーでできるPHP案件にしがみ付いてるのがまた笑うところ
0728デフォルトの名無しさん (ワッチョイ 532c-Lto6)
垢版 |
2021/08/09(月) 13:13:55.63ID:78aLRiJY0
YouTube で有名な、雑食系エンジニア・KENTA は、
PHP は、一生やらなくてよいと言ってる

価格低下圧力がひどいでしょ。
客もプログラマーも、PHPを見下しているから、大金を出さない

だから勉強しても、まず食えない

それでサロンは、Ruby on Rails だけにしている。
マコなりとか普通、学校でも80万円コース

今はYouTube で、200万円の学校をぼったくりと言ったから、訴えられているけどw
KENTAは日本一だから、学校も訴えて知名度を上げようとしてくる

KENTAは、Railsを使っている会社は、モダンな会社とも言ってるし。
他の会社とは、明らかに異なる
0730デフォルトの名無しさん (アウアウウー Sa55-YX0H)
垢版 |
2021/08/09(月) 22:11:02.95ID:pjjWaghZa
1つ聞きたいんですが、SCSSを導入する際メンテナンスが面倒なら嫌だなと思ってます

dart sassにサポートが切り替わった際にその前のruby−sassやnode-sassのコードをわざわざ書き換えないといけないんでしょうか?
0731デフォルトの名無しさん (アウアウウー Sa55-YX0H)
垢版 |
2021/08/10(火) 03:02:08.79ID:0jLh5m3Ra
結局Javaもphpと同じで自分で考えて構築しないとダメなんですね…

人のコードを映しても環境の違いからエラーが出ると
SASSを使うためにとんでもない時間掛かってます…
0732728 (ワッチョイ 532c-Lto6)
垢版 |
2021/08/10(火) 11:29:36.31ID:9wi/dlAk0
ruby−sass は、かなり前に終了している

Ruby on Rails 6 では最初から、Node.js, Webpack, Babel。
当然、SCSS でBootstrap を使うことも多い

autoprefixer, browserslist とか、ミニファイなど、すべて全自動

会社では毎週、各ライブラリを更新してテストする。
この環境構築運用部門がないと、ずっと環境が古いままで直せないので、
ウイルス攻撃などを受ける

こまめに更新・テストするのは常識。
貯めてはいけない

だから、Rails入門者にも、CircleCI も必須。
最近は、AWS Fargate, Terraform なども必須で、
皆、AWSのくろかわこうへいのサロンにも入る

KENTA のサロンの初心者向け勉強のコースは、
基本情報技術者資格、Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース
0735PHPerは糞 (ワッチョイ c17b-NIVl)
垢版 |
2021/08/11(水) 21:04:34.54ID:C/NScrzP0
PHPでの参照渡しの「ノリ」が分からないのだが、どの辺が相場なのだ?
なお、 https://tanakahisateru.hatenablog.jp/entry/2013/12/12/012728 は読んだ。これはいい記事だ。
そしてとりあえずコーディングルールを探してみたが、無い。
PSR/WordPress/Zend/Cakeのはさらっと見たが、文法だけで、動作については記述がないようだ。
だから、動作周りも含めての推奨コーディングルールがあればそれを教えてくれると助かる。



DBから読み出してフォーマットしてjsonで出力する場合、一番単純には、

$resultArr = fetch_from_DB();
format_for_API($resultArr); // 参照渡しで自己書き換え
echo json_encode($resultArr);

function &format_for_API(&$arr){
// ここで何かフォーマット
return $arr; // 直上のコードでは必要ないが、直積み(以下)用にreturnしている。
}

となる。ただしこのコードは以下の様な直積み

echo json_encode(format_for_API(fetch_from_DB()));

だと、

Notice: Only variables should be passed by reference

が出る。(ただし動く)
0736PHPerは糞 (ワッチョイ c17b-NIVl)
垢版 |
2021/08/11(水) 21:04:54.72ID:C/NScrzP0
ここで、直積みコードを動かす為には format_for_API を「参照渡し」から「値渡し値返し」に変更する必要が有り、
コードは、

$resultArr = fetch_from_DB();
$resultArr = format_for_API($resultArr); // 再代入
echo json_encode($resultArr);

となる。これだと結果としては速度/メモリ共に変化無い。ただし最近の『再代入禁止』には反するので、

$resultArr = fetch_from_DB();
$resultArr_formatted = format_for_API($resultArr); // 別名
echo json_encode($resultArr_formatted);

と別名にすると、(今回の俺の場合、速度は大して変わらないが)使用メモリは増えてしまう。
これらから言えるのは、

A. format_for_APIは「参照渡し(参照返し)」が正しいはずだが、何故かNoticeが出されてしまう。
 仕様としては、参照渡しに未初期化の変数が渡されたらそこでnull初期化される、ということだから、
 直積みでも動くのは正しく、Noticeが過剰なように見える。(ただし以下7とは矛盾)
 (PHPの構造上 is_ref が変数上にしか持てないのが問題なのだろうが、
 そこはボックス化みたく変数化すればいいだけで、このような右辺値を流し込んでいる状況なら危険性はないはず。
 実際動いているし。だから何でNoticeなの?となる)
B. 同名の変数に再代入する場合は(破棄されることが見えているから)最適化がかかり、問題はない。
C. 別名の変数に保存した場合、元の変数($resultArr)がそれ以降使われない場合でも、破棄されず、最適化がかからない。
 結果、メモリを余分に消費する。

これについて、冒頭の記事では「そういう特殊な高級言語だ」と表現されているが、これは当たっている。
クダグダ考えずに「値渡し値返し」でひたすら全部組み上げてもそれなりに動くからだ。
そして昨今の『インミュータブル』で『再代入禁止』なのは下位での変更が上位のコードから見えないからであって、
PHPの場合は「値渡し」でガッツリ保護されているから、
『再代入禁止』『参照透過』何それ美味しいの?でも確かにそれなりに問題ないはず。
0737PHPerは糞 (ワッチョイ c17b-NIVl)
垢版 |
2021/08/11(水) 21:05:17.28ID:C/NScrzP0
俺の現環境ではBしか選択肢がないが、ここら辺はPHP界隈ではどうなってるのだ?具体的には、

1. 理想的にはAでNoticeが削除されるべきだが、既にそうなってる/これから削除予定か?
2. (知らんが、)実はPHPって一つのコードで出来てて、「おま環」ってのがあまり無く、
 俺の環境でBが最適化されてれば、どの環境に持って行っても最適化されてて問題なく動くのか?
 (これについてJSが悲惨なのはご存じの通り)
3. まさか、notice切ればいいだけだろ、とか言うノリか?(個別に切れるのならこれも有りだが)
4. 最適化を期待して、参照渡しの使用自体を禁止/抑止する方向か?
 (真に必要な場合以外は使うな等。今回なら上記のように同名の変数に代入すればいいだけだよね、みたいな。)
5. この辺も含めての、文法(見た目)以外のコーディングルールで有名なのが有れば教えてくれ。
6. このPHP流の参照仕様、使い道無いよな?実は冒頭の記事を読んだ当初、
> PHPの参照はいちど変数が参照になってしまうと、二度ともとに戻ることができないので、扱いにくくてやっぱりダメです。
 とあるので、参照は変数側に固定で、参照変数を値渡しの関数の引数にしても常に参照渡し、なら、
 スゲーカッケー!!!と思って試したが、全くそうじゃなかった。
 しかも参照渡しの関数の戻り値を普通に値変数として確保出来るし、「二度ともとに戻ることができない」というのが意味不明。
 Cみたいに呼ぶたびに自由に切り替えられることを想定しているのなら、それは過剰で、
 (そもそも元々出来たようだがPHP4.1.3で廃止された、というのを見た覚えがあるが、再確認出来ない)
 実際はRustみたいに「mutableな変数は最初から決まっているので宣言時に固定する」で問題ない。
 だからコピーオンライト(これってPHP.netでは書いてないだろ!今日初めて知ったわ!)で
 全部見た目は値渡し値返し、なら、凄く先進的ではあったのだが。
 (なお参照の取り扱いは他言語も苦労してて、C++でも失敗してる)
0738PHPerは糞 (ワッチョイ c17b-NIVl)
垢版 |
2021/08/11(水) 21:05:44.32ID:C/NScrzP0
7.
> リファレンス渡しが想定されているところに、値渡しを行うとエラーになります。
> https://www.php.net/manual/ja/functions.arguments.php
 ってあるのだが、今回ってこれか?なら動いてはいるがやっぱりアウトなのか?
 ちなみに直積みになってるのは、元はfetch_from_DBの出力側で format_for_APIしてたのを、
 json_encodeの入力側でやるように移動して、結果的に <?= => の間にブッ込まれてるからだ。


まあ色々文句有るんだろうが、それでも答えてやってもいいぞ、って人はよろしく。
一応724の要求どおりにこのスレ内ではコテにしておく。
0739デフォルトの名無しさん (アウアウクー MMdd-aRn8)
垢版 |
2021/08/11(水) 21:40:15.37ID:PueOOWfrM
参照返しも値返しもメモリ使用量差は今日日のメモリ容量から見たらわずかな違いだから気にしなくて良い。
参照返し、値返しを考慮したメモリ省使用量化はクセのあるコードになる。
書いた本人以外が今後保守する場合は、その人にもわかりやすく、ミスさせないためにそういうコードを書かないほうが良い。
0740PHPerは糞 (ワッチョイ c17b-NIVl)
垢版 |
2021/08/11(水) 22:21:08.32ID:C/NScrzP0
>>739
その記事とかからすると、どうも過度にやってる奴が居るようだが、今回の件は全くそうではないだろ。
むしろ、「値渡しで自己に再代入って、こいつ参照渡し知らない馬鹿だろ!」って、お前らなら突っ込んでくるところだろ。

がまあ、PHP鯖はPCでしかないので大富豪プログラミングでおk、なのは確かにその通りかもな。
0741デフォルトの名無しさん (ワッチョイ 51ad-Z6Ah)
垢版 |
2021/08/12(木) 00:47:16.96ID:xG1RPqdX0
スクレイピングは逮捕される危険があるって聞いたんだけどマジ?
0744デフォルトの名無しさん (ワッチョイ 532c-Lto6)
垢版 |
2021/08/12(木) 11:23:42.11ID:s+UN3BdM0
スクレイピングでは、そのサイトのrobots.txt を遵守する必要がある

初心者がスクレイピングすると、プログラムのバグで無限ループしたりして、
そのサイトを落としてしまう事があるので、超危険!

だから、必ずテスト中は、ローカルPC に対して行うこと!
絶対に、本番サーバーに対して、テストしてはいけない

Udemy の山浦清透、2021/6 の動画を参照。
PHP で、マイナビ転職をスクレイピングしてる

【作業工程フル公開】エンジニアが30万円案件の制作過程を公開
www.youtube.com/watch?v=tYbVl6N8oxI
0746デフォルトの名無しさん (ワッチョイ 532c-Lto6)
垢版 |
2021/08/12(木) 12:16:26.88ID:s+UN3BdM0
>>735
Ruby on Rails では、

format.html
format.json

と書いておけば、

/books/1 にアクセスすれば、HTML を、
/books/1.json にアクセスすれば、JSON を返す

jbuilder モジュールでも、JSONを簡単に書ける
0747デフォルトの名無しさん (ワッチョイ c134-y0A/)
垢版 |
2021/08/12(木) 14:40:12.42ID:B1L5o8hM0
>>741
>>642
こんな事も人に聞かないと分からんない奴が居るんだな
0748デフォルトの名無しさん (ワッチョイ c134-y0A/)
垢版 |
2021/08/12(木) 14:43:21.86ID:B1L5o8hM0
>>745がサーバ構築した事がない人間なのは分かった
0749デフォルトの名無しさん (ワッチョイ c134-y0A/)
垢版 |
2021/08/12(木) 14:52:03.99ID:B1L5o8hM0
>>746
お前も PHPerは糞 おじさんを見習って
名前欄に RUBYガイジ って入れてくんない?

PHPerは糞おじさん、2021年にもなって参照渡しでメモリがーとか言ってるはクソ笑う
さすが加齢臭おじさんやね
0750デフォルトの名無しさん (ワッチョイ 3101-mBWR)
垢版 |
2021/08/12(木) 14:59:04.04ID:sye04Gqu0
<input type="text" name="text1" value="aaa" readonly>

ユーザー側がvalue="aaa"を書き換えてpostする事ってできますか?
出来るのだったらhtmlのソースに載るものをsqlに入れる時は全部プレースホルダにしないといけないですよね
0751デフォルトの名無しさん (ワッチョイ 532c-Lto6)
垢版 |
2021/08/12(木) 15:14:15.05ID:s+UN3BdM0
クライアントから送られてくるものは、絶対に信用してはならない。
place holder を使うのが基本

ドラクエ10 では、0.2% ほど、おかしなデータが送られてくると言ってる

伝送エラーでも、パリティーを再計算して、
正しいデータのように見せかけて伝送する、ルーターがある。
そういうルーターを、世界中から排除できない
0754デフォルトの名無しさん (ワッチョイ 3163-Z6Ah)
垢版 |
2021/08/12(木) 15:50:17.28ID:ZBXe4sG30
>>748
あの図書館サーバーは普通のアクセスが集中しただけで落ちるんだぞ
DBのカーソルを使ったあと開放してなかったんだそうだ
こんなの初心者しかやらないコーディングだろう?
0756デフォルトの名無しさん (ワッチョイ ebbb-F4Jt)
垢版 |
2021/08/12(木) 15:58:48.50ID:jvdC9oQ40
>>754
それがナンナンダヨ

岡崎図書館事件は、お前の言うようなシステムだったとしても逮捕されて起訴猶予がくだされたって話だぞ
あと三菱じゃなくてMDISな
子会社ってのは別会社なんだよ

お前社会経験無いだろ
0758デフォルトの名無しさん (ワッチョイ 3163-Z6Ah)
垢版 |
2021/08/12(木) 16:08:04.61ID:ZBXe4sG30
>>756
不具合がある事は以前からは悪していたが、顧客には伝えていなかった
定期メンテナンスの度に、コッソリ修正を加えていたが、
岡崎図書館だけはチャンスがなかった

通常の利用者がアクセスするだけで落ちるサーバー
毎朝再起動するのが日課だったそうだ
そうしないとダウンするサーバー
隠蔽体質は独特だよな
0759デフォルトの名無しさん (ワッチョイ 3163-Z6Ah)
垢版 |
2021/08/12(木) 16:12:07.54ID:ZBXe4sG30
岡崎図書館だけでなく、システム導入した全国の図書館で不具合は起きていた
各図書館は定期メンテナンスがあった際に修正版を導入していたが、
岡崎図書館だけは、必要ないとメンテナンスを断られていた
不具合があると、本当のことを伝えてさえいれば修正できたのにな
0761デフォルトの名無しさん (ワッチョイ 532c-Lto6)
垢版 |
2021/08/12(木) 17:00:02.35ID:s+UN3BdM0
確か、毎秒アクセスしてたのだろ。一日で何万回も。
それで落ちた。
普通のアクセスでは落ちない

それで自白に追い込まれた。
自白しないと、一生家族を追い込むぞと脅されて、自白させられた

日本の裁判は、行政・司法の事前打ち合わせで有罪が決まる。
法廷では裁判しない

だから、拷問捜査でも自白すると、絶対にくつがえらない。
自白したのが嘘でしたと言っても、裁判官がそんな事はあり得ないと、絶対に認めない

それで、ボクサーが自白して、今も死刑囚のままの事件がある。
DNA 判定でも別人なのに、裁判官が嘘で自白する事はあり得ないと、言い続けている

でも、無罪が国民にばれているから、有罪のまま釈放してる

ボクサーはパンチドランカーで、知的障害になりやすい。
そういう奴を探してきて、拷問して自白させる。
知的障害は、すぐに自白するから

そうやって犯人に仕立て上げる

自白を優先させる国は、世界中でも日本だけ
有罪率も他国では、50% だけど、日本だけ100%。
だから半分は、自白による冤罪
0762デフォルトの名無しさん (ワッチョイ 3163-Z6Ah)
垢版 |
2021/08/12(木) 17:13:39.26ID:ZBXe4sG30
岡崎図書館システム作った企業は、サーバ構築した事がないんだろう
あろうことか、システムの全ソースファイルがネットから丸見えだった
当時大勢がソース閲覧してレビュー大会始めてたな
隠しきれなくなった企業は、最期に全面謝罪していた
0763デフォルトの名無しさん (ワッチョイ 3163-Z6Ah)
垢版 |
2021/08/12(木) 17:21:59.60ID:ZBXe4sG30
>今年5月に発覚した岡崎市立中央図書館ウェブサイト「サイバー攻撃」事件は悪意のない一利用者の
>プログラムによる DoS 攻撃とみられており当初「偽計業務妨害の疑いで」の逮捕も妥当かと思われて
>いたのですが、不起訴(起訴猶予)処分が発表された後で図書館のプログラムを入手した朝日新聞が
>セキュリティ専門家らに調査を依頼したところ、実は図書館プログラムのバグだったことが判明。
> このコードの場合、DB接続はアクセス元のブラウザ専用として確保(ASPセッションに紐付け)され、
>ASPセッションがタイムアウトするまでの間(7月の時点で岡崎市立中央図書館では実測で620秒くらい
>だった)、閉じられることなく(使いもしないのに)占有されてしまう。その間に新しい閲覧者(ブラウザが)
>接続してくると、次々新しいDB接続が確保され、その最大数に達すると、それ以上のアクセスを受付け
>なくなってしまう。

>しかも酷いことに新聞報道に基づいたコメントによると、ソフトウェア開発業者の三菱電機インフォメーショ
>ンシステムズ(MDIS)は2006年にこのバグを修正していたが、それ以前に導入した顧客には「ホームペー
>ジが閲覧しにくくなるのは、コンピューターの性能が低いからだ」と説明、「新しいサーバーを導入して金を
>出させるために、わざと情報を秘密にしていたようですね」。

https://ameblo.jp/ecomstation/entry-10627088813.html
0764761 (ワッチョイ 532c-Lto6)
垢版 |
2021/08/12(木) 18:07:20.17ID:s+UN3BdM0
日本では自白をしたら、絶対にくつがえせない

裁判で、無理やり拷問捜査で自白させられたと言っても、
裁判官がそんな事はあり得ないと、絶対に認めない

自白して、100% 有罪に出来るから、立件されなかっただけ

日本の裁判は、行政・司法の事前打ち合わせで有罪が決まる。
法廷では裁判しないから、有罪と同じ

青汁王子みたいに、検察庁の拷問取り調べを発信したら、起訴されて有罪になった。
一方、徳井みたいに脱税を認めたら、不起訴になった

だから、青汁王子は検察改革として、選挙に立候補するかも知れない

日本の裁判の半分は、自白のみで証拠がない。
だから、本当は無罪だと国民にばれないように、マスコミを使って印象操作する

毎日ひっきりなしに、事件の捜査進行をマスコミにリークして、犯人だとでっち上げる。
それで実質的に、裁判所では裁判をしない

西村と同じ。
自公は何も立法せず、銀行へ要請して、酒屋に資金提供しないように締め上げる

これは要請で強制力がないから、自公は責任を負わない。
単に、銀行が加害者になるだけw
0767デフォルトの名無しさん (ワッチョイ 3163-Z6Ah)
垢版 |
2021/08/12(木) 18:56:05.94ID:ZBXe4sG30
>三菱電機の不祥事が止まりません。労務問題に品質不正などが相次ぎ、6月29日には
>鉄道車両向け空調装置において、35年以上にわたる不正検査の問題が発覚しました。
>7月2日に記者会見した三菱電機の杉山武史社長は組織的な不正行為と認め、引責辞
>任を表明する事態となりました。外部の弁護士を起用した調査委員会を発足し、原因究
>明や再発防止策の策定に乗り出しました。

体質として、どこかおかしい
0768PHPerは糞 (ワッチョイ c17b-NIVl)
垢版 |
2021/08/12(木) 20:24:45.08ID:M/4woqjc0
>>749
それだけ言ってNGし切れないとか超ダセエ。ゆとり臭すぎ。


>>765
それは俺に言ってるのか?
なら俺はいいが、場所は移るべきだ。ここの連中は興味もないだろうし。
PHPを中心に考えるのなら、候補としてはWebプログラミング板かな?
592を額面どおり受け取って移動でいい。
他に希望があれば指定してくれ。
(なおPHPを中心に考える必要は全くないので、他言語スレでも問題なし)

一般的にはプログラミング言語開発者は複数の言語を使いこなしていて、
それらで駄目な点を自身の言語で改善するものだから、
創始者のプログラミング観どおりにやればどフィットするものだが、
ラスマスはああいう感じで他の連中とは違うし、
実際、PHPの参照の仕様は、使い道なさそうに見える。
(ただし俺は仕様を完全に理解しているわけではない)

PHP.netには、コピーオンライトと書いておくべきだろう。
ほぼ完璧に見えるPHP.netだが、これを落としているのは痛い。
(ただし他言語はもっとズボズボだから、PHP.netだからこその要求水準ではあるが)
0771デフォルトの名無しさん (ワッチョイ 3163-NTPF)
垢版 |
2021/08/13(金) 02:00:55.03ID:mbVVcoUY0
robots.txt遵守は一種の紳士協定のようなもので、法的な強制力は無い
OKかどうかの判断は結構難しいと思う。
たとえ手順が正当だとしても、相手サーバーを落とす目的で
実行していると見なされれば業務妨害罪は成立する
これは妨害する意図でしつこく電話を掛け、
対応に追われる状態になれば、妨害罪が成立するのと同じ

大量のアクセスになる場合は、事前に相手に了解を取るか、
リクエスト内のエージェント情報の中に、連絡先を書いておくとかする
0772デフォルトの名無しさん (アウアウウー Saa5-5/Wf)
垢版 |
2021/08/13(金) 02:13:34.16ID:K6cyKUrLa
>>734
当時最先端のJavaのように使えるブラウザなんだぜぇーと宣伝タレ
虎の威を借る狐
旧京都造形芸術大から名称変更した私立「京都芸術大」のようなヤカラたち
0775デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 09:43:07.07ID:5/dvlHjt0
>>748に対して ID:ZBXe4sG30 が発狂しててワロタw
サーバが落ちる落ちないの問題ではないんだよなぁ
そして748はやはりサーバ構築経験が無いんだなと
0776デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 09:45:20.56ID:5/dvlHjt0
>>770
>>642読めよ
メクラか?
0777デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 09:50:20.10ID:5/dvlHjt0
PHPerは糞 おじさん相変わらず元気に加齢臭撒き散らしてて草w
無駄な長文は無能の証拠
まぁこいつはコテハン付けてるだけマシだけどな
0778744 (ワッチョイ e22c-MEry)
垢版 |
2021/08/13(金) 12:16:30.97ID:S8120IP70
基本、スクレイピングじゃなくて、
サイトと契約して、サイトのAPI を使う

YouTube API, Google Maps API など

5ch も、そう。
契約して、APIを使う。
勝手にスクレイピングすると、どうなるか知りませんよと、脅し文句が書いてある

スクレイピングする所は、APIを提供していないサイトで、
robots.txt を遵守する

とにかくスクレイピングは、初心者向けじゃない。
初心者のコードには、バグが多く、
無限ループでアクセスしたりするから、超危険!

だから、そういう依頼があっても、受けてはいけない。
スクレイピングの本にも、スクレイピングしないように書いてある。
書いていないと、スクレイピングを推奨した人も、共犯者になるから

>>744
のUdemy の山浦清透、動画を参照。
PHP で、マイナビ転職をスクレイピングしてる
0779デフォルトの名無しさん (ワッチョイ 62a7-7iwQ)
垢版 |
2021/08/13(金) 17:39:58.89ID:cfxShLTH0
グローバルスコープに定義した関数は、クラスの中のメソッド内でそのまま使えるのですか?
使えるのが奇妙な気がするのですが。。。
グローバルな変数は、クラス内では、そのままでは使えないですよね。
0780デフォルトの名無しさん (ワッチョイ 4102-fZBI)
垢版 |
2021/08/13(金) 19:26:14.32ID:NFq4Eq4J0
そのままでなく、
var で宣言して $this->num
昔はインスタンスの呼び出し無く使えたけど、
開発陣営に割り込んで圧かけて、
「難しくなければなりません」
と言って無茶苦茶にした人がいるんだよ。
0781デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 20:10:05.70ID:5/dvlHjt0
>>779
クラス内で global $hoge; とすれば使えるけど?
逆に聞くが、クラス内でグローバルスコープに定義した関数を使う際には、どういう風に使えたら奇妙じゃないとお前は思うんだ?
0782デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 20:11:24.31ID:5/dvlHjt0
>>780
お前質問の意味分かってないだろ
0783デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 20:14:02.70ID:5/dvlHjt0
>>779は namespace を理解してない可能性もあるか…
0784デフォルトの名無しさん (ワッチョイ c281-7iwQ)
垢版 |
2021/08/13(金) 20:24:47.97ID:9sqfFN6A0
>>781
>>どういう風に使えたら

グローバルな関数を、いわば閉じてるクラスのメソッド内で使えること自体が奇妙に思えたのです。
オブジェクト指向のカプセル化に反するせいかもしれません。
たまたま、今日、グローバル関数をクラスメソッド内で使ってみたら使えてしまい困惑したので、
気になり尋ねてみた次第です。

global $hoge; みたいに宣言してから使うなら、なるほど納得できるのですけど、
宣言なしで、いきなり使えてしまい、戸惑ってしまいました。
便利ではあるけど、使うのはちょっと怖い感じもします。
0789デフォルトの名無しさん (ワッチョイ c281-7iwQ)
垢版 |
2021/08/13(金) 21:33:50.60ID:9sqfFN6A0
>>788
なるほど、たしかに組み込み関数は、クラスのメソッド内で自由に使えますね。
ユーザー定義関数もそれと同じと考えれば、そこで使えるのは当然なのか。
目から鱗、モヤモヤ感が解消しました。ありがとうございました。
0790デフォルトの名無しさん (ブーイモ MMb6-YIHQ)
垢版 |
2021/08/13(金) 21:55:41.81ID:hsOq5UIAM
先週から勉強を始めた学生なんですが、
初心者向けの入門書の例文どおり入力してるはずなのにエラーが出たり正しく動作しなかったりで、
間違ってると思われる箇所を何度見直してもダメだったのに、
本の付録のサンプルコードでその部分を上書きすると動くようになることがあるんですが、何が悪いんですかね?
知識を習得する前に、間違い探しで日が暮れて還暦になっちゃいそうです〜_| ̄|○

機嫌で動いたり動かなかったりすることあります?
0791蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd62-/WPc)
垢版 |
2021/08/13(金) 21:58:11.89ID:ZbJ7zOZVd
全角と半角の区別、大文字と小文字の区別とかわかる?

全角スペースって知ってる? 日本語プログラミングには落とし穴が多いんだよ。
0792デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 22:06:11.14ID:5/dvlHjt0
>>790
エラー文が読めないってこと?
何行目にどんなエラーがあるかきちんと出してくれるよね?
0793デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 22:14:27.56ID:5/dvlHjt0
>>790
とりあえず自分の書くコード先頭に
error_reporting(E_ALL);
ini_set('display_errors', 1);
を書いて出力されるエラー文を読もうな
エラー文が読めない人はいくらやっても時間の無駄

毎回この2行を書くのは面倒くさいからこれを読むといい
https://qiita.com/fallout/items/31f793708b243033fab1
0794790 (ブーイモ MMb6-YIHQ)
垢版 |
2021/08/13(金) 22:17:16.92ID:hsOq5UIAM
>>791
はい、ちゃんと書き分けてる筈なのにい〜(>ε<)

>>792
いえ、エラーの出た行(その行より前のこともありますが)あたりを目を皿にして見直して、それでも分からないからサンプルコードで怪しい行を上書きしたら動いた、ということが何度かありまして:
やだな〜、お盆だから何か来てるのかな?
0797デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 22:23:25.12ID:5/dvlHjt0
>>794
今度エラー出た時にそのコードをここに転載してみ
たぶん俺や他のPHPerなら見た瞬間にどこが間違いか分かるから
0798デフォルトの名無しさん (ワッチョイ 7934-zHN7)
垢版 |
2021/08/13(金) 22:26:39.58ID:5/dvlHjt0
>>794
あーあとフォントを見直した方がいいかもね
プログラミング用のエディタで使うフォントってわりと重要
0799790 (ブーイモ MMb6-YIHQ)
垢版 |
2021/08/13(金) 23:25:02.14ID:hsOq5UIAM
>>796
(;´‘Д’:)

>>797
そうですね、またお世話になるかも知れませんが、宜しくお願いします。

フォントはMSゴシックなんですが、まずかったでしょうか
0802790 (ブーイモ MM85-YIHQ)
垢版 |
2021/08/14(土) 17:30:53.66ID:sRDJs50VM
悪さする幽霊の正体が1つ分かりました!
同じプログラムを違うエディタで開いた際に文字化けしてて、
「これ、違うやん」と弄くり回しているうちに内容がおかしくなっていたようです。

>>801
早速試しましたが凄い、お手本との比較が一目でできて、自習には神ツールですね!
今のうちに入手できてよかったです、ありがとうございます!
0806デフォルトの名無しさん (ワッチョイ 2ea7-YgaZ)
垢版 |
2021/08/15(日) 20:32:37.16ID:Ok6ktu6f0
<?php
//最初はPHPで、
?>
<html><head><title>だんだんHTMLになってる。</title></head></html>

Pythonじゃ(こんなことは)ないんだが、これ、どうすればいいんだろう?

…なんてPython使いが聞くわけないよな
0810デフォルトの名無しさん (ワッチョイ 3d5d-e6C7)
垢版 |
2021/08/16(月) 19:38:04.81ID:MmXvFMHy0
結局$_session[ほにゃらら]はユーザーからいじることは不可能でいいの?埒があかないまま使ってて不安だわ
0811デフォルトの名無しさん (ワッチョイ 2ea7-YgaZ)
垢版 |
2021/08/17(火) 10:42:22.98ID:vbnMp9Az0
流れ読んでないけど、
セッションに登録された変数の内容をいじらせるということであれば、
$_SESSION[] = $_POST[] みたいなコードを書けば可能だし、
セッションファイルを、こちらの意図とは別にユーザが直接編集できるか?
と聞いてるなら、OSやサーバの設定が不適切だったり、バックドアが仕掛けられてれば可能。
今時大丈夫だとは思うが、共用サーバなら念の為、
セッションファイルを管理するフォルダが適切かどうか確認したほうがいい。
0816デフォルトの名無しさん (ワッチョイ dd5f-iNti)
垢版 |
2021/08/19(木) 12:03:31.93ID:ZJMNNM340
PHPでゲーム作れますか?
0818デフォルトの名無しさん (ブーイモ MMb6-Vt5m)
垢版 |
2021/08/19(木) 13:00:26.79ID:XQ1nrb4AM
じゃPHPの勉強はボケ防止やハゲ防止になりますか?
0821デフォルトの名無しさん (ワッチョイ 8101-cJil)
垢版 |
2021/08/19(木) 18:08:41.25ID:Dhm320Jo0
>>814
インストールしたら7.0が入ったからどうすっか悩んでる。Laravelインストールできなくて詰んだ
パソコンが32bitのCPUだから16.04より新しいのがインストール出来ない
ググっても16.04にPHP8をインストールしようとしている人を罵るコメントしか見つからない
海外の掲示板も英語を翻訳してがんばって読んでみたんだけど英語で罵ってるだけで結果は同じだった

パソコン買い換え以外で何か解決策ないですか?
0822デフォルトの名無しさん (ワッチョイ 06ad-iNti)
垢版 |
2021/08/19(木) 19:02:00.79ID:ZyaFoemW0
>>821
7.0が入るのはOS標準のリポジトリからインストールしてるからであって、リポジトリを追加すればインストールできるよ

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt install php8
0824デフォルトの名無しさん (ワッチョイ 9f5f-3ve8)
垢版 |
2021/08/20(金) 03:00:41.03ID:VAxC0d3G0
phpspreadsheet詳しい人おる?
laravelでExcelファイルダウンロード機能作ってるんだけど関数が入ってるとうまく動かないのかな…
0825デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/20(金) 13:00:34.30ID:sg5lHnRB0
>>824
PhpSpreadsheetはエクセルファイルの読み書きようのライブラリ
Excelファイルをダウンロードするのは、PhpSpreadsheetとはまた別の話になるが?
とりあえず問題がどこにあるのか、その切り分けすらできてない気がする
0826デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/20(金) 13:04:01.25ID:sg5lHnRB0
>>821
apt でインストールするのではなく、
ソースコードをコンパイルしてインストールってやった事はないのかな?
>>822が書いてる通りリポジトリを変更してaptでやっても良いけど、ソースコードからインストールする方法も(やれないよりは)できた方がいいよ
0827デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/20(金) 13:13:52.15ID:sg5lHnRB0
>>810
その「ユーザー」というのが、810の作ったウェブアプリを利用する一般ユーザーって意味なら、
セッション変数をユーザー入力(GETやPOSTのことね)で直接上書きする設計になっていたら、ユーザーがいじる事はできるわな
だから、ユーザー入力は常に汚染されていると考えしっかりチェックしようって話になる

その「ユーザー」というのが、810の作ったウェブアプリが入っているサーバの別ユーザーって意味なら、
PHPが生成するセッションファイルは、Linux系OSのデフォでは /tmp 以下に sess_xxxxx ってファイルでPHPからの読み書き権限が与えられた状態で保存されてる
※デフォでどこに保存されるかは phpinfo() で確認しよう

だから、もし別ユーザーからもそのファイルを読み書きできる状態なら、やりたい放題になる
その場合、セッションファイルを保存する場所を変えるとか、ファイルベースではなくDBベースに変更するとかして対策する
0828デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/20(金) 13:17:12.75ID:sg5lHnRB0
>>809
書いてる内容は合ってる
そもそも == なんか使うのがいけない
=== を使えって話

PHP8の方が、人間には直感的に分かりやすい挙動だけど
型キャストなんて特別な理由がない限りはやってはいけない
WordPressなんか型キャストだらけだけど、あれは後方互換を重視しすぎたせいで設計がクソなだけ
0830デフォルトの名無しさん (ワッチョイ ff02-VfHF)
垢版 |
2021/08/22(日) 02:19:19.06ID:0Cz6ueFz0
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
0831デフォルトの名無しさん (ワッチョイ ff02-VfHF)
垢版 |
2021/08/22(日) 13:16:28.80ID:0Cz6ueFz0
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html

第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
0832デフォルトの名無しさん (オッペケ Sr73-Y0h+)
垢版 |
2021/08/22(日) 13:49:26.13ID:4wvmP6CHr
htmlのクラス付けについて通常はclass javascriptはidだと教わったんですが
phpのクラス付けでdiv idとdiv classのように分ける基準はどこでしょうか?
0834PHPerは糞 (ワッチョイ 9f7b-uKxv)
垢版 |
2021/08/22(日) 14:34:11.78ID:6lnERGc60
>>832
> htmlのクラス付けについて通常はclass javascriptはidだと教わったんですが
これも間違い(勘違い)だと思うが

> phpのクラス付けでdiv idとdiv classのように分ける基準はどこでしょうか?
これも間違い。phpで生成したクラスをjavascriptで使うのだから、基準が違ったら困るでしょ。
同じだよ。同じ論理でCSSともね。
0835デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/22(日) 15:41:36.20ID:14oodIJ3a
>>834
すいません答えを理解できないんですが
classとidをつける時はどう使い分けるんでしょうか?
idの方が優先順位が高くなってCSSの要素が強くなるんですが
0836PHPerは糞 (ワッチョイ 9f7b-uKxv)
垢版 |
2021/08/22(日) 15:52:30.20ID:6lnERGc60
>>835
ググって出てくる奴を3つほど斜め読みしたけど、全部同じこと言ってる。
ここでグダグダ字だけで説明するより断然いいから、そっちを読め。

その上で、俺は違う意見だ!とか、ここが意味不明だ、というところを質問するんだよ。
お前はネットの使い方を間違ってる。
0838PHPerは糞 (ワッチョイ 9f7b-uKxv)
垢版 |
2021/08/22(日) 16:13:29.48ID:6lnERGc60
>>837
日本語が若干不自由だけど、そのまま読むなら、
当初はphp/javascript/cssでクラス/id使い分けの基準が違うと思ってたんでしょ。
なら、ここで聞くのも止む無しかと。
0839sage (アウアウウー Sa63-LN3e)
垢版 |
2021/08/22(日) 16:27:20.42ID:EL9Udqfja
>>835
スタイルシートの class と id の違いと使い分け
https://allabout.co.jp/gm/gc/23897/
HTMLにスタイルシート(CSS)を適用する方法には、class属性を使う方法と、id属性を使う方法があります。
この「class」と「id」は明確に役割が異なります。
class属性とid属性の役割の違い
「class」と「id」の役割と、使用上の違いを簡単に言うと、次の通りです。

■class:
「種別名を割り当てる」
→ 同じclass名を、1ページ中に何度でも使える。

■id:
「固有の名前を割り当てる」
→ 同じid名は、1ページ中に1度しか使えない。
0840デフォルトの名無しさん (オッペケ Sr73-Y0h+)
垢版 |
2021/08/22(日) 19:28:04.88ID:M9Sr6GmRr
>>839
ありがとうございます。
自分の解釈ですが、div idは<div id="comment-<php comment_ID(); ?>">
divとhtmlが混合してるときに使って
classは<div class="postlink">
<p class="fLeft"><php previous_post_link('%link', '&laquo; %title'); ?>
</div>
あとつけでCSSを付与したいときにつけるのではないかと
0841デフォルトの名無しさん (オッペケ Sr73-Y0h+)
垢版 |
2021/08/22(日) 19:30:45.06ID:M9Sr6GmRr
もう1点聞きたいのですが
<article class="article__item">
<h1 class="ttl">// <a href="<php the_permalink(); ?>"></a>
<php the_title(); ?></h1>
<time class="date"><php the_time('Y/m/d'); ?></time>
<ul class="post-categories"><php the_category(); ?></ul>
<div class="comments_link">
コメント&nbsp;<a href="<php comments_link(); ?>"><php comments_number('(0)','(1)','(%)'); ?></a>
</div>
</article>

// <a href="<php the_permalink(); ?>"></a>の部分をphpファイルでメモとして反映させずに記載したい場合、どのようにコメントアウトすればよいのでしょうか?
0842PHPerは糞 (ワッチョイ 9f7b-uKxv)
垢版 |
2021/08/22(日) 19:52:52.95ID:6lnERGc60
>>840
違うぞ。てか誰もそんなこと書いてないだろ。
あの記事をそう読めるのなら、PHPの前に日本語を勉強しないと話にならないぞ。
それだと php.net も読めんだろ。
0844デフォルトの名無しさん (オッペケ Sr73-Y0h+)
垢版 |
2021/08/23(月) 01:07:37.56ID:AP99bGsJr
記事を1,2,12と分けて表示する場合if-else 文を使うと思うんですが、
例えば
RSS
記事1
RSS
記事2
RSS
記事12
RSS
フッターと並べる場合最新の記事から順に分けて表示することは可能でしょうか?
0846デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/23(月) 09:14:43.04ID:8Ij0gDpv0
>>835
また君かw
前から何度も言ってるけど、HTML, css, JavaScript, PHP
それぞれの役割分担がまるで理解できてなくてごちゃ混ぜになってる
理解力が低いのに、基礎をすっ飛ばしていきなりWordPressからやるからそうなるんだ

>>839を読んでなぜ>>840の解釈になるのよ
意味がわからんw

もう独学するのはやめてスクールで基礎から学べば?
今のままいくらやっても時間の無駄だと思う
0848デフォルトの名無しさん (オッペケ Sr73-Y0h+)
垢版 |
2021/08/23(月) 19:25:11.44ID:CEbDu2BMr
>>847
ありがとうございます。ブックマークしておきます。
0849デフォルトの名無しさん (オッペケ Sr73-Y0h+)
垢版 |
2021/08/23(月) 19:28:25.05ID:CEbDu2BMr
<php
echo '<0';
$max = 103;
for($i = 0; $i < $max; $i++) {
if($i%3==2 && !empty($i)) {
echo $i.'>';
if($i!=$max-1) {
$a = $i+1;
echo '<'.$a;
}
} else if($i==$max-1) {
echo $i.'>';
};
};
記事を3件ずつ表示させる方法はわかったのですが、1,2,12件を縦に並べて表示する方法がどうしてもわかりません。
ヒントでもいいので教えてくださいお願いします。
0854デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/23(月) 20:15:57.99ID:coaVrcEua
break文で記事を10件中3件表示させることまで成功したんですが、3件を除いて残りの7件を表示させたいのですが
continue文で残り7件を表示できるのでしょうか?
通常は数字とか名前とか短いものを除外して表示させる処理だと思うんですが
もしくわbreakで切って繋げた状態で処理を書く方法があるのですが
テラテイルにあるように処理が長いと重くなるので懸念してます
0855デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/23(月) 20:16:49.71ID:coaVrcEua
>>853
いやだから学びながら組んでるんでしょ
そういうあなたはコード組めるんですか?
0856デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/23(月) 20:30:10.59ID:8Ij0gDpv0
>>854
日本語で頼むw
プログラミングの上達が遅い人って質問も下手なのよ
なぜか分かる?

単純にこうしてもいい

// 最初の3件だけ表示
for ($i = 1; $i <= 10; $i++) {
echo $i;
if ($i === 3) { break; }
}

// 4件目以降だけ表示
for ($i = 1; $i <= 10; $i++) {
if ($i >= 4) { echo $i; }
}


データが配列に入っているならこうしてもいい

$arr = range(1, 10);

// 最初の3件だけ
print_r(array_slice($arr, 0, 3));

// 4件目以降だけ
print_r(array_slice($arr, 3));
0857デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/23(月) 20:31:13.90ID:8Ij0gDpv0
>>854
データベースから取得するデータを変えてもいい

10件中3件しか表示する必要がないなら、
そもそも最初から3件分のデータだけ取ればいい
SQLなら SELECT 〜略〜 WHERE 〜略〜 LIMIT 3 のように「LIMIT句」を付ける

残り7件を表示したいときは上記の続きから
LIMIT 7 OFFSET ○
とすればいい


>>855
そりゃ組めるわなぁ
喧嘩売ってんの?w
08591 ◆YagGt6RMp2 (アウアウウー Sa63-z27x)
垢版 |
2021/08/23(月) 20:45:47.68ID:X90+PoiFa
>>857
失礼いたしました、勉強になります
ついかっとなってしまいすいません…

コテハンつけました。
繋げて途中でRSSとか出力しても重くならずに動かせますでしょうか?
0860デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/23(月) 21:00:38.64ID:8Ij0gDpv0
>>859
そんなのコードを見てみないと分からんよw

ただし、ウェブアプリのボトルネックの多くはDB処理にあるって事は覚えておくべき
つまり、DBから10件取得したものをどう扱おうが(よほどおかしな事をしない限りは)大差はない

だからレベルなら、重くなるかも…なんて事をウダウダ考えず
それはあとに置いておいて、「とりあえず自分にできるかどうか?」を試せばいいじゃん
それすらできないなら、重くなる云々を考える事自体が時間の無駄でしょ?

もし作ったものが重かったら、重い原因を突き止めて改善すればいい

考え方の順番がおかしいんだよ
PHPなんて簡単なスクリプト言語なんだから、うだうだ悩んでる暇があったら書いて動かした方がはやい

もちろん他人に迷惑のかからなローカル環境でね
だからもしローカル環境すら作れてないなら、そこからやれって話になる
0861デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/23(月) 21:05:31.04ID:8Ij0gDpv0
>>859
>>860じゃ何言ってるのか分からんかもしれないか…

1.DB処理

2.ごにょごにょした後処理

3.出力

とやった時にもし重くなるなら、その原因は大抵は1にあるってことね
※2でよほどおかしな事をしてない限り

にも関わらず860は、「とりあえず試す」ことすらせずに3で悩んでる
それは時間の無駄じゃね?って俺は言ってる


今日はこれで終了
俺はたまに気が向いた時しか答えてないし、もっと優しい人が答えてくれるといいな
0862デフォルトの名無しさん (ワッチョイ 7f7d-HdP4)
垢版 |
2021/08/23(月) 21:16:51.95ID:3wtoCMn60
>>859はローカル環境すら構築してない。
(レンタルサーバーの30日間無料試用期間が終わって本契約しなかったから)データ全部消えたって別スレで言ってたから。推測だがサーバー側のファイルを直に弄ってる。

259 名前:名無しさん@お絵かき中 (オッペケT Sr73-Y0h+) :2021/08/21(土) 22:37:33.20 ID:NVDoOS7qr
厳密にはサイトのサーバー契約が切れて中のデータが削除されてる状態ですね
作り直してますが
0863デフォルトの名無しさん (ワッチョイ 7f2c-YC+D)
垢版 |
2021/08/23(月) 21:53:53.91ID:dS401MqO0
データベースは、情報処理資格のデータベース技術者を勉強したか?

第3正規形とか、1対多・多対多とか、インデックスとか、実行計画とか、
ミックの本も読んだか?

Ruby on Rails をやる香具師は皆、これらを勉強している

そうじゃないと、2つの表の積になる。
例えば、表Aに千件、表Bに千件なら、千 * 千 = 百万

表の積にしてはいけませんよとか、
基本的な計算量が分かっていないと、システムを組めない
0864デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/23(月) 22:14:05.86ID:Viq8EnO8a
>>860
組んだから考えると言いますが何処で速度の測定をするんでしょうか?
0865デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/23(月) 22:15:13.77ID:xp75siXWa
>>862
無料期間じゃなく正式に契約しててキレたんですよ
半年文 1万円無駄にしたって書いたでしょ
0867デフォルトの名無しさん (ワッチョイ 7f7d-HdP4)
垢版 |
2021/08/23(月) 22:36:13.03ID:3wtoCMn60
>>865


194 名前:1 ◆YagGt6RMp2 (アウアウウー Sa63-z27x) [sage] :2021/08/20(金) 16:43:17.91 ID:6SN5UR3Va
半年間サイトを運営してたんですがバナーの問題で1万円無駄にしてます


普通の人間はコレ見てサイト契約してたとは判断できねーだろ。説明不足にも程がある。
後、作りかけのサイトをいじくりまわしてただけなのを「運営」って言うつもりか…?
0869PHPerは糞 (ワッチョイ 9f7b-uKxv)
垢版 |
2021/08/23(月) 22:44:05.33ID:HkXb89ZS0
>>865
お前まさか1年やってて今これか?
ならもう向いてないから諦めた方がいい。
おかしなプログラミングスクールの宣伝に引っかかって一発逆点とか勘違いしているのかもしれんが、
プログラミングは馬鹿では出来ないし、(すごく頭がよい必要もないけど)
それなりに学校の勉強の延長線上にある。

お前はプログラミング/プログラマを舐めすぎ。
お前が引っかかってる案件は、学校でなら3日目くらいで修得するところだ。
お前は態度も悪いし、頭も馬鹿すぎる。
(そしてここのスレにいるような連中はほぼ全員、そんなこと3分くらいで書ける。お前失礼すぎ。
ただし程度が低すぎで煽りにもなってないが)

今ならいくらでも大学の講義資料なんて転がっているのだから、学ぶ気があればその大学に入っていなくても同じ事を学べる。
この意味ではいい世の中になったのだけど、だからこそ、糞であるのはお前だけの問題だね。
0870デフォルトの名無しさん (ワッチョイ 7f4b-FcIJ)
垢版 |
2021/08/23(月) 23:08:47.42ID:JmzzGDXP0
釣りにいちいちマジレスすんなよ
それとも自演か?
0872デフォルトの名無しさん (ワッチョイ 1f6a-FcIJ)
垢版 |
2021/08/24(火) 01:10:13.38ID:v+DNM45N0
じゃあ真正の相手なんかするなよ
バカじゃねえの?
0875デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 02:14:56.80ID:6GnLn5mua
3分でとける?そんなわけないでしょ
言っておくと一応書けますが記述が重いから別の方法はないですかと聞いてる
それにコード見てもらえれば分かりますが300行ぐらいあるんですよ?
だからそのコードを上手くまとめる方法がないかと調べてなかったので聞きました
0876デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 02:15:46.89ID:6GnLn5mua
>>871
あなたはお絵描き板の人間でしょ?
何でこっちにきたのコードも書けないのに
0877デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 02:18:21.71ID:6GnLn5mua
そもそもコピペしてコードが組めるわけないだろ
考えて分からないから聞いてる
質問だって丸投げにしてないし調べてるでしょ
パターン1があるんですが別の方法を教えてくださいと
0878デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 02:23:18.44ID:6GnLn5mua
テラテイルって結局コード載せても教えてくれないし自分で考えてクリアしろって言ってるようなもんでしょ
どの質問見ても質問者の回答が90%レベルまで完成して残りの10%程度ですよ
0879デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 02:41:22.85ID:6GnLn5mua
取り乱してしまいすみません。
調べてみてどうしても分からない時に出来るだけ聞いてます。
初めは丸投げばっかりで迷惑かけたのは反省してます。
0880デフォルトの名無しさん (ワッチョイ 7f2c-YC+D)
垢版 |
2021/08/24(火) 05:41:50.40ID:SMXHl8SK0
Ruby on Rails の学校では、必ず自走力を問われる。
自分で検索して解決する能力

他人に答えを聞いても、仕方ない。
企業・社会は、そういう人を求めていない

求めている人は、自走力のある人。
自己解決能力

大学の問題が分からなければ、高校へ戻る。
それも分からなければ、中学へ戻る。
それも分からなければ、小学校へ戻る。
究極は、0歳児まで戻る。

それが基礎から始めろという意味。
他人は関係ない。
自分が分かるレベルまで戻ること

そこから、新たに積み上げていく

それと、コテハンを付けてくれ。
誰が書き込んでいるか、分かりにくいので

全員が、YouTube で有名な、雑食系エンジニア・KENTA のサロンで、
Railsを学んでいるのには理由がある。
学習環境が整っているから。本・学習教材が多いから

WordPress には、そういうものが無い。
デザインの本ばかりで、プログラミングの本もない。
だから、プログラマーは手を出さない。
学習環境がないから
0883デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 11:53:17.31ID:sEq7DRwKa
自力で進めないから学校入れって…
じゃあテラテイルとかYahoo知恵袋とか何のためにあるのやら…
それにどうしても分からないなら参考書買いますよ
0885デフォルトの名無しさん (ワッチョイ 1f02-w78u)
垢版 |
2021/08/24(火) 12:13:30.28ID:i/CdoHjd0
どうでもいいんだけどさ、なんで最初から有料のレンタルサーバー使ってんだろ
まずローカル環境でコード書いてテストして、そこからレンタルサーバーに導入するのが基本筋だよな

PHPのテストだってXAMPP使えばいいし
テストを人に見せるだけなら、無料のレンタルサーバー使って見せればいいし

一万円無駄にしたって言うけどそういうところちゃんとやったの?
0886デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 12:20:48.36ID:RcuubC7Fa
>>885
やってなかったです
まぁ色々バナーの件とかありまして
ローカル環境でやれば良かったです
0887デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 12:22:27.93ID:RcuubC7Fa
エンジニアが全員学校行ってるわけないでしょ
学科が違う人もいるわけだし、学校なんか行っても大学の授業中に勝手に頭に入るわけないでしょ
結局独学で勉強するかどうか
0888デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 12:23:36.49ID:RcuubC7Fa
学校行っても授業なんて聞いてませんでしたよ、本読んでる人もいたし
0890デフォルトの名無しさん (アウアウクー MM73-LN3e)
垢版 |
2021/08/24(火) 12:31:48.95ID:vYlptfMfM
エンジニアは勉強をどれだけやったかどうか
独学でやるしかない学校行って全員成功できるわけがない
0892デフォルトの名無しさん (ワッチョイ 1f02-w78u)
垢版 |
2021/08/24(火) 12:47:49.14ID:i/CdoHjd0
1ってさ、バナー絵描いてサイト作成したらゴールラインだと思ってそうだよね

そこから競合他社(っていうの?)とどうコンテンツを差別化して蹴落とすかを考えながら運営するのが一番のメインなのに、熱量の配分が間違ってる気がするわ

競合他社はlivedoorブログで効率よく作成とメンテナンスをしてるのに、簡単なプログラマングで躓いている1がまともに戦えるかというと、難しいよね
0893デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 13:03:43.22ID:qeUHK0nZa
>>892
できれば個スレの方でお願いします
あとライブドアはPHPいじれませんので、カスタマイズ性に劣りますし
広告もオーバーレイで仕込めません
0894デフォルトの名無しさん (アウアウウー Sa63-HdP4)
垢版 |
2021/08/24(火) 13:34:10.03ID:tiw2Fuema
>>436
まー普通はそう思うわな。
でも本人の口から語られた真実聞いたらびっくりするぞ。

別板で
865 名前:デフォルトの名無しさん (アウアウウー Sa63-LN3e) :2021/08/23(月) 22:15:13.77 ID:xp75siXWa
>>862
無料期間じゃなく正式に契約しててキレたんですよ
半年文 1万円無駄にしたって書いたでしょ

つまりバナー描いてる間にサーバ契約してたのにファイル削除されたので料金(1万円分)損したって事なんだぜ。エスパーでもなきゃわからないよな。
0897デフォルトの名無しさん (ワッチョイ 7f7c-T33Q)
垢版 |
2021/08/24(火) 15:39:51.59ID:PoRbLVCz0
基礎も知らないのに金稼ぎか知らないが自前でプログラムって正直甘いよなw
多分こういう奴は学校とか行っても無理かと思う
出来る奴は自分で調べて解決出来るしな
まぁ、そもそもコンピュータの事やwebの事知らなさすぎじゃね?
0899デフォルトの名無しさん (ワッチョイ 1fda-aNaD)
垢版 |
2021/08/24(火) 18:03:54.96ID:H5iQDYU00
誰もツッコまないから書くがレンタルサーバーでプログラムの勉強するのやめれ
ミスで負荷かけたら他人に迷惑かかるよ
ローカル環境作ってデバッグしてからレンタルサーバーにアップロードしなよ
ローカル環境ならデバッグ環境も整うしね
0901デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/24(火) 18:47:44.24ID:D5bTYk2I0
なんか盛り上がってるみたいだが流れを読まずに上から順に淡々と回答
理解力に乏しいアホの疑問はさっさと解決し、スレから出ていってもらいたい

>>864
古くからの定番なのはApache Bench
Windows環境でも使えるからググろう
この手の疑問が出た際に「ベンチマーク」って単語を使ってググれないのはセンスがない

>>865
開発はローカル環境で行うもんだ
ローカルに開発環境すら構築していないのにこれ以上やるのは時間の無駄
WordPress向けのローカル環境構築は、理解力の低いアホはXAMPPでやればいい
個人的にお勧めなのは「VCCW」と「WordMove」での環境構築だが

>>875
たったの300行なら、paiza.ioにそのコードを書いてもらえばいい
0902デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/24(火) 18:52:48.08ID:D5bTYk2I0
>>878
teratailは基本ルールが守れてない人には回答はつかない
この調子だと呆れられてるだけだろう

>>879
前から同じことの繰り返しだし反省してないよね
まるでDV男だ
暴力をふるった後に「こんな事するつもりじゃなかった!愛してるよ」の繰り返し…みたいなw

>>883
頼むからコテハンを付けてくれ
独学できる人とできない人との間には決定的な違いがある
俺やここの人の何名かは独学で身につけたが、883には独学するセンスはない これは断言しとく
独学できないのが駄目ってわけではない
センスがないのに独学を続けるのは時間の無駄ってだけ
0904デフォルトの名無しさん (アウアウウー Sa63-LN3e)
垢版 |
2021/08/24(火) 19:16:15.01ID:cK9khe+Za
>>901
ローカルサーバーは設定が面倒で使ってなかったのですがWindowsのフリーソフトでは
XAMPPやApache Bench で使えるって事でしょうか?
0905デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/24(火) 19:19:42.02ID:D5bTYk2I0
例えば「大人のADHD」ってあるけど、
大人になってから自分に学習障害があるって事をどうしても認められず、自分も周りも不幸になっていくって人がいる
学習障害を持つ人は素直に早い内に障害を受け入れ、大手企業の障害者雇用枠辺りを狙った方が、自分も周りも幸せになる

独学できるできないも一緒の話
独学できないのは仕方ない
独学するセンスがない事を素直に認め、スクールなどで手取り足取り教えを請うという方法を模索した方がいい

>>887>>888は、独学できる人のセリフであって Sa63-LN3e が言うセリフじゃない
0907デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/24(火) 19:35:08.45ID:D5bTYk2I0
今日はもうこれで最後にしとくが、Sa63-LN3eは考え方が「他罰的(外罰的)」なんだよね
自分は悪くない!悪いのは周りの人間だ!

5chによくいるニート・こどもおじさんがこのパターン
自分は悪くない!悪いのは国だ!政治だ!学校だ!先生だ!親だ!
ってねw

自分の努力不足などを棚にあげてそんな事をいくら吠えても
やがて誰もまともには相手にしなくなる
0909PHPerは糞 (ワッチョイ 9f7b-uKxv)
垢版 |
2021/08/24(火) 20:26:32.53ID:r8xig3wM0
>>875
3分で、というのは問題解決の根幹部分、つまり856の内容のことだ。
お前の質問は、お前にも分かるように言うと、
「ひらがながうまくかけないんですけど、どうすればいいですか」
であって、マジレスするにしてもどうしろと?なんだよ。

> 言っておくと一応書けますが記述が重いから別の方法はないですかと聞いてる
ならそのコードで行け。それ以外無いよ。

ただちなみに言っておくと、初心者の「重い」ってのは全く当てにならない。
実際の負荷をきちんと計測するのは見た目以上に難しくて、初心者が適切に対応出来る案件ではないんだ。
だからお前の「重い」もデタラメだとは思うが、それも含めて、
初心者なのだからある程度試行錯誤(=味見)するしかないのも事実で、そのコードで行くしかないよ。
そしてその後上達したら、その自分が書いたコードがとんでもなく糞だったと理解出来るようになるだろうよ。

>>883
ネット上の質問は、自力で進められる奴が何か勘違いして引っかかっている時とかには有効だ。
逆に言えば、それ以外では大して意味がなく、学校で体系的に習った方が断然いい。
ただお前は独学に向いてもないが、学校に行っても駄目な奴だと思うよ。(他の人も言ってるけど)
だからプログラミング自体を諦めた方がいい。仮に上手く紛れ込めても、ろくな未来は待ってない。

絵が描けるのなら、絵で勝負すべきだよ。
そして絵で稼いだ金でプログラマに発注して望む物を作ってもらえばいい。
青水庵とかいう有名同人(らしい)がこれやって話題になってたけど、やり方としては正しいよ。
0910PHPerは糞 (ワッチョイ 9f7b-uKxv)
垢版 |
2021/08/24(火) 20:53:28.09ID:r8xig3wM0
>>907
それにはゆとりの驕りを感じるけどね。
ゆとりは実力があったのではなく、社会情勢(景気=求人状況)がよかっただけ。
とはいえ、人は皆一度きりの人生しか歩んでないから、そんなもんだと勘違いするのも道理なのだけど。

自分が目指してきた事の先に道がつながってない状況に遭遇した時、たくましく方向転換出来る奴なんてそう多くはないのだよ。
良い就職を目指してあれこれ頑張ってきたのに、そもそも求人がないのではどうにもならんだろ。
そこで凹んで腐ってしまうのは当人の問題でもあるけど、
ゆとりなんてメンタル弱いし、同じ状況ならもっと沢山腐ってる。
それを認識出来ずに「俺ら最強」みたいな勘違いをしてるからゆとりは嫌われる。

がまあ、それも含めて、Web系は比較的自由な状況のようだし、
悔しければブログでも何でもいいからサイト立ち上げて勝手に稼げ、が出来る状態なのは良いことだよ。
そしてゆとりの実力が評価されるのはその次の世代、つまりさとりが社会人3-5年目になって、さとりだけで仕事が回るようになった時だ。
そうなって初めて、お前らは調子乗りすぎてたって自覚出来るのだとは思うよ。
(だから今のお前らに言っても無駄なのも事実なのだけど)
0914PHPerは糞 (ワッチョイ 9f7b-uKxv)
垢版 |
2021/08/24(火) 22:53:16.70ID:r8xig3wM0
>>911
他の専門板なんて見る機会ないから、試しにpart7とIP有り(part8)を読んでみた。
民度が高くてびびった。
いや、これ以前に色々あったのだとは推測するが、基本的にみんなちゃんとアドバイスしてる。
むしろ、こんな専門板がまだ残っていたのか!と驚きだ。
この板なんてマジで腐ってしまってるし。

が、まあ、やってることがいちいちおかしいのはさておき、
プログラマか絵描きかと聞かれれば、向いてるのは絵描きのように見える。

とはいえ、一枚のバナーで集客出来るほど絵に魅力があるわけでも無し、
既にあるlivedoorブログ等を凌駕するほどの何かを組めるプロブラミング力があるわけでも無し、
こいつは色々舐めすぎだよね。
プログラミングも絵も同様に「技能」だから、修練しないと出来るようにはならない。
それでも、こいつがどちらの修練に向いているかと言われれば、見てる限り絵のように見える。
途中経過等も上げまくってるし、本人なりに楽しめているのだろう。

なおプログラミングに向いているのは、例えば>>680とかだ。
「楽しめてない奴」が「楽しめてる奴」より時間を費やすのは難しいから、楽しめてること自体が素質だよ。
だから680は上達するタイプだとは思うが、方向性はもうちょっとマトモにした方がいいとは思う。
0915880 (ワッチョイ 7f2c-YC+D)
垢版 |
2021/08/24(火) 23:13:40.83ID:SMXHl8SK0
>>883
>どうしても分からないなら参考書買います
これで、分かるようにならない

課題は無数にあるから、数冊に書けるわけがない。
それに入門書が10冊あっても、内容は同じだから、1冊分しかないのと同じ

例えば、プログラムの本には、決済システムが書いてない。
検索システムや、データベースの改善方法も書いていない

こういう課題は無数にあるから、無数の本が必要になるから、無理。
だから皆、調べる力を付けるために、学校・サロンへ行く。
これが自走力。
どこの学校でも、自走力・自走力と、うるさく言われる。
勉強した人には、ほぼ無限に領域がある事を知っているから

YouTube で有名な、雑食系エンジニア・KENTA のサロンとか、
Udemy の山浦清透、AWSのくろかわこうへいのサロンとか、
皆が入るのは、東大専門予備校と同じ。虎の穴

自走力がついて、転職競争に勝てるから。
ここで1年勉強するだけで、10年以上のプログラマーよりも上になる

独学で10年勉強しても、まず、サロンの1年生に勝てない
0917デフォルトの名無しさん (ワッチョイ 7f7d-HdP4)
垢版 |
2021/08/24(火) 23:21:37.16ID:ZqUFDcGG0
0881 1 ◆YagGt6RMp2 2021/07/22 22:45:20
海外の方も来れるように翻訳機能を搭載して戦えればpixivなんか勝てます
ID:7voVJ3lT0(2/4)

こんな事言うヤツやで、いかに舐めくさってるかわかるやろ。
0918880 (ワッチョイ 7f2c-YC+D)
垢版 |
2021/08/24(火) 23:34:44.91ID:SMXHl8SK0
KENTA は本の著者。
日本6位の3千人が、サロンに入っている

Udemy の山浦清透も3千人。
AWSのくろかわこうへいは、数百人

Ruby on Rails, AWS, Docker などを使って、
日本の教育革命を起こした、3人
0922デフォルトの名無しさん (ワッチョイ 9f01-KV0B)
垢版 |
2021/08/25(水) 00:12:41.63ID:DmEjX2tT0
文章は、リズムで読んでるから、無駄に句読点多いと、ペース悪くて、めちゃくちゃ読みにくいわ。
同じ理由で単語ごとに、絵文字使うやつも、苦手。
視覚的に認識してる割合が強い人は、句読点多いほうが意味のまとまりが可視化されて捉えやすいのが好きなのかもしれないね。
0923880 (ワッチョイ 7f2c-YC+D)
垢版 |
2021/08/25(水) 00:21:58.73ID:T8xCLAXo0
可変サイズのフォントで、文字の切れ目が分かりにくいからかな?

なんか詰まりすぎるから、開けたくなる
0925デフォルトの名無しさん (ワッチョイ 9f01-KV0B)
垢版 |
2021/08/25(水) 00:52:44.54ID:DmEjX2tT0
もちろん句読点がなさすぎて読みにくくなる文もある。
ただ >>915 の牛歩みたいな句読点の多さだったり、
「エンジニア・KENTA」「自走力・自走力」みたいな、記号を新解釈用法で使いだす文章見ると、
相手に伝えるための文章書くときに、世間一般的なルールに従うより自分が使いたいと思うやり方でやるタイプの人なんだろうなとは感じる。
0926デフォルトの名無しさん (ワッチョイ 7fad-Awm0)
垢版 |
2021/08/25(水) 00:56:16.64ID:XZQf1hm/0
LP等で特定の文字のみ装飾つけて強調したりすることもあるじゃん
それの変化型かなと思わないでもない
装飾がつけれないから句読点で区切ってるとか

何かの演説っぽくて鼻につくけどね
0929デフォルトの名無しさん (ワッチョイ 1f5f-zH/y)
垢版 |
2021/08/25(水) 15:16:15.62ID:82D+OUQk0
PHPなんて双方向通信にしか使ってないけど
他にもいろんなことできたんですね
でも他のことあえてサーバープログラムでやる気しないけど
普通にJavaSpiriteでよくないすか
すか
0930デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/25(水) 19:03:30.33ID:bgcZULic0
5chだとすぐ句読点がー長文がーって話になるけど
プログラミングできない人(多少できたとしてもウンココード量産する人)って、日本語の文章を書くのも下手よね

TwitterやLINEなどのショートメッセージサービスばっか使ってるせいで、
いざビジネスメール書かせるとめちゃくちゃだったりw
長文の活字を読まないせいで、仕様書を理解するのがやたら遅かったりw
0931デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/25(水) 19:07:53.83ID:bgcZULic0
偶然読んだひろゆきのコラムか何かで
何かの信者になる人は頭の悪い人(だから自分の信者もバカばっか)みたいな話があったな

ひろゆきは嫌いだが、たまには良いこと書くなって思ったw
0932デフォルトの名無しさん (ワッチョイ 1f08-u2+K)
垢版 |
2021/08/25(水) 19:12:35.42ID:bgcZULic0
>>917
そこからもう1ヶ月経ったわけだが、その間に彼が何を創造できたのか聞いてみたいもんだ
5chにクソレスしか残せてないなら笑うしかないw

創造する力もないのに口ばっかの奴って居るよな
0938デフォルトの名無しさん (ワッチョイ 7901-gYL6)
垢版 |
2021/08/27(金) 19:35:07.68ID:1ddIN8wD0
信者になれば自分で考えなくてよくなるから楽なんだろう
だからバカは何かの信者になるし賢い人は自分の下にバカな信者を作って都合の良い駒として活用する
0939デフォルトの名無しさん (ワッチョイ 5934-Eilb)
垢版 |
2021/08/27(金) 20:51:49.29ID:SUiz7MDK0
>>938
rubyガイジがまさにそれ
0942デフォルトの名無しさん (ワッチョイ 2936-Wwpo)
垢版 |
2021/08/29(日) 12:30:15.73ID:JObPo4/+0
条件分岐の際、複数の条件にマッチしていた場合は別の処理を行う簡潔な方法を教えて下さい

【やりたいこと】

$matched_count = 0;

if(条件1){
$matched_count ++;
}
if(条件2){
$matched_count ++;
}
if(条件3){
$matched_count ++;
}

if($matched_count > 1){
処理A
}else{
if(条件1){
処理B
}
if(条件2){
処理C
}
if(条件3){
処理D
}
}
上記のやり方では2箇所で同じ条件分岐をしているのでそれを1箇所で済ませたいのですが、いい方法はないでしょうか?
0943デフォルトの名無しさん (ワッチョイ 2936-Wwpo)
垢版 |
2021/08/29(日) 12:34:26.16ID:JObPo4/+0
すみません>>942のコード後半訂正です
正しくはこちらです(後インデントのやり方が分からず見づらくなってしまい申し訳ないです)

if($matched_count > 1){
処理A
}else{
if(条件1){
処理B
}elseif(条件2){
処理C
}elseif(条件3){
処理D
}
}
0946デフォルトの名無しさん (ワッチョイ 6ea7-+pMA)
垢版 |
2021/08/29(日) 15:03:06.13ID:wuO9U1o+0
ビット演算子やら使うのがプロっぽいけどまあ簡単な方法としては

条件1 $matched_count+=1;
条件2 $matched_count+=10;
条件3 $matched_count+=100;

switch ($matched_count)
 case 1: 処理B; break;
 case 10: 処理C; break;
 case 100: 処理D; break;
 case (substr_count((string)$matched_count, '1') > 1): 処理A; break;
0949デフォルトの名無しさん (ワッチョイ 1163-U7Lh)
垢版 |
2021/08/29(日) 16:16:53.48ID:5p1Kcso30
訂正

条件1、条件2、条件3のいずれも成り立たないときに
$matched_countが1以上になることってあるのか?

switch (条件) {
 case (条件1): 処理B; break;
 case (条件2): 処理C; break;
 case (条件3): 処理D; break;
 default: 処理A; break;
}
0950デフォルトの名無しさん (ワッチョイ ae54-Qt7m)
垢版 |
2021/08/29(日) 21:22:35.28ID:jk8FaPo90
>>949
そうですよね。なんか変。

>>942
>>943
やりたいことは単純なのに、却って複雑にしてるようだ。
ifの入れ子もあまりよくない。
複数の条件に合致するなら、if((式1)&&(式2))のように、「かつ」の&&演算すればいい。
この方があとで読み返しても理解しやすい。
0951デフォルトの名無しさん (オッペケ Sr51-qIGU)
垢版 |
2021/08/29(日) 21:36:15.49ID:m1i8+Vosr
ユーザーが検索したワードを許可なく勝手に検索ワードとして表示するのは違法でしょうか?
09551 ◆YagGt6RMp2 (アウアウウー Sa85-D2ti)
垢版 |
2021/08/31(火) 14:27:34.91ID:cvbygslea
file_put _comentsの戻り値を確認したいんですが、$f_pathでファイル保存する場合
どうやってfalse処理を確認するんでしょうか?
仮想環境でテストするんでしょうか?
0957デフォルトの名無しさん (アウアウウー Sa85-0BKB)
垢版 |
2021/08/31(火) 17:26:44.62ID:LBWBukEMa
以前教えてもらったword moveとか調べましたが、結局のところコマンドプロンプトでパッケージインストールするのと同じですよね
0958デフォルトの名無しさん (オッペケ Sr51-qIGU)
垢版 |
2021/08/31(火) 20:44:16.86ID:pZtZn9pTr
$keyword_data = array(date(‘Y-m-d-G-i-s’), $_SERVER[“REMOTE_ADDR”], $_GET[‘s’].PHP_EOL);
$keyword_data = implode(‘,’, $keyword_data);

for($i = 0; $i < sizeof($keyword_data ); $i++ ) {
if(strlen($keyword_data[$i]) > 200){
exit;
}
$keyword_data[$i] = htmlentities($keyword_data[$i]);
}
file_put_contents($f_path, $keyword_data, FILE_APPEND);
//ファイルの末尾に追記する
}
これで検索フォームを使ってリファラから検索ワードを表示したいのですが、うまく保存されません。
パーミッションの問題はないと思うんですが何が原因でしょうか?
0959デフォルトの名無しさん (オッペケ Sr51-qIGU)
垢版 |
2021/08/31(火) 20:49:26.01ID:pZtZn9pTr
$f_path = “wp-content/themes/monomode/test.csv”;
で検索ワードを格納してます
0961デフォルトの名無しさん (アウアウウー Sa85-0BKB)
垢版 |
2021/08/31(火) 21:03:17.35ID:tr3tqZE8a
>>960
すいません…
気をつけます
0965デフォルトの名無しさん (アウアウウー Sa85-0BKB)
垢版 |
2021/08/31(火) 23:47:13.00ID:CmmY4sl3a
>>964
すいません…
明日XAMPPで試してみて、エラーがわからなかったら聞きます
0966デフォルトの名無しさん (アウアウウー Sa85-0BKB)
垢版 |
2021/08/31(火) 23:48:15.49ID:CmmY4sl3a
>>963
違いますよ外部の人が検索してそのワードを保存して表示させようとしてます
0968PHPerは糞 (ワッチョイ 597b-CHvI)
垢版 |
2021/09/01(水) 00:12:49.27ID:LUw7U2GC0
>>965
そういう問題じゃねえよ。というかお前何がどう問題視されてるか、まるで理解してねえな。


ただそれ以前に、俺はお前がコード書く意味はないと思うんだけどさ。
ライブドアブログでまとめサイトやってる人が居る=そこで提供されている機能で十分出来る、ということなのだから、
まずはその範囲で始めて、どうしても必要なら後で機能を足していけばいいだけだろ。

お前がそのコードで実現しようとしている機能は、本当に必要不可欠な物なのか?

俺にはとてもそうとは思えないんだけどさ。
まとめサイトってのは、そこでおもしろおかしくまとめられている「内容」を読みに来るものであって、
お前が拘っている「機能」を利用しに来る奴が居ると思っているのか?しかもろくに動きもしないのに?
同様に「バナー」も割とどうでもいいと思うが、それでも「サイトの顔」ではあるから大切にはすべきだろうよ。
このままだとどう見てもあと2週間では終わらないだろ。切るとしたらまずはコード(PHP)だと思うけど。
コード書かなくてもまとめサイトは出来るわけだし。
0969963 (ワッチョイ 6e2c-q8ax)
垢版 |
2021/09/01(水) 01:52:11.25ID:UTT/foLD0
1. ユーザーが、ブラウザに検索ワードを入力して、サーバーへ送信する

2. サーバーで、ユーザーからのRequest を受け取って、
データベース・ファイルなどに、検索ワードを保存する

データ保存は、Ruby on Rails とか、どのウェブサービスでもやっている事。
基本中の基本。
3大データベースとか、S3, Aurora とか

これが出来ないと、かなりヤバイ。
入門書すら読んでいない事になる。
絶対に、入門書に書いてあるはずだから

でも、WordPress の本には、そういうプログラミングの事は書いていないか
0970963 (ワッチョイ 6e2c-q8ax)
垢版 |
2021/09/01(水) 01:56:21.42ID:UTT/foLD0
エロサイトなどでは、自分の検索ワード履歴とか、

他人の検索ワード履歴も表示するサイトもある
0973デフォルトの名無しさん (ワッチョイ 9d5d-QSFJ)
垢版 |
2021/09/01(水) 21:06:10.98ID:7RnFx2Il0
半年でウェブアプリを5.6開設したんだけどどうやって個人ではどうやって広めるもんなの?Twitterとか?
0974蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-wzvD)
垢版 |
2021/09/01(水) 21:27:54.72ID:3EDaoUNRd
>>973
そのウェブアプリはニュースにする価値のあるものか?
あるなら、どこかに頼んでコンテンツや記事やウェブ広告にして頂こう。お金はそれなりにかかるかも知れないが、自己責任で頼む。
0977デフォルトの名無しさん (ワッチョイ 9d5d-QSFJ)
垢版 |
2021/09/02(木) 06:57:05.51ID:WpV5niTf0
>>974 >>945
サンガツまず調べて値段に釣り合うならやってみるわ
0978デフォルトの名無しさん (ワッチョイ 9d5d-QSFJ)
垢版 |
2021/09/02(木) 07:08:59.72ID:WpV5niTf0
>>976
そうかその手があった。

あれやこれやの名前を都道府県別に答えるサイト
https://korenanteiu.net

旅が好きだから、海外の情報をマップ上に表示するサイト
https://tabinote.info
0979デフォルトの名無しさん (ワッチョイ 675f-Sfec)
垢版 |
2021/09/03(金) 15:57:32.81ID:2h2Nq9e40
PHPって何に使うんですか?
PHPでUnity作れますか?
0980デフォルトの名無しさん (ワッチョイ 7fa7-nzYM)
垢版 |
2021/09/03(金) 17:19:28.77ID:ZXqCsw9n0
PHPは主にマルチプラットフォームでコンソールアプリケーションを作成するための言語です。
ですので、もちろんゲームを作ることもできます。
かの有名はローグライクゲームのNetHackもPHPで作ることができます。
0981デフォルトの名無しさん (オッペケ Srbb-evTy)
垢版 |
2021/09/08(水) 17:28:16.18ID:dxUyUwzHr
<php
setlocale(LC_ALL, 'ja_JP.UTF-8');
$fp = fopen('test.csv', 'r');
flock($fp,LOCK_SH);
$rows = array();
while ($row = fgetcsv($fp)) array_push($rows, $row);
flock($fp,LOCK_UN);
fclose($fp);
foreach (array_slice($rows, -10) as $row) vprintf("%s %s\n", $row);
var_dump($row);
?>
csvデータを下から数えて10行目から最後までを表示させたいんですが、何回直しても文字だけ出力されません
なぜでしょうか?
var_dump($row);で確認したところ
2021-09-07-4-27-36 126.156.166.227 2021-09-07-4-27-52 126.156.166.227 2021-09-07-4-31-03 126.156.166.227 2021-09-07-4-50-36 126.156.166.227 2021-09-07-4-52-03 126.156.166.227 2021-09-07-4-52-15 126.156.166.227 2021-09-07-4-52-26 126.156.166.227 2021-09-07-5-01-27 126.156.166.227 2021-09-07-5-14-25 126.156.166.227 2021-09-08-4-48-06 126.133.202.39 array(3) { [0]=> string(18) "2021-09-08-4-48-06" [1]=> string(14) "126.133.202.39" [2]=> string(40) "ううううううううううううう " }
と出てます
0983デフォルトの名無しさん (アウアウウー Sa8b-AvaG)
垢版 |
2021/09/08(水) 18:09:48.04ID:ehctv71ga
>>980
ねぇねぇワクチンが足りないとか余って捨ててるとかなんなの?
PHPだったら1億2千万人のデータベースぐらい余裕で作れるんじゃないの?
0984デフォルトの名無しさん (オッペケ Srbb-evTy)
垢版 |
2021/09/08(水) 18:17:58.95ID:dxUyUwzHr
>>982
値は出力できているのに詰まっているのか
vprintf("%s %s\n", $row);で文字が表示できません
メモ帳で
2021-09-03-13-28-52,126.255.28.185,"0
"
2021-09-03-13-28-52,126.255.28.185,"ううう
"
2021-09-03-13-29-46,126.255.28.185,"ううう
"
2021-09-03-13-29-49,126.255.28.185,"ううう
"
2021-09-06-14-43-33,126.204.198.239,"ううううううううううううう
"
2021-09-06-14-45-37,126.204.198.239,"ううううううううううううう
"
2021-09-07-3-09-52,126.156.166.227,"ううううううううううううう
"
2021-09-07-3-10-34,126.156.166.227,"ううううううううううううう
"
"ううう
"
と書き換えると
2021-09-03-13-28-52 126.255.28.185 2021-09-03-13-28-52 126.255.28.185 2021-09-03-13-29-46 126.255.28.185 2021-09-03-13-29-49 126.255.28.185 2021-09-06-14-43-33 126.204.198.239 2021-09-06-14-45-37 126.204.198.239 2021-09-07-3-09-52 126.156.166.227 2021-09-07-3-10-34 126.156.166.227 ううう 2021-09-08-8-39-56 126.133.201.56 2021-09-08-8-40-31 126.133.201.56
と表示されます
0985デフォルトの名無しさん (ワッチョイ 0701-8qru)
垢版 |
2021/09/08(水) 18:27:01.86ID:SZxv8NIk0
なんのワクチンですか?
0994デフォルトの名無しさん (オッペケ Srbb-evTy)
垢版 |
2021/09/08(水) 20:46:39.49ID:dxUyUwzHr
>$keyword_data = array(date('Y-m-d-G-i-s'), $_SERVER["REMOTE_ADDR"],$_GET['s'].PHP_EOL);

日付、IPアドレス、投稿内容の3つのカラムで格納したのを無視して、
$rows = array_slice($rows, -10);
> vprintf("%s %s\n", $row);
としていたので、格納したデータと表示したいデータが結びついていないのが原因でした。
また3カラムで格納したのに、2カラムで表示しようとして空データが返ってきていたようです。
0996デフォルトの名無しさん (ワッチョイ 7f2c-8qru)
垢版 |
2021/09/08(水) 21:30:05.48ID:dK8gXF1C0
例えば、Ruby のCSV では、
列内に、クォート文字"・列区切り文字,・改行があっても、正常に動く

require 'csv'

input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT

p input_ary = CSV.parse( input ) # 2次元配列
#=> [["a\"a", "b,b", "あ"], ["c\nc", "d\nd"]]

# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str

出力
"a""a","b,b",あ
"c
c","d
d"
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 134日 4時間 32分 38秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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