21/05/13 00:58:28.68 eg0K6B+N0.net
あのさぁ・・・
俺が聞きたかったことは
「PHP7対応の書籍が他にある?」かであって、
どれがいいかなんて聞いてない
ハァ~~~~~~(クソデカため息)
話が通じない人間って、
ホンッット、人の話を聞かないよな
128:デフォルトの名無しさん
21/05/13 04:33:16.57 hLisjmco0.net
>>124
おまえは自分の質問内容も理解できてないのか?
129:デフォルトの名無しさん
21/05/13 07:20:11.85 coUjx+ix0.net
どうしてこんなになるまで放っておいたんだ!
三 三三
/;:"ゝ 三三 f;:二iュ 三三三
三 _ゞ::.ニ! ,..'´ ̄`ヽノン
/.;: .:}^( <;:::::i:::::::.::: :}:} 三三
〈::::.´ .:;.へに)二/.::i :::::::,.イ ト ヽ__
,へ;:ヾ-、ll__/.:::::、:::::f=ー'==、`ー->>123,124
. 〈::ミ/;;;iー゙ii====:::::::.` Y ̄ ̄ ̄,.シ'=llー一'";;;ド'
};;;};;;;;! ̄ll ̄ ̄:::::::::.ヽ\-‐'"´ ̄ ̄ll
130:デフォルトの名無しさん
21/05/13 19:51:06.45 TYrG9hF3d.net
恐れ入ります。。
下記実装で悩んでおりまして、、
一度ログイン認証に成功したユーザーについて、そのユーザーがどのページに遷移しても
ユーザーIDのようなものをページのURLにくっつける仕組みを考えております
何か良い案はありますでしょうか?
お知恵拝借したく。。
131:デフォルトの名無しさん
21/05/13 20:36:02.84 XqtV/lgG0.net
>>127
結論からいうとURLに入れる必要は全くないし入れるべきではないんだけど
ログイン認証実装で当たり前の知識として
セッションという言葉が出てくるのだけどセッションってわかる?
132:デフォルトの名無しさん
21/05/13 20:48:38.42 NATYYilK0.net
Ruby on Rails では、セッションを使う
本来、HTML のページには連続性が無い・1回限りのものだから、
それを同じ人が連続してアクセスしているように見せる概念を、セッションと言う
セッションでは、このアクセスは、5分前にアクセスしたA さんだよね、と判別できる
133:デフォルトの名無しさん
21/05/13 22:44:43.21 e+CFy6Tl0.net
>>129
Rubyの話はRubyのスレでやろうよ
ここはPHPに関する話をする所だよ
134:デフォルトの名無しさん
21/05/13 23:38:44.73 TYrG9hF3d.net
>>128
>>129
お二方誠に恐縮です。有り難うございます。
セッションに保持ということですね。
勉強不足でした。
あとは、ユーザーがページに飛ぶごとに
セッションに保持したIDをくっつける、、
ひゃー どうしよ 難しそう
135:デフォルトの名無しさん
21/05/13 23:42:38.02 hlnRPxw+0.net
URLにユーザーIDのような固有情報埋め込むと
手動で編集されてハッキングされてしまわない?
136:129
21/05/14 00:50:25.47 QMgVBpCt0.net
Ruby on Rails では、セッションキーをURL に付けたりしない。
たぶん、フォームの隠しフィールドか何かに入れて、サーバーへ送って確認する
セッションキーは、ブラウザのcookie に入っているから、F12 開発者ツールでも見れる
ログイン・セッションみたいな機能は、自作するものではない。
普通、Rails みたいなフレームワークを使う
フレームワークの最初が、ログイン機能の説明
137:デフォルトの名無しさん
21/05/14 10:47:01.28 ajnT/ZT0d.net
PHPといいますか
APIは、どのように定義して使うものでしょうか? API自体未経験でして。
コントローラ配下に置く?
138:デフォルトの名無しさん
21/05/14 10:47:53.07 ajnT/ZT0d.net
定義と、それの引き出し方(利用するときの記述の仕方)が不明でして
139:デフォルトの名無しさん
21/05/14 14:47:11.74 W0c2ysgD0.net
APIだと返すものがjsonになったりするだけで特に変わりはないです
140:デフォルトの名無しさん
21/05/14 15:35:13.93 WQ7O0jPa0.net
>>131
いや、そんな難しい話じゃないんだけど
セッションに登録した変数をsession_start()した別のページから参照するだけだから
くっつけるっていう発想がおかしい
141:デフォルトの名無しさん
21/05/14 18:00:30.71 WQ7O0jPa0.net
>>131
あとRubyがなんちゃらいってるのは
ほとんど言ってること出鱈目な嵐なんで無視してね
142:デフォルトの名無しさん
21/05/14 18:00:45.30 ajnT/ZT0d.net
>>136
恐れ入ります。ご教授有り難うございました
143:デフォルトの名無しさん
21/05/14 18:01:16.49 ajnT/ZT0d.net
>>137
なるほど、、ちょっと発想が違ったやうです
誠に有り難うございました!!
144:デフォルトの名無しさん
21/05/14 23:35:06.21 jVp+ssGw0.net
XAMPPのMySQLのAdminをクリックしたら、
Fatal error: Maximum execution time of 120 seconds exceeded in C:\xampp\phpMyAdmin\libraries\classes\OutputBuffering.php on line 171
と表示されてしまいました
どう対処すればよいでしょうか?
色々検索してみたのですがいまいちよく分かりませんでした
145:デフォルトの名無しさん
21/05/15 12:14:03.19 JdcAefgZd.net
UNIXtimeを数値に変換したいのですが
どのようにすれば、、
情けない質問でスミマセン
146:デフォルトの名無しさん
21/05/15 14:00:28.25 YuiGgBpOM.net
そんくらい
147:調べたらどうなんだい…? php unixtimeで調べればマニュアルのtime関数にたどり着くでしょう? んでこいつの返り値はintって書いてるんだからこいつが正解よ 数値がfloatさすなら参考関数のmicrotime関数辿ってみればこいつだなぁってのがわかる
148:デフォルトの名無しさん
21/05/15 18:46:47.03 AwGBnieT0.net
unixtimeってもともと数値じゃない?なんか勘違いしてるんじゃ
149:デフォルトの名無しさん
21/05/15 19:46:56.33 PmNYJboY0.net
unixtimeそのものが数値だな
150:デフォルトの名無しさん
21/05/15 20:03:18.67 JdcAefgZd.net
そうでしたか、、お恥ずかしい
151:デフォルトの名無しさん
21/05/17 11:44:20.20 9TCiORhh0.net
>>146
var_dump($_SERVER['REQUEST_TIME']);
もしくは
var_dump(time());
と書いて実行
聞く前にまずは試そうな
152:デフォルトの名無しさん
21/05/17 11:46:55.70 9TCiORhh0.net
>>130
>>2
153:デフォルトの名無しさん
21/05/17 21:27:55.47 dCClJgVhd.net
恐れ入ります。。マイグレーションにて
あるカラムに
$table = integer('uniq_id')->length(20)
にしたのに、このカラムの桁数が何故か11で
各レコードごとに入れている値が
何故か全部2147483647がセットされていた
なにをどうやっても、この値のまま
update文にセットする直前の値は
想定通りの値なのに、、
154:デフォルトの名無しさん
21/05/17 21:36:36.84 dCClJgVhd.net
スミマセン。自己解決しました。
登録しようとしてた数値が全部デカイ
ものばかりで、オーバーフローになって
それを表示してただけでした。
お恥ずかしい
155:デフォルトの名無しさん
21/05/17 23:45:32.45 xsKpz66C0.net
intだからであってbigint等にすればもっと大きな値を扱えるのでは?
156:デフォルトの名無しさん
21/05/21 21:43:21.16 fpWGW1ET0.net
5/20、エンジニアチャンネル・粟島
これからプログラミングをやる人が絶対に学んではいけない技術
URLリンク(www.youtube.com)
Word Press がオワコンと認定されますた!
Word Pressから、ヘッドレスCMS の時代へ
157:デフォルトの名無しさん
21/05/21 22:15:23.78 6DKs/S3x0.net
Word Press Headless でググれないガイジと言う自己紹介か
158:デフォルトの名無しさん
21/05/23 19:53:27.42 83ibJO/A0.net
Nodejs AWSは絶望したけどPHP さくらインターネットはすんなりできたわ。
159:デフォルトの名無しさん
21/05/24 11:04:23.66 qQRUQj1u0.net
type hintingを自動で入れてくれるIDEか
コマンドラインから使えるライブラリってありませんか?
公文チェッカーでtype hintingを指摘されるんですけど
毎回自分で記述するのが面倒なのです
160:デフォルトの名無しさん
21/05/24 23:57:08.18 QCFa71A50.net
昔大学の卒業研究でPHPでデータベースを扱う感じのプログラムを組みました
周りの人全員がMYSQL等のRDBMSを使っていたので、ちょっと違うことをしてみようかなとRDBMSではなく、テキストデータベース…CSVファイルを分割して表にして扱う感じにしました
CSVでもリレーショナルデータベースは作成できるし、わざわざMYSQLと連携しなくても使えます
それぞれのデータを配列に格納すれば、追加や削除等もできます
MYSQL等は専門的な知識がある人しか触れませんが、CSVの場合はただのテキストデータなので文字が打てる人なら誰でも編集可能です
なのにPHP等でデータベースを組むときにほぼ100パーセントRDBMSが使われる理由は何故でしょうか
CSVデータベースより勝ってる所はなんでしょうか?
CSVをforeachとexplodeで配列に格納してarray_searchやarray_spliceその他の配列操作で検索したり削除したりってしてはだめなのでしょうか?
ってこれだとデータベースの質問になってる…?
161:デフォルトの名無しさん
21/05/25 00:55:12.31 OCfeEYNR0.net
規模によるとしか言えないが
何百万、何千万レコードになると配列操作とかメモリが足りなくなるか
うまくメモリ管理した上でやっても爆遅で現実的に使い物にならずデータの管理も大変
MySQLは設定が大変なあなたのために組み込みのSQLiteが用意されてるのでそれを使ってください
SELECT文で高度な選択するときに長ったらしく難しそうなSQL書く場合はあるけど
素人が編集ってSQLでもINSERT文、UPDATE文ぐらいのもんだし
(これらでもサブクエリでSELECT文書いたりするかもしれないが必須ってわけではない)
専門的な知識が要求されるほど難しい操作じゃない
そもそもそんな素人にSQLを直接書かせて実行させるようなことはまずしない
CMSでよく見られるようにそういう人向けに玄人が管理画面(UI)を提供すべき
162:デフォルトの名無しさん
21/05/25 04:51:43.17 ioTiLorQ0.net
>>157
なるほど、小規模ならどちらでもあまり変わらない
大規模になるとCSVなんかでやってると使い物にならなくなる
って感じなんですね
ありがとうございました
163:デフォルトの名無しさん
21/05/25 05:22:12.10 t3oSQf000.net
>>156
排他制御を自前実装するのがめんどくさいから
164:デフォルトの名無しさん
21/05/25 05:32:49.12 OCfeEYNR0.net
規模によるというのは誤解を招く表現だったね
まず小規模であってもインデックスされたRDBのほうが動作は格段に早い
キャッシュ使えばだいぶましになるだろうが
CSVは基本的に都度ファイルの内容を全部読み込む必要があるってのは恐ろしいこと
データが壊れないようトランザクションやらデッドロック回避するための処理も自分で書かないといけない
探せば誰か作ってるのかもしれないけどおとなしくRDB使ったほうが得策
165:デフォルトの名無しさん
21/05/25 09:25:35.01 nqZ7AMuGd.net
偶然10年ほど前の卒業研究のプログラムを見つけたから質問してみたのですが、なるほど…
もしかしてflock関数でCSVファイルをロックするだけでは不十分でしたか?
166:デフォルトの名無しさん
21/05/25 11:19:10.30 mW0d20UP0.net
動作させるOSの機能に依存
167:デフォルトの名無しさん
21/05/25 11:36:19.63 i4fgZWTV0.net
ブロック崩しを作成しようと思い、サイトを見ながら作っているのですが、上手くいかなくどうしようもなくなったので、ご教授いただけると幸いです。
ブロック崩しは、2人で行えるようバーを二つ設置し、「Excel Gamer 」を参考にバーを二つにし、ブロック数を525、横幅を500縦を450に設定しました。
現在はCrossPoint.X = (b1 * c2 - b2 * c1) / (a1 * b2 - a2 * b1)でオーバーフローが発生し、直しようがなくなりました・・・
お力を貸していただけると幸いです。
168:デフォルトの名無しさん
21/05/25 11:38:54.70 i4fgZWTV0.net
163質問場所を間違えました。申し訳ありません。
169:デフォルトの名無しさん
21/05/25 15:24:00.63 1VsrUFXu0.net
xamppで環境作って勉強したいんだけど
windowsとmacってどっちのほうが使いやすい?
ノートPC買うんで迷ってる
170:デフォルトの名無しさん
21/05/26 06:54:00.59 69csG91U0.net
PC初心者ならWindowsの方が分かりやすい気がする
XAMPPは普通にインストールするだけで動くので楽
(勿論XAMPP Controll Panelを起動してApacheや必要ならMySQLのサービスはStartさせないと動かないが)
171:デフォルトの名無しさん
21/05/26 07:12:17.10 XGTO2klA0.net
>>156
DB は2分探索だから、計算量がO(log N)
ある行を探す際、線形探索なら千行は千回だけど、
2分探索なら、2^10 = 1,024 だから、10回で探索できる
その代わり、インデックスが必要。
DBは、探すのに特化してる
172:デフォルトの名無しさん
21/05/26 07:24:40.58 XGTO2klA0.net
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 がインテルじゃないらしいから、よく分からないので調べて
173:デフォルトの名無しさん
21/05/26 07:48:33.05 EesGrOHZ0.net
phpやるためにノートPC買うような物好きでもないなら
本来の目的に合わせて購入すればいい
174:デフォルトの名無しさん
21/05/26 08:44:53.04 k/p9+gJD0.net
初心者のうちは情報量の多い方を選ぶのがベター
ぶっちゃけデザイナーならまだしもプログラマーがMac選ぶメリットなんて無い
175:デフォルトの名無しさん
21/05/26 12:05:14.18 i8RXMZKn0.net
しかし、ドライブ毎にカレントがある環境って使いにくいぞ
176:デフォルトの名無しさん
21/05/26 14:57:14.02 Hi5+VMF60.net
そうかなあ
177:デフォルトの名無しさん
21/05/27 15:29:26.40 wacuw9FKd.net
初歩的な質問で大変恐縮ですが、
eloquentを使う際
例えば
test1::with(test2)
といった形で書いた場合
両者のモデルを結合するにあたり、両者の
主キー同士で暗黙的に結合される認識で
良いでしょうか??
inner joinとかのように明示的に
on test1.id = test2.idのように書かれていないために不安になりまして。。
178:デフォルトの名無しさん
21/05/27 16:11:30.18 iH/fNbvA0.net
>>173
スレチ。laravelスレに行くと良いよ
まぁ、その前にドキュメント読んだほうが良さそうだけど
179:デフォルトの名無しさん
21/05/27 16:49:40.32 gBRAegCd0.net
>>173
URLリンク(readouble.com)
でも読め
読んでも分からないとは思うけど、リレーションの設定をしていないとそもそも使えないやろw
180:デフォルトの名無しさん
21/05/28 04:53:14.08 eNCMSwEe0.net
Ruby on Rails のassociation では、
1人の著者は、複数の本を書いている
Author
has_many :books
Book
belongs_to :author
これで、1:多。
デフォルトのキー名、id 同士が結ばれる
181:デフォルトの名無しさん
21/05/28 06:56:54.69 KxrmSnczM.net
>>176
Ruby 初心者スレッド Part 67
スレリンク(tech板)
182:デフォルトの名無しさん
21/05/28 07:26:29.82 oldMWp+o0.net
相手すると喜ぶからまたバカなこといってんなって思いつつスルーが正解デス
183:デフォルトの名無しさん
21/05/28 19:09:27.77 2c5MmCLH0.net
たった5~6人の仲間でも熱い展開はあるのに
その仲間の輪が極限にまで広がった全員救われ、全員幸せになる完全無欠の大団円エンドは
誰も体験したことがないようなすさまじいカタルシスなんだよ 要はすごいんだよ!
俺はその物語の最強の中心メンバーのこの世界の主人公で、宇宙二位の人気者で
宇宙最強の存在なのだ
皆がキャラ覚醒やヒーロー覚醒していく物語 一番好きな自分になれる物語だ
184:デフォルトの名無しさん
21/05/28 19:14:25.30 RSOdsWo80.net
そうだな、物語だな
185:デフォルトの名無しさん
21/05/31 23:46:01.78 r+O+jmpx0.net
比較演算子についてなんですが、
!=と<>は全く同じ意味だと捉えてもいいでしょうか?
本には、自動型変換した上で異なる場合にtrue、と書かれています
186:デフォルトの名無しさん
21/05/31 23:54:03.70 AaIK8h+J0.net
同じ
初期のころ他言語からの移行者向けに色々書き方用意した名残だと思うが
<>は化石なので!=を使ったほうがいいと思う
187:181
21/06/01 00:03:33.59 ClFiADUo0.net
>>182
そうなんですね
ありがとうございました
188:デフォルトの名無しさん
21/06/01 10:10:46.69 nq6MHaxc0.net
>>181
!= や <> は型変換するから
!== を使おう
JavaScriptでも一緒
189:181
21/06/01 17:21:43.11 ClFiADUo0.net
>>184
ありがとうございます
本にもそう書いてありました
190:デフォルトの名無しさん
21/06/01 17:49:07.02 M9c5R8jt0.net
何でもかんでも===等で書くやつはそれはそれでどうかと思う
191:デフォルトの名無しさん
21/06/01 20:28:48.38 8+a6jCev0.net
tlintってあるんですね
使ったことありますか?
192:デフォルトの名無しさん
21/06/03 11:58:08.78 8LmW0nkV0.net
宜しくお願いします
↓の分の最後の?が何でしょうか、ワイルドカードの仲間でしょうか
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文字以内で入力してください';
}
193:デフォルトの名無しさん
21/06/03 12:15:29.93 Ers5yK+g0.net
? は、place holder。
それを使わないと、SQL インジェクションされるから危険
例えば、文字列を連結させて、クエリー文を作っていると、
「1=1 or テーブル削除文」みたいに、関係のない文も入れてくる
?を使うと、そういう危険な文をエラーにしてくれる
194:デフォルトの名無しさん
21/06/03 12:19:52.18 8LmW0nkV0.net
>>189
ありがとうございます、勉強になりました
URLリンク(i.imgur.com)
195:デフォルトの名無しさん
21/06/03 12:36:41.22 RiqJ4UERd.net
広瀬アリスに脳内変換
196:デフォルトの名無しさん
21/06/03 14:16:36.33 BVnHspSa0.net
谷間にインジェクションしてみたい
197:デフォルトの名無しさん
21/06/03 19:15:26.61 7uOjplBO0.net
>>186
著名なプロジェクトの大半で、「ゆるい比較はなるべく使うな」ってのがコーディング規約になってるけどねぇ
198:デフォルトの名無しさん
21/06/03 20:52:43.43 vjm2kGYb0.net
ワイの会社では緩比較を使う理由をコメントに入れておけば許すことにしてる
199:デフォルトの名無しさん
21/06/03 21:39:16.89 x016GdXu0.net
>>194
コメント必須なら間違いは起きにくいかもね
200:デフォルトの名無しさん
21/06/03 22:52:44.29 BVnHspSa0.net
コメントには、自分の名前と電話番号も入れておこう
201:デフォルトの名無しさん
21/06/04 15:59:37.32 KWGLQaPU0.net
preg_match関数は、エラーの時にnullを返すことってあるのでしょうか?
本にそのように書いてありました…
PHPマニュアルによると、原則としてエラーの時はfalseを返すが、
時にfalse相当の別の値を返すこともありうると書いてありました
202:デフォルトの名無しさん
21/06/04 16:31:57.79 cYS3aqAu0.net
マッチしたら 1
しなかったら 0
エラーの場合 false
エラーかどうかを判定するために
if (!preg_match(...))
なんてことをするとエラーじゃないがマッチしない場合も正として評価されると言うことかと
nullの話は本が間違ってるか、または第三引数に入ってくる値のことかも
203:デフォルトの名無しさん
21/06/04 17:08:28.21 9DhQUJf30.net
$_POST['checked'] === 'true'
$_POST['checked'] === '1'
$_POST['checked'] == true
$_POST['checked'] == 1
$_POST['checked'] === 'on'
204:197
21/06/04 18:36:12.37 KWGLQaPU0.net
>>198
やはり誤植のようです
ありがとうございました
205:デフォルトの名無しさん
21/06/05 20:42:13.27 D2bNwRnn0.net
データベースに接続する時についてなんですが、
PDOオブジェクトをインスタンス化する際の第一引数(DSN)では、
文字コードを指定しなくても特に問題ないでしょうか?
本には、
$dbh = new PDO('mysql:host=localhost;dbname=sample_db', (以下略));
と書いてあります
206:デフォルトの名無しさん
21/06/05 21:06:16.71 WZ+0wJ8c0.net
>>201
サーバとクライアントの間で適切な文字コードを設定しないと意図しない挙動を引き起こすことがある
結果として、SQLインジェクションができる場合も
`SET NAMES utf8`とかやるのはダメな例
207:デフォルトの名無しさん
21/06/05 23:32:10.29 aCDMde3X0.net
初歩的な質問ですいません。
WordPressである変数の値をリンク先の別のファイルでも使いたいのですが、うまく取得できません。どういうキーワードでググったらいいのか教えて下さい。一番簡単な方法がいいです。よろしくお願いします。
208:201
21/06/06 00:10:06.42 OZUQa5NH0.net
>>202
回答ありがとうございます
… new PDO('mysql:host=localhost;dbname=sample_db;charset=utf8mb4', …);
とした方がいいですか?
209:デフォルトの名無しさん
21/06/07 07:09:31.45 dVU4kGZr0.net
URLリンク(www.php.net)
210:デフォルトの名無しさん
21/06/08 12:31:49.08 kOEZc78Z0.net
さくらインターネットサーバー契約してターミナルで繋いでVimでプログラミングしているんですが
vscodeとかでプログラミングするにはどういうふうな開発環境を整えたらいいんでしょうか
211:デフォルトの名無しさん
21/06/08 12:50:39.53 RYeCuNYXd.net
mysqli_fetch_assocの質問なのですが"もう存在しない"場合はnullを返す、との事ですが"始めから一行も存在しない"場合でもやはりnullを返すのでしょうか?
自分で試せればいいのですがdbの設計はまだ手をつけてない分野ですのでお聞きしたいです
212:デフォルトの名無しさん
21/06/08 13:35:59.66 xmLRsmnH0.net
手につけてから実際に自分で試したほうがいいよ
213:デフォルトの名無しさん
21/06/08 14:09:30.31 IVQVhItT0.net
>>206
拡張機能からSFTP入れてみてはどうか
214:デフォルトの名無しさん
21/06/08 14:11:40.84 dOMi6vvz0.net
>>206
YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、
Ruby on Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース
Docker Composeまでが初心者用コース
普通はMac で、メモリは32GB以上。
ただし、新しいCPU に変わったから、よくわからない
Windows 10 Pro版, WSL2, Linux, Dockerなら、
メモリは16GB以上で、32GBが推奨
Dockerを使うから、メモリ8GBじゃ足らない
Udemy の山浦清透も、サロンをやってるかも知れない。
PHP の本も出してる、たにぐちまことも有名
215:デフォルトの名無しさん
21/06/08 16:10:19.02 kOEZc78Z0.net
直接本番のphpプログラムをいじってるのが良くないんだな
デプロイとか本番用と開発用の環境作るとかが必要なんやな
216:デフォルトの名無しさん
21/06/08 16:49:06.81 az/B2squ0.net
>>206
URLリンク(code.visualstudio.com)
マケプレから自分にとって最適な拡張機能を入手出来るかはわからないが
vim使いならうまくカスタマイズ出来るじゃろう
217:210
21/06/08 16:50:43.18 dOMi6vvz0.net
Ruby on Rails で良ければ、Docker, CircleCI まで含めた動画ある
Udemy の山浦清透、1/15
Docker超入門講座 合併版 | ゼロから実践する4時間のフルコース
URLリンク(www.youtube.com)
Windows 10 Home版, WSL2, Ubuntu 20.04 LTS,
Docker Compose, VSCode, Heroku, Rails, Git, CI/CD, CircleCI
218:デフォルトの名無しさん
21/06/08 16:56:20.73 6XJLy+sH0.net
NG多すぎワロタ
219:デフォルトの名無しさん
21/06/09 01:40:41.45 6+3NO6mw0.net
xamppよりもdockerの方がナウいんでしょうか
220:デフォルトの名無しさん
21/06/09 09:00:49.39 m05KcYPg0.net
個人でwebアプリ作るなら、PHP+フレームワーク一択?
221:デフォルトの名無しさん
21/06/09 09:32:05.11 ELCmA1Vb0.net
全然一択じゃないと思うけど、なんで一択だと思ったんだ
222:デフォルトの名無しさん
21/06/09 09:38:24.10 m05KcYPg0.net
>>217
単純に小さいWEBアプリをレンタルサーバで公開するのにいいと思ったから
あと、スマホアプリのwebapiをphpで作ってもらった
223:デフォルトの名無しさん
21/06/09 10:54:30.09 CSG59Cdu0.net
>>210,213
業者さん宣伝ご苦労さまです
224:デフォルトの名無しさん
21/06/09 14:07:19.93 suiQmlXU0.net
Zend→CakePHP→Laravelに代わったように、
フレームワークの移り変わりが一定周期でありますが、
その時に作っていたプログラムはどうなりますか?
なかったことにして、新しいFWで作り直すんですか?
車輪の再発明をFWが出るたびに行っているように感じますが
皆さんはどうしてるか気になります。
225:デフォルトの名無しさん
21/06/09 15:37:02.08 cnjxdL8Kr.net
作りっぱなしでほっとくんだよ
改修が必要であれば金貰って改修する
ただし責任は取らない
226:210
21/06/09 15:53:02.92 w6w52mg40.net
>>216
以下のスレに書いた
ぶっちゃけ始めるのにいい言語て何 part5
スレリンク(tech板:120番)-121
Udemy の山浦清透も、PHP・Laravel のおすすめ本は無いと言ってる。
一方、Rails なら、Railsチュートリアル、黒田努の本とか、教育体制が優れている
だから、KENTA も、Railsを推奨してる
優れた教育体制が無いと、効率的に勉強できない。
ドラゴン桜・予備校などと同じ
227:デフォルトの名無しさん
21/06/09 17:17:08.00 mTab7dlX0.net
こいつの相手すると怒られるけど
PHPのおすすめ本はある
228:デフォルトの名無しさん
21/06/09 19:23:26.26 Dz8whFwwa.net
>>223
相手するなよ、と脊髄反射しそうになったけど
キチガイの間違いを正すのは大切だな
229:デフォルトの名無しさん
21/06/09 20:39:22.17 CBbl/boe0.net
>>2を読めないアホが多すぎる
230:デフォルトの名無しさん
21/06/09 20:45:44.78 7MnLem3f0.net
自前でサーバー立てるのとさくらインターネット使うのとAWSとherokuでどれがいんすか
231:デフォルトの名無しさん
21/06/09 22:24:36.07 Qysgy0Bo0.net
学習用なら自分で立ててみると良いかも
232:デフォルトの名無しさん
21/06/09 22:37:04.95 DL0JuXZOM.net
今は金かからないFaaSだな
233:デフォルトの名無しさん
21/06/10 07:13:04.52 q2jU2qVx0.net
PHPで掲示板サイト作ったんだけどアドセンス落ちた…一応ある程度の書き込みもあるのになんでだろ、ちなみに低俗な内容ではない、もっと人集めんと行かんのかね
234:デフォルトの名無しさん
21/06/10 11:39:40.93 oO6awXFS0.net
セキュリティーが危険とか?
PHP と言えば、セキュリティーが危ないイメージ
235:デフォルトの名無しさん
21/06/10 11:51:36.67 wZ1zl+ZN0.net
>>226
今どき自宅サーバなんかしなくていいよw
月額500円未満で借りられるVPSがあるから、それ使うのがお勧め
レンタルサーバを使うのだけはやめとけ
あんなもん使っても何の勉強にもならんから
236:デフォルトの名無しさん
21/06/10 11:52:35.88 wZ1zl+ZN0.net
>>230
頭悪そう
PHPのコード書けない人でしょ?
237:デフォルトの名無しさん
21/06/10 11:54:42.25 wZ1zl+ZN0.net
あーなんだ、こいつRubyガイジかw
相手にしてスマン
238:デフォルトの名無しさん
21/06/10 13:26:11.53 MBvszo0r0.net
PHPの勉強がしたい→ローカル
店の宣伝をしたい→レンタルサーバ~
店の予約管理をしたい・小規模な販売、売上管理をしたい→VPS~
Webサービスを提供したい・スマホアプリのバックエンド→クラウド
239:デフォルトの名無しさん
21/06/10 16:59:07.23 rgwU/HuH0.net
以下PHPの2処理があります。
1.CSVアップロードフォームからユーザー操作でアップロードされる
場合によっては同一ファイルを更新する目的でアップロードされるときもある
move_uploaded_fileを使用
2.何かしらのトリガーでCSVを読み込んで処理する(書き込みはしない)
この1.2.の処理は何かの決まりを守って順番に実行されるわけではなく、
1.の処理はユーザー操作で不定期に実行されます。
2.の処理は該当ファイルが無ければ実行しませんし、トリガー発行がなければやはり実行しません。
ここで質問ですが、1.2.の処理が同時に実行される可能性があると思いますが、この場合問題が発生するでしょうか?
move_uploaded_fileを使う1.の処理中はファイルがロックされているようですが、2.では読み取りエラーの
処理を強化するだけでいいでしょうか?
よろしくお願いします。
240:デフォルトの名無しさん
21/06/10 18:19:10.45 kFRSwea40.net
DBUnitがとうの昔に使えなくなっていたことにようやく気付いたのだけど、
これ使わないでDB周りのテストってどうやるん?
241:デフォルトの名無しさん
21/06/10 18:19:50.44 9KIBsohX0.net
>>220ですが、結局は新しいフレームワーク使う時は
車輪の再発明になろうが一から作り直すってことでいいですか?
242:デフォルトの名無しさん
21/06/10 19:13:16.05 MBvszo0r0.net
同じシステムをフレームワーク変えてまで作り直したりは普通しない
>>221も言ってるけど基本作ったら作りっぱなし
セキュリティに問題があって修正パッチ当てる必要があるとかでない限り
保守は必要最低限にとどめたものになる
243:デフォルトの名無しさん
21/06/10 21:30:19.86 9KIBsohX0.net
>>238
いえ、過去に作ったものの保守ではなく、これから作るものについてです。
例えば、お問い合せフォームとか会員管理とか
どの言語・フレームワーク使おうが必要な機能ってあります
244:よね? そういうライブラリであったりプラグインであったりを、 フレームワーク毎にまた作るのか?って質問です。
245:デフォルトの名無しさん
21/06/11 05:41:30.60 eoxxjzbN0.net
テンプレート(view)の変数名を変える作業を車輪の再発明とは言わない
246:デフォルトの名無しさん
21/06/11 10:24:02.71 llLxlLmn0.net
フレームワーク変えるわけですから
変数変える程度で済まないのではないかと
247:デフォルトの名無しさん
21/06/11 11:26:58.50 obuHWxLk0.net
気づけばプロ並みPHPはゴミ
徳丸先生協力って書いてあったから一緒に本作ったのかと思ったら大間違いw
248:デフォルトの名無しさん
21/06/11 11:46:50.82 0v+h5w7s0.net
俺もアマゾンレビューでの評価が高かったいきなりはじめるPHPを買ったが、
なんか合わなかった 本のノリが嫌い
載っている情報も古い
エディタはテラパッドを使っているし、echoでなくprintを使っている
249:デフォルトの名無しさん
21/06/11 12:02:16.66 +ogjkljv0.net
お昼時にゴメンナサイ、よろしくお願いいたします
PHPのバージョンを 5.6.40 から 7.3.27 に上げたら↓がエラーするようになりました
【PHP文】
ループ
$hage[$id][0]=$row[name];
$hage[$id][1]=$row[age];
$id++;
ループ終わり
【エラーメッセージ】
arse error: syntax error, unexpected ',', expecting ']' in /home/xxxx
250:デフォルトの名無しさん
21/06/11 12:21:06.82 1TMBp1KK0.net
>>244
nameとageをクオーテーションで囲う
251:デフォルトの名無しさん
21/06/11 13:39:01.07 eoxxjzbN0.net
>>241
そんな大げさな話じゃないだろう
書き方が違うだけでやることは同じなんだから
やろうと思えば自分でマイグレーション用スクリプトだって書けるでしょ
252:デフォルトの名無しさん
21/06/11 13:48:23.23 +ogjkljv0.net
>>245
ありがとうございます!
253:デフォルトの名無しさん
21/06/11 14:56:36.56 Nrr2zqrZr.net
いえいえ
254:デフォルトの名無しさん
21/06/11 15:52:24.78 2+S4K7N30.net
>>235
同期用ファイルでも作って、
それを2つの処理で、mutex みたいに使って排他処理すれば?
mutexは1つだけあって、2つの処理の内、mutexを獲得できるのは、常に1つの処理だけ
255:デフォルトの名無しさん
21/06/11 18:38:14.01 llLxlLmn0.net
>>246
マイグレーションにしても、CakeとLaravelで大きく違うし、
CRUDの書き方も違うのに、変数変える程度で済むとは意外です。
というか、変換プログラムみたいなのを作るなら
車輪の再発明と言っても良いんじゃないですか?
256:デフォルトの名無しさん
21/06/11 20:47:03.14 jsMTDkupM.net
自分で作ってたものをFWに合わせて作りなおすってのはただの改良
PHPのバージョンアップに合わせて動かなくなったコードを書き直すのと全く同じこと
ていうか車輪の再発明が嫌そうなのに自分で作る前提がそもそもおかしいのでは
探せばあるでしょうに
257:デフォルトの名無しさん
21/06/11 21:23:49.98 llLxlLmn0.net
いえ、嫌かどうかじゃなくて、みなさんはどうしてるのか気になるのです。
PHPのバージョンが変わるから書き換えるのと、
フレームワークが変わるから作り直すのでは明らかに手間が違うわけで、
同じような作業をまたやるという行為が、プログラマとして正しいのか知りたいだけです。
258:デフォルトの名無しさん
21/06/11 21:30:08.39 kzDclVsl0.net
下らねぇ質問をここに書き込みやがって
259:デフォルトの名無しさん
21/06/11 22:20:07.19 jsMTDkupM.net
手間の問題じゃなくて
そうしないと動かないからそうするという話であって
それを車輪の再発明とは言わない
移行先で前のものがそのまま使えるような場合もあるだろうけど
そうでない場合は使えないのだから作り直すのは当たり前
260:デフォルトの名無しさん
21/06/11 22:39:30.70 llLxlLmn0.net
わかりました。つまり、作り直すのが一般的(普通)という受け取り方で良いわけですね。
自分もそうなので、他の人はどうしているか気になりましたが
別におかしなことではないと知って安心しました。
261:デフォルトの名無しさん
21/06/12 20:17:18.78 S66YQD530.net
wordpressのogpに関する出力ですが
$ogp_type = ( is_front_page() || is_home() ) ? 'website' : 'article';
フロントページやホームでなければ○○だと思うのですが
「?」が何をしているかわからないのと、
2つの文字列がコロンで繋がれているのがわかりません。
動かして見ると articleが出力されています。
262:デフォルトの名無しさん
21/06/12 21:08:16.54 S66YQD530.net
わかりました。
三項演算子というものですね、生まれて始めて見ました。
263:デフォルトの名無しさん
21/06/12 21:33:24.33 GDzf8H390.net
三項演算子は見慣れないと読みづらいけど別にPHP固有でもないし、
早めに慣れておくのが吉
264:デフォルトの名無しさん
21/06/13 02:08:44.02 bl7tXQVC0.net
if使った方が感覚的にわかりやすいのですが、
あえて三項演算子を使う理由は1行で済む以外にメリットはありますか?
265:デフォルトの名無しさん
21/06/13 03:13:44.77 oPgmrpm20.net
const HOST = 'localhost';
echo $HOST;
自学の為一纏めにしたいのですが上記のソースですとHOSTにnoticeが出てしまいます
調べたのですがconstを使う方法が乗ってるサイトにこれ以上の情報が無かったのでお聞きしたいです
266:デフォルトの名無しさん
21/06/13 03:26:48.32 NFGlH9a70.net
>>259
ちょっと慣れれば、シンプルなケースでは三項演算子も感覚的にif文より見やすくて分かりやすくなる。
ケースバイケース。
267:デフォルトの名無しさん
21/06/13 05:09:07.64 bl7tXQVC0.net
>>261
ありがとうございます。
やはり慣れですね
268:デフォルトの名無しさん
21/06/13 05:11:59.73 er0CkKAQ0.net
>>259
その「一行で済む」ってのが最大のメリットだろうね
for(;@$i++<100;)echo$i%3?!$$i=$i:@Fizz,$i%5?@$$i:@Buzz,'
';
みたいに書ける
これは8系じゃ動かないけどw
>>260
変なサイト見てないでマニュアル嫁
URLリンク(www.php.net)
ただ、やりたいことと違うんじゃないかなぁ
269:デフォルトの名無しさん
21/06/13 05:14:07.02 er0CkKAQ0.net
げ、なんか余計な改行が入ってるw
270:デフォルトの名無しさん
21/06/13 06:09:18.51 d/vYrCOI0.net
5ch のバグ。
URL などを投稿すると、; が付いたりする
5chの書き込みには、表示を変えるような特殊な命令があったりして、
それを解析する箇所に、バグがあるのだろう
271:デフォルトの名無しさん
21/06/13 12:08:56.26 h3r9Ktq+0.net
三項演算子は条件次第で$varが変化するような場合には使っていいけど
それ以外のことやelseifが入る場合は使わないほうがいい
改行駆使して読みやすくする手法もあるがそんなことするなら普通にかけばいいし
読みづらいコードは保守の妨げになったりバグうむ原因になる
272:デフォルトの名無しさん
21/06/13 14:06:10.67 V1lM1Rfw0.net
教えてください。
<?php
print("接続開始");
pg_connect("user=pet930 password=h17174422");
# if($dbconn == false){
# print("<p>接続失敗</p>");
#
# }
print("<html><p>接続成功</p></html>");
?>
なんか、pg_connect()で止まっちゃってるみたいで、「接続成功」の表示まで行けません。
pg_connect()でエラーメッセージ吐いてくれないんで原因が解らないです。
何処が悪いとエスパーできますか?
よろしくお願いします。
273:デフォルトの名無しさん
21/06/13 14:10:31.45 ikXPzBM50.net
>>267
$dbconn = pg_connect("user=pet930 password=h17174422");
274:267
21/06/13 14:26:02.54 V1lM1Rfw0.net
>>268
ありがとです。
ちょっと試します。
275:デフォルトの名無しさん
21/06/13 14:26:08.18 h3r9Ktq+0.net
pgsql使ったことないからわからないけど
host port dbnameまでパラメーターちゃんと入れてみたら?
あとPHPの設定やバージョンがどうなのかわからんけど
error_reporting(E_ALL);を先頭に追加してエラーメッセージ出るようになるかどうか確認する
本当にpg_connectが原因なのか判断するには
pg_connect(略) or die("接続失敗");に変えるのがてっとり早いと思うけど
276:267
21/06/13 14:34:36.14 V1lM1Rfw0.net
>>270
PHPのバージョンは807です。
ありがとです。
ちょっと試してみます。
277:267
21/06/13 14:51:02.33 V1lM1Rfw0.net
>>270
設定を調べてみます。
でも、かなり勉強になりました、エラー設定とかDieとか知りませんでした。
5chにコード書き込めないみたいですが、pg_connect()以降は表示されなかったです。
設定関係調べてきます。
278:267
21/06/13 16:36:28.97 V1lM1Rfw0.net
phpinfo()でpostgresqlのセクションがありませんでした。
正常ならセクションが有るらしいので、調べてみます。
情報が豊富なphp7系にするべきかなぁ;
279:デフォルトの名無しさん
21/06/13 17:12:59.44 h3r9Ktq+0.net
URLリンク(www.php.net)
ソースからなら上記みたいにインストールが必要かもしれないし
なんかのパッケージ使ってるならphp.iniに
;extension=pgsql
っていうラインがあれば先頭の;取り払ってみるだけで使えるかもしれない
将来pdoも使うだろうからついでに
;extension=pdo_pgsql
も有効にしといたほうがいいかもね
280:267
21/06/13 17:31:29.77 V1lM1Rfw0.net
>>274
ありがとうございます!!
リンク先読みました。
Apacheのhpd.confに、LoadFile "C:\Program Files\PostgreSQL\13\bin\libpq.dll"を書き足してphpinfo()に、postgresql反映されました。
助かりましたorz
281:267
21/06/13 17:33:44.93 V1lM1Rfw0.net
>>274
pg_connect()も、無事動いて、想定どうりスクリプトが動きました。
お世話になりました~
282:デフォルトの名無しさん
21/06/13 21:34:10.90 JupjNNoP0.net
どうでもいいけどPDO使えよ
283:267
21/06/14 02:37:29.72 926agaQr0.net
>>277
手探りでPDO認識できました。
今はPDOで書くべきですよね。ありがとです。
284:267
21/06/16 15:53:30.79 +Q5Hm82n0.net
何度も失礼します!
iframe先にPOTしたいのですが、飛ばせてないみたいです。
検索したら、これで動くのが一般的みたいですが…
<iframe src="URLリンク(localhost) id="frame_1"></iframe>
<form method="post" target="frame_1" action="URLリンク(localhost) id="edit_form">
<input type="hidden" name="id" value="3">
<input type="button" value="追記">
</form>
frame.phpには、
sleep("2");
print("page2_post".$_POST["id"]);
と、書いて待っているのですが、ボタンを押してもifram側に何もしていない様子です。
検索先を何度も調べたのですが…
よろしくお願いしますorz
285:デフォルトの名無しさん
21/06/16 16:26:27.31 ipoppQf40.net
>>279
id="frame_1" > name="frame_1"
余談だがsleepの引数はintだから " いらない
286:267
21/06/16 16:33:45.31 +Q5Hm82n0.net
>>280
ありがとうございます!
しかし、修正しましたが、動きませんでした…
アパッチの設定見てきます。
>引数はintだから”要らない
ありがとです。
287:267
21/06/16 17:15:07.61 +Q5Hm82n0.net
すいませんでした。
<input type="button" …> のbuttonをsubmitに変更したら動きました!
ありがとうございました!
288:デフォルトの名無しさん
21/06/16 17:55:12.30 u+PEF3EC0.net
データベースを扱う際の例外処理で、本に、
…
} catch (PDOException $e) {
echo "エラー:" . htmlspecialchars($e->getMessage(), …) . "<br>";
exit;
} // 一部改変
とあったのですが、$e->getMessage()を無害化する必要性がよく分かりません
ここはPHP製作者の側で用意した文字列が表示されるのではないでしょうか?
289:デフォルトの名無しさん
21/06/16 18:39:41.81 o6SqvTfC0.net
>>283
そうだよ、無害化する意味ない。
さらに言うと、エンドユーザーにシステムがそのまま出力するメッセージを見せるとかありえないから、あくまで開発者向けのデバッグ用という意図で書かれているんだろうけど、それを無害化する意味も分からない。
290:デフォルトの名無しさん
21/06/16 18:54:22.90 KT0G0U9/0.net
>>283
メッセージの内容によっては外部入力が表示される可能性があるので、htmlspecialchars でエスケープすることは必要
ただし、そもそも出力するの?ってところは、ちゃんと考える必要がある
291:283
21/06/16 19:03:06.47 u+PEF3EC0.net
>>284
>>285
回答ありがとうございます
>>284
>あくまで開発者向けのデバッグ用という意図で書かれているんだろうけど
はい、そのように書かれています 本番ではこの部分は削除しろと
>>285
上に書いたように、本番環境では削除すると思います
外部入力が表示されるのって、例えばどういう場合でしょうか?
292:デフォルトの名無しさん
21/06/16 19:09:18.05 KT0G0U9/0.net
>>286
ごめん。出力って言ってるのはブラウザ出力ね
logに出すのが適当だと思うので、その場合はエスケープの必要はもちろん無い
293:デフォルトの名無しさん
21/06/16 19:10:45.60 KT0G0U9/0.net
>>286
ユーザ入力を含むSQLが部分的に表示されることはよくある
294:283
21/06/16 19:37:48.13 u+PEF3EC0.net
>>287
>>288
分かりました
少しでも外部入力が反映される可能性があったら必ずエスケープなんですね~
ありがとうございました
295:デフォルトの名無しさん
21/06/16 20:05:44.54 euAZBJmN0.net
少しずつしゃべりたいことが違う優しい人が集まることで、
最終的に>>283が狂った理解をしてしまった例。
296:283
21/06/16 22:32:15.88 u+PEF3EC0.net
>>290
あっ、狂った理解なんかしてないんで
本当そういうレス大丈夫なんで
297:デフォルトの名無しさん
21/06/16 22:59:39.75 tS8D2T4IH.net
たぶん間違って理解してるよ。いろいろと。
発達障害って言われてるでしょ。
298:デフォルトの名無しさん
21/06/16 23:23:35.20 IAoK90gxM.net
わざわざVPN刺してまで煽るのはダサいだろ
299:デフォルトの名無しさん
21/06/17 00:02:50.73 seNEbGFQ0.net
>>283=Brというマ板に巣食っていた荒らしが正体隠して名無しで書きこんでいる
300:デフォルトの名無しさん
21/06/17 10:58:21.11 mta/I3G30.net
よろしくお願いします
PHP+Mysqlのサイトで会員ページへのログイン管理をセッションIDでやっていたのですが、ログイン後のURLの「ID=1234」を書き換えれば別の会員ページが見えてしまいます
そこでログイン後にセッション開放をしたのですが、今度は会員ページを見るたびにID&パスワードを入力する必要があり窮屈です
今後の改善策として↓どれがオススメですか?
【パターン1】
・パラメーターを非表示にする(できな?)
【パターン2】
・cookieにセッションIDを保存
【パターン3】
・その他
301:デフォルトの名無しさん
21/06/17 11:11:01.66 ywtXDFpr0.net
>>295
【パターン3】
ちゃんとsessionの仕組みを学習する
多分、根本から認識が間違っている
302:デフォルトの名無しさん
21/06/17 12:12:31.57 8B6FG2Oh0.net
パラメーターを非表示にするっていうかセッション使ってるのにURLに入れたりしない
cookieにセッションIDを保存ってPHPのセッションを設定いじらず普通に使ってれば最初からそういう風になってる
んまー>>296の通りね
303:295
21/06/17 12:26:05.33 mta/I3G30.net
>>296
>>297
セッションを使ってるのにURLのパラメーターなんていらないですね、失礼しました
304:デフォルトの名無しさん
21/06/17 12:52:01.77 r4gx4cxd0.net
>>298
いやそうではなく、296も書いてる通り根本的にセッションに対する認識が間違ってる
セッション自体は、クッキーでもURLパラメータでもどっちでも扱える
URLのパラメータを書き換えられるのと同様に、クッキーの中身もユーザーが任意で書き換えられるのだから、
> ログイン後のURLの「ID=1234」を書き換えれば別の会員ページが見えてしまいます
のであれば、根本的に作り方がおかしい
理解してないととんでもない事になるぞw
305:295
21/06/17 13:00:10.33 mta/I3G30.net
>>299
セッションID漏洩 で検索すると沢山ヒットしますね
気を付けます
306:デフォルトの名無しさん
21/06/17 17:28:03.44 PjL3bf8Xd.net
PHPをダウンロードしたいんですがfor windowsのページが接続できません。
Windowsサポートが終了するからなくなったんでしょうか?
307:デフォルトの名無しさん
21/06/17 17:38:01.05 8B6FG2Oh0.net
URLリンク(windows.php.net)
308:267
21/06/20 10:33:06.70 /i2MBFyI0.net
度々失礼します。
クラスにどんな名前をつけても、クラス名が重複している種のエラーが出てしまいます。
>Cannot declare class file_test\unkotinntin, because the name is already
namespaceを設定してみても変わらないのですが、どうしたら良いのか。
よろしくお願いします。
309:デフォルトの名無しさん
21/06/20 10:53:32.03 jJNaRRH60.net
例のクラス名がキモいから教えない
310:267
21/06/20 11:28:47.28 /i2MBFyI0.net
>>304
絶対重複しないとキレたのが仇に…
変えます!
311:303
21/06/20 11:32:00.12 /i2MBFyI0.net
>Fatal error: Cannot declare class file_test\Onsensyoujo, because the name is already
ダメ元で変えてみましたが、やっぱりダメでした…
312:303
21/06/20 13:06:22.04 /i2MBFyI0.net
すいませんでした。
解決しそうです
ファイル読み込みを
index.php ← vm_test.php
↑
file_test.php ↑
って具合にしてしまいました。
vmからfileの読み込みを止めれば大丈夫みたいです。orz
313:デフォルトの名無しさん
21/06/20 21:16:43.53 o0JpQNTP0.net
ファイル名から漂う50~60代親父臭w
314:デフォルトの名無しさん
21/06/21 10:19:19.23 XA/RA/DU0.net
そのようなことをしてもRubyがPHPにとって変わることなど有り得ませんよ
315:303
21/06/21 17:15:02.17 OP2qNzHy0.net
>>308
こんなところで歳バレするとはw
316:デフォルトの名無しさん
21/06/21 18:23:29.70 FywLx0usM.net
自分の親よりも上の人間がロリアダルトゲー好きなんて気持ち悪い
317:デフォルトの名無しさん
21/06/21 19:11:01.41 jHz8GYW10.net
川端康成は毛も生えていない少女を夜通し抱くというテーマで堂々と小説書いてるぞ
318:デフォルトの名無しさん
21/06/21 19:27:28.24 l4HWWBDBM.net
教科書に載るような有能な人は良いと思うの(ダブルスタンダード)
319:デフォルトの名無しさん
21/06/21 22:24:48.02 hHdGCfUDr.net
1記事につき1つずつ最新のコメントを5つ表示させたいのですが、同じ記事の最新コメントがダブって表示されます。
1記事につき1つずつの条件をついかする場合どうすればよいのでしょうか?
調べたのですが、わかりませんでした。
URLリンク(codepen.io)
該当のphpはこちらです。
320:デフォルトの名無しさん
21/06/21 22:33:54.76 hHdGCfUDr.net
記事にIDをつけてその特定の記事から最新コメントを5件取得する方法はあったのですが、
全部の記事から最新5件 各記事から1つ限定で取得する方法がわからなかったのですが。
321:デフォルトの名無しさん
21/06/24 02:55:14.60 x4SNvOJV0.net
とあるページを作っていて指定されたIDの情報をDBから引っ張ってきたいのですが動きません1つ1つ検証していって恐らくここに原因がある事は突き止めたんですが何が間違ってるのかが分かりません、、、ご教授お願いしたいです
"SELECT id,name,age,ext
FROM sample
WHERE id = " . $id . "");
322:デフォルトの名無しさん
21/06/24 05:30:14.28 C8/wW34i0.net
最後の)はなんだ
323:デフォルトの名無しさん
21/06/24 05:32:11.16 C8/wW34i0.net
よく見たら色々PHPの構文おかしいじゃん
"SELECT id,name,age,ext
FROM sample
WHERE id = {$id}";
とかな
324:デフォルトの名無しさん
21/06/24 05:51:33.19 vba9W5AC0.net
>>316
文字列の結合でSQL書いてる時点で俺的にはNG
325:デフォルトの名無しさん
21/06/24 07:54:52.48 gi8rGvX70.net
PDOでプリペアドステートメントを使うべき
326:デフォルトの名無しさん
21/06/24 10:13:01.81 x4SNvOJV0.net
>>317
すいません、mysqli_queryの()の後ろの方が入り込んでしまいました
>>319
無知で申し訳ないのですがどのような方法を取るのがベストなのでしょうか?
327:デフォルトの名無しさん
21/06/24 10:19:49.86 yb980iZA0.net
>>316
319も指摘しているけど、こんな事をやってるからSQLインジェクションが起こる
「PDO プリペアドステートメント」でググろう
ついでに「SQLインジェクション」についても勉強しとこう
328:デフォルトの名無しさん
21/06/24 13:13:48.62 9gt/PvAhr.net
>>321
その関数は大昔に非推奨なんすけど
329:デフォルトの名無しさん
21/06/24 13:51:49.13 vba9W5AC0.net
>>321
PDOに限定する必要はないけど、PDOならこんな感じ
URLリンク(www.php.net)
>>323
そんなことはない。多分、mysql_queryと勘違いしている
330:デフォルトの名無しさん
21/06/24 14:30:59.72 C8/wW34i0.net
本なんかを見ながらやってるなら
そのうちプリペアドステートメントは出てくるし余計なお世話かなと思って書かなかったけど
$idが適切な処理をされてるなら
無理してプリペアドステートメントを使う必要はない
331:デフォルトの名無しさん
21/06/24 15:35:30.79 x4SNvOJV0.net
皆さんありがとうございます
購入した教材の通りに進めていて練習問題の所で詰まっていたのですがもう少し色々な方面から勉強します…
332:デフォルトの名無しさん
21/06/24 18:17:53.25 C8/wW34i0.net
ま、一番の問題は
エラー出てるならそれを書いてくれないと答えようがないってことだね
333:デフォルトの名無しさん
21/06/24 18:41:28.99 C9HpnekB0.net
SQLインジェクションはほぼ阻止できる、
文字列をいちいち引用符で囲む必要ないから文法エラーも激減、
SQL構文の解析が減るのでオーバーヘッドも減少と、
プリペアドステートメントを使わない言い訳をするほうが難しい
334:デフォルトの名無しさん
21/06/24 19:46:17.63 yb980iZA0.net
>>328
だなー
335:デフォルトの名無しさん
21/06/25 13:44:54.61 7ZVx0ICKM.net
<dt class="imgcomment"><a class="commentheight" href="<はてな= $url はてな>"><はてな= $imgはてな></a></dt>
画像の高さをCSSで指定できないのでphpに直接数値を入れたいのですが、どうすればよいのでしょうか?
336:デフォルトの名無しさん
21/06/25 13:51:46.29 vlMp8RRH0.net
「html img 高さ」で検索!
337:デフォルトの名無しさん
21/06/25 14:16:21.80 bksxaaII0.net
.commentheight > img
338:デフォルトの名無しさん
21/06/25 14:34:44.43 7ZVx0ICKM.net
だめですわ効きません
wordpressの仕様でimg.attachment-post-thumbnail.size-post-thumbnail.wp-post-imageと勝手にクラスが付与されてます。
おそらくphp事態にクラスを付与してないため一色単にされてます。
339:デフォルトの名無しさん
21/06/25 17:17:32.55 Zp0CPETQr.net
$img = get_the_post_thumbnail($pid , array('class' => 'myClass'));
構文的におかしいかもしれませんがクラス指定できました。
URLリンク(memocarilog.info)
wordpressより独自クラスをつけ�
340:髟菇@より。
341:デフォルトの名無しさん
21/06/25 17:32:31.90 bksxaaII0.net
WordPressはWordpressスレでどうぞ
342:デフォルトの名無しさん
21/06/25 18:00:32.91 vlMp8RRH0.net
Word Press のスレは、web制作管理板にある
そこで聞いて
343:デフォルトの名無しさん
21/06/25 19:53:28.76 4lJT+uTla.net
>>336
そこで聞いてもPHPは教えてくれませんもん
344:336
21/06/25 21:20:33.11 vlMp8RRH0.net
この板には、Word Press を知ってる人は、いないかも
345:デフォルトの名無しさん
21/06/25 21:55:46.72 CTgcEISH0.net
curlでとってきたサイトの情報というのは何が含まれているんでしょうか?
rssリーダーを作成しているので、xmlが含まれるのは分かります。
それ以外にもいろんなデータが含まれているんですよね。
このオブジェクト?をなんと呼ぶのでしょうか?
<rdf:RDF
xmlns:rdf="URLリンク(www.w3.org)
xmlns="URLリンク(purl.org)
xmlns:content="URLリンク(purl.org)
xmlns:taxo="URLリンク(purl.org)
xmlns:dc="URLリンク(purl.org)
xmlns:syn="URLリンク(purl.org)
xmlns:admin="URLリンク(webns.net)
xmlns:atom="URLリンク(www.w3.org)
>
<channel rdf:about="URLリンク(blog.livedoor.jp)
<title>痛いニュ'... (length=47435)
346:デフォルトの名無しさん
21/06/25 22:20:07.37 d0XkQs1z0.net
string
って言ったら怒る?
347:デフォルトの名無しさん
21/06/25 22:48:34.89 BFPZ/KMm0.net
URLリンク(e-words.jp)
とか読めよw
この手の質問って昔からずっといるけど同一人物か?
348:デフォルトの名無しさん
21/06/26 05:49:15.18 I/0FJwDj0.net
スキーマじゃね
PHP全然関係ないけど
349:デフォルトの名無しさん
21/06/26 12:37:16.56 gNSotHtr0.net
>>341
rssフィードはurlオブジェクト?の一部ってことじゃないんですか?
350:デフォルトの名無しさん
21/06/26 13:10:59.38 6sjjJ5as0.net
Ruby なら、RSS 用のモジュールがある
URLリンク(docs.ruby-lang.org)
1. RSS 1.0をパースした場合は RSS::RDF オブジェクト
2. RSS 0.9x/2.0をパースした場合は RSS::Rss オブジェクト
3. Atom をパースした場合は RSS::Atom::Feed オブジェクト
3つの形式を抽象化して、同時に扱えるモジュールも、たぶん誰かが作っている
基本、こういうものを自分で作ってはいけない。
車輪の再発明は、低品質で、製作・保守コストが高いから、ダメ
351:デフォルトの名無しさん
21/06/26 13:18:13.21 eYiCTaZOM.net
PHPならdg/rss-phpパッケージだな
URLリンク(www.laddy.info)
352:デフォルトの名無しさん
21/06/26 19:41:08.02 76AEkw4Rr.net
phpって数年使ってなかったが8でだいぶ書き方変わったんだな
353:デフォルトの名無しさん
21/06/26 19:50:56.58 9XPJSE1uM.net
>>344
「車輪の再開発」は聞いたことある
354:デフォルトの名無しさん
21/06/27 08:11:30.48 X9FVTu1L0.net
3つのページから構成されているサイトを作成しているのですが、
スーパーグローバル変数$_POST['hoge']の内容をうまく送信できません
1つ目のページの入力フォームで受け取ったデータは、
2つ目のページで受け取り利用できるのですが、そのデータを3つ目のページに
うまく送信できません
<inpu type="hidden" name="hoge" value="$_POST['hoge']">
としましたがダメでした
どう対処したらよいでしょうか?
355:デフォルトの名無しさん
21/06/27 08:26:06.44 FX7uqy6OM.net
>>348
LaravelとかCodeIgnitor使ってるの?
356:デフォルトの名無しさん
21/06/27 10:26:55.16 ItQV7X9X0.net
feedを取ってくる場合、simplexmlとcurlのどちらがいいのでしょうか?
複数サイトになります。
357:デフォルトの名無しさん
21/06/27 11:50:32.87 r75U+hPN0.net
>>350
スレリンク(tech板:956番)
358:デフォルトの名無しさん
21/06/27 12:25:12.65 pjTb3Z/m0.net
>>348
html中に変数を埋め込む時は{}を使いましょうという基本的なことをやらないと
つうか最近エラー内容かかないの流行ってんか
359:デフォルトの名無しさん
21/06/27 12:46:28.79 ItQV7X9X0.net
>>351
curlは使わないのでしょうか?
複数サイトの場合はcurlのほうがいいと聞いたのです。
360:デフォルトの名無しさん
21/06/27 13:19:37.68 r75U+hPN0.net
>>353
curl使った所でどうせsimplexml_load_stringに食わせるんでしょ?
だったら最初からsimplexml_load_fileでいいじゃない
361:デフォルトの名無しさん
21/06/27 13:32:19.99 eeXftvTT0.net
複数サイトの場合はcurlがいいってのはcurlを子プロセスとして複数同時に動かせるからってことじゃないの?
いずれにしても、curlがやってくれるのはhtmlを取ってきてくれるまで、よ?
362:デフォルトの名無しさん
21/06/27 13:59:51.79 tkVDl+qA0.net
例えば、Ruby でも、普通に書くと、
open-uri モジュールのopen でファイルを取得する
require 'open-uri'
require 'nokogiri'
url = "URLリンク(example.com)
doc = Nokogiri::HTML( open( url ) )
elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain
これを、外部コマンドのcurl に書き換える事もできるが、
外部コマンド(プロセス)を呼ぶ必要がない
html = `curl URLリンク(example.com)
doc = Nokogiri::HTML( html )
外部コマンドは、OS に左右される
特に、Windows では、curl.exe なのか、
PowerShell のcurl(curlモドキ)なのか、
アプリごとに微妙に挙動が異なるかも
(そもそもシステムに、Windowsを使うこと自体が間違いだけど。
すべての言語は、Linux用だから)
363:デフォルトの名無しさん
21/06/27 14:45:24.55 ItQV7X9X0.net
>>354
simplexmlだと複数対応出来ないと思ってました。
なしでやってみるです
>>355
並列処理云々と聞きました。
詳しくは分かりませんが、、、。
364:348
21/06/27 14:55:13.19 X9FVTu1L0.net
>>349
>>352
回答ありがとうございます
>>349
使ってないです
>>352
失礼しました 3ページ目で、$_POST['hoge']、という文字列が表示されてしまいます
{}をつけて、<(略) value="{$_POST['hoge']}"としてみましたがダメでした(上と同様に文字列が表示されてしまいます)
365:デフォルトの名無しさん
21/06/27 15:50:44.18 r75U+hPN0.net
>>358
value="<?php echo $_POST['hoge']; ?>"
366:348
21/06/27 16:08:52.70 X9FVTu1L0.net
>>359
$_POST[]はphpのタグで囲わないといけないんですね
ありがとうございました
367:デフォルトの名無しさん
21/06/27 17:11:37.21 Cz2fHMTfd.net
ローカルホストで練習中にphpmyadminでSQLにWHERE文をつけ忘れupdateして全データが更新されてしまいました。
本番でやったら恐ろしい事だと思うんですが、ロールバックのやり方等あったら教えてもらえませんか。
一応ターミナルでログインしてROLLBACK;はしましたが戻らなかったです。
368:デフォルトの名無しさん
21/06/27 17:45:47.61 tkVDl+qA0.net
バックアップを取っておけば?
snap shot とか
369:デフォルトの名無しさん
21/06/27 18:37:11.40 Hik46M4e0.net
>>361
オートコミットきっとけば
370:デフォルトの名無しさん
21/06/27 18:39:50.32 pjTb3Z/m0.net
>>360
いやいや…
>>352はhtmlをechoしてるのかと思ってそう答えたんだけど
$_POST関係なくPHPの変数をHTMLテンプレートに書く時はそうなるよ
ショートタグも調べてみるといい
371:デフォルトの名無しさん
21/06/27 18:46:38.38 pjTb3Z/m0.net
>>361
ロールバックはトランザクション開始してないとできないから
begin(トランザクション開始)してから書いて
updateしたらselectで確認したのちに問題があればrollback
問題がなければcommitする
つうかphp関係ないで…
372:360
21/06/27 19:07:30.25 X9FVTu1L0.net
>>364
分かりました
何となくそんな気はしてました
ありがとうございました
373:デフォルトの名無しさん
21/06/27 19:55:35.97 Cz2fHMTfd.net
>>362,363,365
色々アドバイスありがとうございます。
全部試してみますね。トランザクションやオートコミット、snap shot等知らなかったので勉強になりました。
374:デフォルトの名無しさん
21/06/28 08:58:02.88 GRcsjrE80.net
>>357
たしかに curl_multi_init() で初期化してからの一連の流れで複数の通信を非同期実行できるから、
それを「使いこなせば」、直列的に複数のサイトからデータ取得するよりは圧倒的に速くはなる
使いこなせば…ね
375:デフォルトの名無しさん
21/06/28 12:05:36.38 SRAdQ7Kv0.net
>>368
どうも
とりあえずsimplexmlでやるdeath
376:デフォルトの名無しさん
21/06/28 12:30:55.32 SRAdQ7Kv0.net
simplexmlloadfileで取得したxmlなんですが、見やすいように整形出来ないでしょうか?非常に見づらいです。
var_dumpを使用しています。
$url_arr = ["URLリンク(blog.livedoor.jp)
foreach($url_arr as $url){
$xml_elm = simplexml_load_file($url);
var_dump($xml_elm);
}
377:デフォルトの名無しさん
21/06/28 12:42:58.79 GRcsjrE80.net
>>370
var_dump($xml_elm);
までやってるのに自分で解決できないなら、それはもう「PHPの書き方自体がわかってない」って事じゃんw
とりあえず
$xml_elm を foreach() で回せ
foreachの対象は配列だけじゃない
378:デフォルトの名無しさん
21/06/28 12:53:32.28 SRAdQ7Kv0.net
>>371
$xml_elmをforで回すということは、自分でhtmlなりで整形しないとだめってことですかね
サクッと構造わかりやすく表示してくれればよかったんですが
379:デフォルトの名無しさん
21/06/28 12:55:48.26 flv9QEa50.net
ワロタw
380:デフォルトの名無しさん
21/06/28 13:32:04.00 GRcsjrE80.net
>>372
print_r($xml_elm);
そういえば前にも似た感じの質問してた人いたが同一人物?
もし同一人物なら諦めた方がいいぞ
スキップできない人が100M走のオリンピック選手目指してるレベル
381:デフォルトの名無しさん
21/06/28 13:42:08.81 quG4wdoj0.net
Ruby では、
p obj で、オブジェクトの中身を表示できる。
pp obj で、きれいに表示できる
PHP には、pretty print みたいな機能が無いの?
382:デフォルトの名無しさん
21/06/28 13:44:54.19 GRcsjrE80.net
お前ら>>2をよく読むように
383:デフォルトの名無しさん
21/06/28 16:18:41.46 SRAdQ7Kv0.net
>>374
print_rで見やすくはならないのですが
xmlの階層構造を知りたいのです
384:デフォルトの名無しさん
21/06/28 17:06:46.28 GRcsjrE80.net
>>377
URLリンク(paiza.io)
これ見ても分からないの?
1行で書けるけどw
385:デフォルトの名無しさん
21/06/29 12:43:13.08 QFJ3/yA+r.net
条件分岐して
$user_id = $comment->comment_author; (投稿に名前を入力された場合)
$user_id = empty($comment->user_id) ? "default" : $comment->user_id; (投稿に名前を入力せずにコメントが投稿された場合)
に分岐させる場合、
if foreach でどう構文を書けばよいのでしょうか?
386:デフォルトの名無しさん
21/06/29 14:13:26.09 jcOSDUmu0.net
>>379
// 最初にこうやってデフォルト値で初期化して
$user_id = 'default';
// こうすればいいだけでは?
if (!empty($comment->comment_author)) {
$user_id = $comment->comment_author;
} elseif (!empty($comment->user_id)) {
$user_id = $comment->user_id;
}
三項演算子は便利だけど、こういう質問をしている段階で無理して使わなくていい
この質問でなぜ foreach がいきなり出てくるのかは理解不能w
387:デフォルトの名無しさん
21/06/29 15:56:17.02 3ACgfFjZ0.net
名無しで投稿したいのに
ログイン済みだからってわざわざ身バレさせてあげるってことか?
鬼畜やな
388:デフォルトの名無しさん
21/06/29 16:14:27.35 QFJ3/yA+r.net
>>380
勉強になりました。ありがとうございます。
実装できました!
389:デフォルトの名無しさん
21/06/30 00:45:39.78 9XHMQjkRr.net
すみません調べてもわからなかったことがあるんですが、
$date = get_comment_date( 'Y/n/d', $comment->comment_ID);
<span class="my_author"><= $date ></span>
で日付けを取得してるんですが (Y/n/d)と出力したい場合どうすればいいんでしょうか?
日付けを()でくくる方法をネットで調べたんですがどうしてもわかりません...
390:デフォルトの名無しさん
21/06/30 01:04:12.91 iVkkZXbL0.net
そういうフォーマットが無いなら、
$date の前後に、文字列を連結して、( ) を付ければ?
それか、それを関数化して使うとか
391:デフォルトの名無しさん
21/06/30 01:08:32.08 +uONOblq0.net
$date = get_comment_date('(Y/n/d)', $comment->comment_ID);
でよいのでは?
392:デフォルトの名無しさん
21/06/30 06:56:15.60 gHjUFFSPM.net
日付扱うなら nesbot/carbon が楽だよ
393:デフォルトの名無しさん
21/06/30 15:33:44.49 E5lZLJuwr.net
>>384
>>385
大かっこ中かっこみたいに連結できるんですね、勉強になりました。
ありがとうございます。
394:デフォルトの名無しさん
21/07/01 16:07:46.68 /VJoNeIAp.net
VBで二限一次方程式のツール作るとしたら使う文法教えてくれ
395:デフォルトの名無しさん
21/07/01 17:07:12.29 rtzdpng60.net
>>388
ここに詳細な解説が載っているよ!
URLリンク(www.ruby-lang.org)
396:デフォルトの名無しさん
21/07/01 22:30:32.59 FtQP+R2v0.net
>>389
ありがとうございます!
きっとあの変人も喜んでいます!
397:デフォルトの名無しさん
21/07/02 05:15:42.19 8vqpw3og0.net
古いwordpressで徐々にレスポンシブ対応ページに変更しているのですが、
特定のurl(ドメイン/news/, ドメイン/blog/・・・など増加予定)の場合というifを作って
echoでレスポンシブのcssを出力したいです。
IPアドレスなどでレスポンシブ用cssを出すのはすでに実現しています。
$url = esc_url($_SERVER['REQUEST_URI']);
複数のURIの中からマッチさせたいです。
足していくので改行を使った配列を使うのが良いのか、strpos, strstrを使えば良いのか
どのような判定をすればいいでしょうか?
$responsive_url = array(
/news/,
/blog/
};
if(判定する関数($url, $responsive_url)){
echo "cssを出す処理";
}
みたいな感じになるのでしょうか
398:デフォルトの名無しさん
21/07/02 10:13:53.35 zJt0vXnM0.net
>>391
実際に書いてみればいいじゃん
PHPはスクリプト言語なんだから、悩んでる暇があったら書いた方が早い
URLリンク(paiza.io)
上記の例ではテストのために $uri の値を固定しているが
本番環境なら
$uri = getenv('REQUEST_URI');
を使えばいい
こういう実行環境をローカルに用意できてないなら、先にそっちを何とかした方がいいぞ
スクリプト言語のメリットが全く活かせてないから
399:デフォルトの名無しさん
21/07/02 14:20:08.79 8/5dBHDt0.net
>>391
urlからディレクトリ名抽出してその名前のファイル名.cssをCSSファイルとすればそこまで色々悩む必要は無い気がする
400:デフォルトの名無しさん
21/07/03 04:35:11.36 XWbbAf/z0.net
>>392-393
ありがとう、paizaというものがあるのね。
すごい便利でびっくり
そう、実はローカル環境が無くて、公開している本番サイトをちょっと触ったら白くなって慌てて戻してとかダメダメなやり方してる
ローカル環境作らないとダメよね。
URLリンク(paiza.io)
やってみたけど出来ていそうで上手くいかないorz
true, falseのところが間違っているのかな
フラグ用の変数を設けて、自宅用の固定IPか、レスポンシブ用のURIならcssを追記するってことなんだけど
無条件にcssが付加されてしまう
401:デフォルトの名無しさん
21/07/03 06:03:10.13 WJPssPjr0.net
オイオイ、最後trueを代入しちゃってるよ
402:デフォルトの名無しさん
21/07/03 07:16:32.91 +vCA0zbWM.net
メンテ担当に逃げられた無能っぽいな
403:デフォルトの名無しさん
21/07/04 21:04:35.74 wDVNm/sr0.net
入力項目の中で生年月日が入力されてなかったらdb側の生年月日にはnullを入れるシステムがどうしても作れなくてアイディアに詰まってるので助けてください
data型でdefault nullで作ってます
404:デフォルトの名無しさん
21/07/04 23:05:18.46 GsYUOVMj0.net
table create文をここに書いて
実際にデータをinsertするときの文も
>入力されてなかったら...nullを入れる
ここに落とし穴がありそう
405:デフォルトの名無しさん
21/07/05 01:27:32.49 fHx0Uh9Wd.net
めちゃくちゃ素人質問で申し訳ないんですけど入力された値が数値では無い場合と指定文字数じゃない場合にエラーを出したいんですけどどこが間違ってますでしょうか?
if(!is_numeric($_POST['te']) ||
!mb_strlen($_POST['te'])==8){
$err ='正しい数値を入力して下さい';
}
406:デフォルトの名無しさん
21/07/05 02:01:16.11 vro+Akhn0.net
>>399
$errはどこかでechoするんですよね?
407:デフォルトの名無しさん
21/07/05 02:16:11.46 gY5D6WDn0.net
>>399
is_numericとmb_strlenを一緒に使っているが、$_POSTに入力されるのは全角、半角どちらを期待しているのか?
半角ならばstrlen使うべきだし、全角ならis_numericではなくpreg_matchなどで処理する必要がある
解決方法としては、一旦$_POSTを変数に入れて全角か半角どちらか必要な方に統一した後、然るべき処理を行うのがよいと思われる
408:デフォルトの名無しさん
21/07/05 11:03:40.35 fHx0Uh9Wd.net
>>400
そうですね、その予定です!
>>401
ありがとうございます
1つずつ確認してみます
409:デフォルトの名無しさん
21/07/05 11:09:11.53 W/ubV+NK0.net
>>399
要件を整理すると「特定の範囲内の数値を正とする」ってことだと思うので、filter_input()使うのが楽だと思う
410:デフォルトの名無しさん
21/07/05 11:55:59.13 Fmkhs1Zc0.net
必要桁の数値による正規表現が簡単だぞ
411:デフォルトの名無しさん
21/07/05 12:18:25.72 kyq5FLmC0.net
>>394
strpos()で「~を含む」という処理を書きたいならこう書くこと
※理由はPHPマニュアルに書いてある筈
×:strpos($now_url, $res_url)
○:strpos($now_url, $res_url) !== false
極めつけはこれ
×:$match_responsive = true
○:$match_responsive ==== TRUE
$match_responsiveに true を入れてるのだから、結果は常に真になるぞ?
412:デフォルトの名無しさん
21/07/05 12:19:27.72 kyq5FLmC0.net
>>399
>>402
色々間違ってる
・$_POST['te'] が null(未定義) だった場合にそのコードはエラーになる(もしエラーにならないならエラー設定を見直すこと)
・半角数字の入力を期待しているのだから、使うのは mb_strlen() ではなく strlen()
・書くなら !mb_strlen($_POST['te']) == 8 ではなくて mb_strlen($_POST['te']) !== 8
・== ではなく === で問題なく動くコードを書くくせを付けた方がいい
・省略しただけかもしれないが、$err をきちんと初期化しよう
以上を修正したサンプル
URLリンク(paiza.io)
エラー設定のやり方
URLリンク(qiita.com)
413:デフォルトの名無しさん
21/07/05 12:20:57.53 kyq5FLmC0.net
>>405訂正
×:$match_responsive ==== TRUE
○:$match_responsive === true
414:デフォルトの名無しさん
21/07/06 14:16:58.59 K/Yz4VXdr.net
//ここにメイン部分のコードを記述 ループしないので <php if (have_posts()) : the_post(); >
<!--クラスつきのタイトルを追加-->
<h3><php the_title(); ></h3>
<!--クラスつきの日付けを追加-->
<div class="posted_date">
<php echo get_the_date(); ?> </div>
<!--リンククラス付きのカテゴリーを追加-->
<php
$categories = get_the_category();
if ( $categories ) {
echo '<ul>';
foreach ( $categories as $category ) {
echo '<li class="cat2"'.$category->slug.'"><a href="'.esc_url(get_category_link($category->term_id)).'">'.$category->name.'</a></li>';
}
echo '</ul>';
} ?>
<!--リンククラス付きのコメント数を追加-->
<php $num_comments = get_comments_number();
if ( $num_comments == 0 ) {
$comments = __('No Comments'); // 댓글이 없을 경우
} elseif ( $num_comments > 1 ) {
$comments = $num_comments . __(' Comments'); // 댓글이 2개 이상일 경우
} else {
$comments = __('1 Comment'); // 댓글이 1개일 경우
}
$write_comments = '<span class="singlecomments2"><a href="' . get_comments_link() .'">'. $comments.'</a></span>';
echo $write_comments;?>
<!--クラス付きの内容を追加-->
<div class="posted_content">
<php echo the_content(); > </div>
<php
endif;?> で出力してるんですが<!--クラス付きの内容を追加-->の部分のみ繰り返し出力する場合どうすればいいんでしょうか?
415:デフォルトの名無しさん
21/07/06 14:57:40.96 EJPu27Tj0.net
暇つぶしに過去作っていたプログラムを改修していたのですが、
関数ばかりのライブラリが、わりと使い勝って良くて軽量だったりします。
セキュリティを考慮すること無く、CRUD程度の操作なら
フレームワーク使わなくても良いと思ったりしたのですが、
みなさんはやっぱり自作の物は使わないようにしてますか?
416:デフォルトの名無しさん
21/07/07 01:26:08.59 bUHYGk470.net
Ruby のERB(埋め込みRuby)みたいに、
文字列をつなげて、HTML を作るのではなく、
逆に、HTML中に、Rubyの式を埋め込めば?
<%= ~ %> は出力される。
<% ~ %> は出力されない
<table border="1" cellpadding="4">
<% @items.each do |fruit, price| %>
<tr>
<th><%= fruit %></th>
<td><%= price %>円</td>
</tr>
<% end %>
</table>
417:デフォルトの名無しさん
21/07/07 01:32:32.70 7x6smrJ30.net
>>395,405
ありがとう、代入はダメね全然気付かなかった。
strposも位置を数字で返すのね。
あるあるなミスなようで俺もミスってしまった。
期待通りに動くようになりました。
418:デフォルトの名無しさん
21/07/07 14:02:49.29 Mv2t2pQw0.net
>>409
自分がずっとメンテするものなら使うし
そうではないなら、将来自分が面倒くさい事にならないようになるべく使わない
プログラマなんか楽してなんぼ
419:410
21/07/07 21:21:40.74 bUHYGk470.net
趣味・遊びなら、好きにすればよい
プロ・仕事なら、Ruby on Rails
420:デフォルトの名無しさん
21/07/08 08:53:13.93 Yr3Bg0Mz0.net
本当のプロならPHPのスレで他の言語を推したりしないw
本当のプロならRuby(笑)なんて採用しないw
421:デフォルトの名無しさん
21/07/08 19:06:14.53 yX5z+H5y0.net
相手にしなさんな
422:デフォルトの名無しさん
21/07/09 18:15:18.49 KkNlGqxZr.net
<php $args = array('posts_per_page' => 2,
'orderby' => 'date',);$posts_array = get_posts( $args );if (!empty($posts)):>
<php foreach($posts_array as $post):setup_postdata($posts_array);>
<a href="<php echo get_permalink();>"><div class="img-wrap">
画像
<php if ( has_post_thumbnail()){
//存在
the_post_thumbnail();}
else {
//存在しない
echo '<img src="noimage.jpg">';}></div>
タイトル
<h2><php the_title(); ></h2>
日付け
<php the_time('Y/m/d');>
カテゴリー
<php $categories = get_the_category();if ( $categories ) {echo '<ul>';
foreach ( $categories as $category ) {echo '<li class="cat1"'.$category->slug.'"><a href="'.esc_url(get_category_link($category->term_id)).'">'.$category->name.'</a></li>';}
echo '</ul>';}>
コメント数
<php $num_comments = get_comments_number();if ( $num_comments == 0 ) {$comments = __('No Comments');
} elseif ( $num_comments > 1 ) {$comments = $num_comments . __(' Comments'); } else {$comments = __('1 Comment');
$write_comments = '<span class="singlecomments"><a href="' . get_comments_link() .'">'. $comments.'</a></span>';echo $write_comments;>
コメントの抜粋
<php the_excerpt();>
記事を読む
<a href="<php the_permalink();>">記事を読む</a> <php endforeach;>
<php else:>
<div class="newarrival_nodata"><p>記事</p></div>
<php endif;wp_reset_postdata();>
ページナビを実装したいんですが、$nextpostと$prevpostを使って2ページ目を表示させる場合どういうコードを書けばよいのでしょうか?
423:デフォルトの名無しさん
21/07/09 18:28:51.80 Bz949MzB0.net
wordpressの話はwordpressスレへ
424:デフォルトの名無しさん
21/07/09 19:09:49.46 KkNlGqxZr.net
>>417
向こうで聞いても教えて貰えなくて…
425:デフォルトの名無しさん
21/07/09 19:23:26.52 aS/fIL1f0.net
>>418
ナビに関係ないコードばかりだし
ブロックに波括弧とコロンが混在してて見づらいし
$nextpostと$prevpostを使ってとか言いながら、$nextpostと$prevpostがそもそもコード内に存在しないし
質問の仕方が悪い
426:デフォルトの名無しさん
21/07/09 20:07:03.69 KkNlGqxZr.net
>>419
コードに付けたいんですが文字数制限があって書けないんです…
code penを見ていただけるなら書きますが…