[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/25 06:50 / Filesize : 281 KB / Number-of Response : 1023
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はここに書き込みやがれ 4



1 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 23:25:33.88 ID:j4grSBgs.net]
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
www.php.net/manual/ja/

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 3
echo.2ch.net/test/read.cgi/tech/1447495088/
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

2 名前:デフォルトの名無しさん mailto:sage [2016/03/12(土) 23:27:11.25 ID:j4grSBgs.net]
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・ 解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・ 誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・ SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

3 名前:デフォルトの名無しさん mailto:sage [2016/03/13(日) 18:01:24.11 ]
[ここ壊れてます]

4 名前: ID:9dwDTtH+.net mailto: 関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PHPNG        https://wiki.php.net/phpng
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ml.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/
■Smartyマニュアル  http://www.smarty.net/manual/ja/

(以下英語)
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smarty       http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
[]
[ここ壊れてます]

5 名前:デフォルトの名無しさん mailto:sage [2016/03/13(日) 18:29:54.00 ID:kS6/ihj4.net]
POSTで受け取った値でprepara+bindvalueを自動作成する方法を自分で作ってみたのですが、
$stmt = $pdo -> prepare($sql);の部分でエラーが出てしまいます。[42000]
改善策をお願いします。

$table = "$_GET['table']";
$clmname = '';
$valname = '';

foreach ($_POST as $key => $value) {
$clmname .= $key.", ";
$valname .= ":".$key.", ";
}
unset($key);

//末尾のコンマと空白削除
$clmname = substr($clmname, 0, -2);
$valname = substr($valname, 0, -2);

$sql = "INSERT INTO $table($clmname) VALUES($valname)";

$stmt = $pdo -> prepare($sql);
foreach ($_POST as $key => $value) {
$stmt -> bindValue(":$key", $clan_policy, PDO::PARAM_STR);
}
$stmt -> execute();

6 名前:デフォルトの名無しさん mailto:sage [2016/03/13(日) 18:56:27.35 ID:PAomMvms.net]
>>4
とりあえずSQL文吐いてみ

というかそれ以前にテーブル名やらカラム名やらを外部入力で受け取るとか正気の沙汰じゃないから

7 名前:デフォルトの名無しさん mailto:sage [2016/03/13(日) 19:23:29.33 ID:kS6/ihj4.net]
?INSERT INTO scouts_a(gender, age, active) VALUES(:gender, :age, :active)

$sqlは上記のような感じで、特に支障はない模様です。
※便宜上パラメーターを3つにしましたが、10ぐらいあり、内容もテーブル名によって変動します。
そのため自動作成したいと考えています。

foreachも間違っていたので修正しておきます。
foreach ($_POST as $key => $value) {
$stmt -> bindValue(":$key", ${$key}, PDO::PARAM_STR);
}

検索してみてもpdo文を自動作成するソースが見つからなかったため、
この方法はひょっとして非推奨なのでしょうか?

手動でも出来なくはない量なのですが、メンテナンス性や可読性のために挑戦してみました。

8 名前:デフォルトの名無しさん mailto:sage [2016/03/13(日) 19:31:11.69 ID:GjqBj5dI.net]
→に半角スペースはいらない。
$stmt = $pdo -> prepare($sql);
$stmt = $pdo->prepare($sql);

9 名前:デフォルトの名無しさん mailto:sage [2016/03/13(日) 19:40:29.09 ID:GjqBj5dI.net]
スペースと中括弧を入れて変数を明確にする。
{$table} ({$clmname}) VALUES ({$valname})";

10 名前:デフォルトの名無しさん mailto:sage [2016/03/13(日) 20:27:39.52 ID:PAomMvms.net]
>>6
PHPのバージョン, 利用するRDBMSとバージョン。
名前付きプレイスホルダで42000エラーが発生することがあった。

その方法で自動生成を実装するとSQLインジェクションのいい的だぞ
自前で実装するならDataMapperでSQLをカプセル化する手法を採るべきだし, テーブルの変更が頻繁ならテーブル生成とActiveRecordクラス生成を同時に行うようにすべき(手動では弄らない)
あんまりテーブル構造変更が頻繁ならそもそも設計を見直すべきだろうが
何れにせよテーブル名を外部入力から受け取るなんてのはまともな実装とは言えない



11 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 00:55:48.95 ID:vuaCyoYo.net]
俺一人で作るWebサービス、初フレームワークだけどFuelPHPでいい?

12 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 01:00:58.09 ID:Yu+x6j+1.net]
vimなら許可する

13 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 01:39:32.63 ID:XuEL3mf6.net]
フレームワークも自前で

14 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 12:00:31.00 ID:vuaCyoYo.net]
自前でやってたけどセキュリティ関係が不安…

15 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 17:35:49.44 ID:M/KZKru9.net]
半日程費やしたのですが、もしかしてwindows環境で64bit版のPHP7とapache2.4の組み合わせは無理ですか

16 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 18:52:30.10 ID:6Fnnrg8u.net]
ウェブブラウザで動くPHPのプログラムを、サーバーなしのWindowsソフトに変換する方法を教えてください。

17 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 19:07:10.09 ID:Yu+x6j+1.net]
.exeにするとして画面どうすんの引数授受どうすんのjavascriptどうすんの

18 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 19:47:53.75 ID:0p8ka/G8.net]
htaでいいじゃん
javascriptに変える必要があるけど

19 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 20:20:47.01 ID:61Q7YxSP.net]
PHPって5年後も開発されてると思う?

20 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 20:39:21.88 ID:O2FU5DmM.net]
Webの仕組みが大きく変わらないなら、残っているでしょうね



21 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 21:49:01.86 ID:6tnBTcMG.net]
>>15
Nabetapって言うのがある。
これはexeには変換できないけど自分のソフトのようには見せれる

>>16
CGIは元々コマンド引数ないよ。
Nabetap使うと画面出てPHPとjavascript使えるよ

22 名前:デフォルトの名無しさん [2016/03/15(火) 22:15:38.87 ID:bRerDqNG.net]
PDO で LIKE を使った部分一致検索をするとき、値そのものに % なんかが含まれてる場合のエスケープってどうやってる?
泥臭く strtr かなんかでやるしかない?

23 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 22:26:34.65 ID:Yu+x6j+1.net]
addcslashesの第二引数に指定してやるとか

>>20
GETやPOST、それと考え方によっちゃcookieなんかも引数だろうというのはおいとくとしても
簡易Webサーバ&(IE利用の)簡易Webクライアントを「サーバなしのWindowsソフト」というのはどうなんだ
bcompilerって手もあるが

24 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 23:05:03.91 ID:g1PqSQB6.net]
>>21
str_replace を使ってる。
%は\\%に置き換える。_は\\_に置き換える。
strtr でも同様だろう。
他にやりようが有れば知りたいね。

25 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 00:52:15.32 ID:YUxkRKsr.net]
>>22
ネットつながってなくても動くんならWindowsソフトでいいんじゃない?

26 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:20:47.41 ID:BN+Lq3m+.net]
配列に対してある操作をする時って、
foreachとarray_*関数使うのはどっちが早いの?
例えばある配列から特定のキーと値だけを取り出す場合、
foreachで回して取り出すのか、array_searchで取り出すのかで処理スピードに差は出てくる?

27 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:22:13.55 ID:W+A3q4l0.net]
なぜ試さないのか

28 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 03:07:40.77 ID:6pUenI4F.net]
>>22
プロセス間通信にhttp使ったらそれはも

29 名前:、サーバなしのソフトとはいえないだろ的な? []
[ここ壊れてます]

30 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 09:42:43.04 ID:31XCK0BE.net]
そういえば毎回処理速度を計測するの面倒だけどみんなちまちま計測してるの?
俺は関数あればそっち使って、問題ありそうなら回してるって基準だけでやってる。
よほど大きなデータじゃなければいちいち計測なんかしてない。



31 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 10:44:00.47 ID:Ny+vSnKw.net]
普通は速度よりもコードの読みやすさを重視する
関数があれば関数を使う
速度が要件を満たさない場合にボトルネックの発見と改善のために計測する

32 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 11:31:36.06 .net]
二重ループになってるところくらいしか計測しないっすわ
データベースはデータベースで計測出来るし

33 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 13:01:21.01 ID:uy33h+7U.net]
phpに詳しい方、教えてください

現在JavaScriptでロード時(リロード時)に特定のhtmlタグの値を書き換えるコードを使用しているのですが、訳あって使うことができなくなります

phpは使うことができるのですが、上記の動作と同じようなものは作成可能でしょうか

よろしくお願いします

34 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 16:57:24.73 ID:WJMGp9Ue.net]
詳しい状況がわからないけど、出来るかできないかといえば出来る。
ただそれがあなたの思ってるとおりのものなのかは保証できない。
最初から書き換えたものを使えばいいのでは?という疑問に答えてくれれば、
もっといいアドバイスが出来ると思う。

35 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 17:34:10.57 ID:uyHrsjE6.net]
>>31
PHPを使おうと使うまいと、普通のウェブブラウザを使う限りJavascriptは使えると思うが。

PHPはリロード痔にタグを書き換えるどころか、全く違うHTMLを出力することもできる。
常に全く同じHTMLを出力するだけなら、HTMLでよく、PHP使う必要ないでしょ。
だから、できると思うが、できるんですか?と聞いている人にできるかどうかは分からないよ。

36 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 19:56:53.04 ID:08Q65Pye.net]
いやこれは答えとしては出来ないだろうな
phpはhtmlそのものを書き換える事は出来るけどタグだけなら書き換え出来ない

37 名前:31 mailto:sage [2016/03/16(水) 20:02:58.06 ID:uy33h+7U.net]
>>32
>>33
お二方、レスありがとうございます

>>32
個人的なことなのですが、正確には書き換えるではなく削除するでした
htmlの話になるので割愛しますが、textareaタグの初期値をロード時に削除しないとplaceholder属性を使用することができないため、JavaScriptを使って削除していました。
本題の初期値を指定しなければいいという話になりますが、指定せずにいるとバリデーターにて構文エラーが出て気持ちが悪いという本当にただの個人事です。

>>33
おっしゃるとおりJavaScriptは使おうと思えば使えます。
使うことができないという理由はこちらもhtmlの話になるので割愛しますが、doctype宣言をhtml4.01からiso-htmlに切り替えるためということになります。
iso-htmlではJavaScriptを使用することができないため、phpでできないかと考えたしだいです。

お二方のアドバイスからphpでも可能と判断しました。
これから参考書を買ってきます。
レスをくださり、ありがとうございました。

38 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:26:32.52 ID:bVagARgS.net]
>>34
はあ?タグを書き換えられないだと? 意味不明。

#!/usr/bin/php

print "<html><body>";

if($tag_default){
print "<tag 1>";
}
else{
print "<tag 2>";
}

print "</body></html>";

39 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:34:35.21 ID:/m4HeSgG.net]
それPHPのコードじゃないw

40 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:38:12.31 ID:08Q65Pye.net]
>>36
上の人曰くロード時にjsを使ってタグを書き換えると書いてある
なら最初からタグを書き換えた"html"をphpで吐けばいいと言う話でそちらの例文通りなんだが
わざわざタイミング的にロード時に"タグ"を書き換えるというなら出来ないと



41 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:38:16.49 ID:6pUenI4F.net]
>>35
なんか不安になる流れだけど、言葉を借りながら書くと、ロード後に何か変更することはできないよ。

42 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:39:18.20 ID:TswKIM7e.net]
>>36
いやぁ>>35の要求は無理でしょ
バリデーションエラー抑制なんだから読まれるHTMLそのものにはtextareaの初期値が設定されている必要があり, onload或いはreadyイベント時にクリアする必要があるわけでしょ
クライアントサイドのお仕事なんだからサーバサイドではどうにもならん

43 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 21:42:40.76 ID:1Ad9HLvE.net]
>>40
form部品のidだかnameだかを動的に変えてやってcacheも無効にすればあるいは

44 名前:31 mailto:sage [2016/03/16(水) 21:54:52.61 ID:uy33h+7U.net]
みなさんレスをくださり、ありがとうございます。
荒らしてしまったようで申し訳ありません。

>>38
補足として、ロード時にタグを書き換えるではなく、ロード時にタグの値を削除するです。
before:<textarea>hoge</textarea>
after:<textarea></textarea>
紛らわしかったですね。ごめんなさい。

>>39
ロード後というよりはロード時なのでScript系でいうonload的な何かトリガーになる関数やメソッドがないかなと思いまして。

45 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 22:41:03.47 ID:TswKIM7e.net]
>>41
実装案あるなら詳しく知りたい

46 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 22:41:21.24 ID:uh2T6fm3.net]
>>37
PHPじゃなければなんだ?
PHPは、printf("abcdefg\n"); と書いても動くで。

>>40
リロードされるということはサーバーが情報出すわけでどうにでもなる。
もちろん、リロードさせないで変えることは、PHPというより、CGIではできない。

<html><body>
<?php
なんか処理
?>
</bdoy></htm>

だと、bodyタグは書き換えられないけど、

print "<html>"
if($default){
print "<body>";
}
else{
print "<aaaa>";
}
print "</body></.html>"

だと書き換えられるだろ。
タグ書き換えられないなら、もはやCGIの意味ないだろ。
書き換える条件は、GETまたはPOSTで受け取れるだろ。何言っているのか意味不明だよマジで。

47 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 22:54:25.28 ID:TswKIM7e.net]
>>44
何でCGIとか言い始めたのか分からんのだけど
で, >>35の要求はクライアントサイドでの書き換えだと読めるわけだし, それは>>42でもそうだということが分かるわけだけど, サーバサイドで何するの?

48 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 23:06:42.52 ID:uh2T6fm3.net]
>>45
「ロード時」って言っているんだからサーバーだろ。

というか、おまえのブラウザはPHPプラグインでもあるのかよ?
聞いたことねーぞそんなの。
どこに、ブラウザのクライアントサイドでPHP使っている奴がいるんだよ。
話にならんわマジで。
PHPはJavascriptみたいにクライアントサイドでは動くわけない。
そんな低次元な話を言いたいわけ?当たり前じゃん

49 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 23:13:18.12 ID:TswKIM7e.net]
>>42
とまぁサーバサイドからすればロード後もロード時もレスポンス送出後の話なので関与出来ない。
当然JavaScriptで操作するイベントハンドラもサーバ側からは全く見えない。

50 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 23:21:29.98 ID:yE3DB2AT.net]
つまりクライアントサイドPHPという方向



51 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 23:28:54.37 ID:UiCQsACT.net]
>>46
既にあるシステムの出力をいじりたいんだろ?
サーバサイドを自由にできるなら既存の出力処理に手を入れる話だろ。
PHP がどうとかいうレベル以前のことなわけで。

52 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 23:29:40.46 ID:uh2T6fm3.net]
まあ、ここにバカがいることから分かるように、
サーバーとの通信で成り立っているから、
クライアントだけで完結するプログラムで簡単にできることも、CGIとなると難しいんだよ。
できるんですか?って聞いているような人にはできないから諦めなよ。
バカにかかるとできることもできなくなる。
それはどんな言語でもどんなプログラムでも同じ。

53 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 23:42:41.54 ID:UiCQsACT.net]
バカは誰なんだかw
後半には同意だがな

54 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 23:50:29.07 ID:t34HQYxh.net]
>>31
>上記の動作と同じようなものは作成可能でしょうか
PHPでは無理。不可能。

>>42
>Script系でいうonload的な何かトリガーになる関数やメソッドがないかなと思いまして
PHPには無い。

だから参考書は買わなくていいぞ。

55 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 23:52:26.23 ID:TswKIM7e.net]
もうNGしちゃったけど, 見てて恥ずかしいから補足しておくと, 多くの場合PHPはmod_phpで実行されるからCGIではない
CGIとはCommon Gateway Interfaceの略で, Apacheならばmod_cgiやfastcgiモジュールがPHPインタプリタを叩いて実行するもの

56 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 00:04:39.60 ID:SrjbyMW+.net]
ちょっとこのひとすごすぎない ID:uh2T6fm3

> ロード後というよりはロード時なのでScript系でいうonload的な何かトリガーになる関数やメソッドがないかなと思いまして。
onloadはロード直後に動くイベントなのでロード後ですよ。
で、まぁ、PHPでそれは無理。

57 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 02:10:23.89 ID:E3PmrLA5.net]
>>54
Javascript使わないって言っているんだから、onload関係ないでしょ。
それはJavascriptなんだから。
リロードかかるということは、サブミットかかったってことだから、
サブミット(Enter)で、サーバー側に情報送って、サーバー側のPHPが処理すればいいの。
ロード後はそりゃ何もできないよ。
でも必ずロードされるんだから、ロード前に処理ができるでしょ。
Javascript使わないって言っているのに、ロード後、ロード後って気でも狂ったの?
Javascript使わないならJavascriptの処理はできないが、それは当然のことで君がわざわざ言う理由が分からん。

>>53
いつの時代の話してるんだよ。
もうPHPはCGIが普通になっている。
詳しい事情はよく知らないが、もうモジュール版はほとんど使用されてない。
今はモジュール版しか使えなかったレンタルサーバーも、逆にPHPはCGIでしか使えなくなってるよ。
PHP側がCGI推奨してモジュール版非推奨になったんじゃないの?
最新のPHPでもモジュール版ってあるの?

58 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 04:16:17.63 ID:+pOWXd9M.net]
>>43
実装と言えるほどのもんじゃないけど
ブラウザがform部品の値を維持するのって、「同じform部品である」と認識してるからでしょ
受諾htmlソースに差異がないから「同じform部品である」と認識されて、んでF5押しても値を引き継ぐと
厄介なことにブラウザごとにこの維持条件が多少違うから、大昔からformのリロード問題が面倒だったわけで

だから、
<html><body><form action="form.php" method="post"><textarea name="<?= (string)(mt_rand(15123313, 75123313)) ?>"></textarea></form>
実際にこんなん書いたら手元に環境では素のF5押下でtextareaの値がクリアされた
真面目に実装するなら、<?= 'textarea'.( (string)(mt_rand($start,$end)) ) ?> とかにしといて
submitされて値を受け取るform.phpで$_REQUESTなり$_POSTや$_GETなりをforeachして値があるかチェックすりゃいい
その程度

59 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 04:21:00.26 ID:RyL0OfbX.net]
>本題の初期値を指定しなければいいという話になりますが、指定せずにいるとバリデーターにて構文エラーが出て気持ちが悪いという本当にただの個人事です。

textareaにそんなルールあったっけ?

60 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 04:30:16.22 ID:+pOWXd9M.net]
あー、一応56の補足
>>35のレスから、textareaで、placeholderを有効にするためにリセットしたい、と読んだからこう書いたけど




61 名前:ハにtextareaじゃなくてinputでもinnerHTML/textContentsじゃなくてvalueの中身でも好きにしていいと思う

それとDOMツリーが何基準で構成されてるか知らんからアレだけど、もしかしたら
<textarea>ではなく<form>のほうの、あるいはnameだけでなくidも、変えてやる必要があるかもしれない

>>57は自分も興味ある。iso-html使ったことない
[]
[ここ壊れてます]

62 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 04:42:48.51 ID:RyL0OfbX.net]
iso-htmlは知らないけど一応html5でやってきた
結果は問題なくパスしたし仕様書にも特に初期値入れろなんて書いてないような
(隅々まで読んだわけじゃないけど)
例にも初期値入れてないサンプルが書かれてるし不要なんだと思う
ただW3Cのバリデーターでは問題なかったけどAnother HTML-lintでは指摘されるね
どっちを信用するかといったら自分はW3Cを信用するけど

63 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 04:50:59.99 ID:+pOWXd9M.net]
え、バリデータが云々ってそういうことなのか
ユーザが入力した内容がリロード時に残ってそれが何かのチェックに引っかかるのかと勘違いしてた
だからhtmlの話なのか……>>56,58まったく意味ないわすまん iso-htmlじゃスクリプトの類使えないらしいしなあ

64 名前:31 mailto:sage [2016/03/17(木) 09:35:54.48 ID:7bUuFC4K.net]
おはようございます。
みなさん沢山のレスをくださり、ありがとうございます。

>>47
関与できないのですか
phpはサーバーサイドで動くので あるいはと思たのですが

>>52
不可能ではしょうがないですね
でもphpは学びたいので参考書は買うことにします。

>>54
phpではロードがトリガーになるタイプの関数などはないのですか

>>57
>>59さんのおっしゃるとおり openlab.ring.gr.jp/k16/htmllint/htmllint.html
では指摘される箇所です。w3cの構文チェックでは問題ありません。

>>58
アドバイスありがとうございます
inputだけならvalueは空でも問題が発生しないのですが、textareaだけは融通が利かず困っております。

問題の解決には時間がかかりそうですが、妥協せずに努めます。
>>31の質問についてはここで〆させていただきます。
皆さん本当にありがとうございました。

65 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 15:09:51.59 ID:tyGZO1LH.net]
>>54
マニュアル読んでないの?
php.net/manual/en/install.unix.commandline.php

66 名前:62 mailto:sage [2016/03/17(木) 15:10:32.51 ID:tyGZO1LH.net]
>>54じゃないわ>>55
失礼

67 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 15:33:57.91 ID:C8WQ31QC.net]
>警告
>Apache2 の MPM マルチスレッドモードを実運用環境で使用することは推奨されません。
>代わりに prefork MPM を使ってください。
>これは Apache 2.0 および 2.2 におけるデフォルトの MPM です。
>prefork MPM を使う理由については、 マルチスレッド版 MPM の Apache2の FAQ エントリを参照してください。

意訳
worker使うにはfastcgi入れてね

今nginx+fastcgiで構築中

68 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 23:09:31.14 ID:tyGZO1LH.net]
分かった, 多くがmod_phpという点は撤回しよう

69 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 02:50:58.31 ID:VCEknKj5.net]
>>55 の人は状況を理解できたのかな。

70 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 16:25:00.45 ID:b9TT5Thu.net]
PHPで掲示板作りたいんだけどどうやって作ればいい?



71 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/03/18(金) 16:34:07.36 ID:Ap+aghgX.net]
>>67
SQLを勉強。
データベースを元にレス一覧を表示するページを作る。
データベースにレスを追加する機能を付ける。
個人認証とアクセス規制の機能を付ける。

RoRの方が簡単だよ。

72 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 16:36:42.93 ID:6oRuSaMu.net]
>>67
まずは基礎的なことを学べばいい
ファイルの読み書きとPOST,GETの概要がわかれば作れる

73 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 16:42:05.89 ID:R++Q/oTK.net]
こんなとこで聞くような人にはどっかに落ちてたこんなので十分
<?php
$fp = fopen('log.csv', 'a+b');
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['name']) && isset($_POST['text']) ) {
fputcsv($fp, [$_POST['name'], $_POST['text']]);
rewind($fp);
}
$rows=[];
while ($row = fgetcsv($fp)) $rows[] = $row;
fclose($fp);
function h($str) {
return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}
?>
<html>
<meta charset="UTF-8">
<title>掲示板</title>
<h1>掲示板</h1><h2>新規</h2>
<form method="post">
名前: <input type="text" name="name" value=""><br>
本文: <input type="text" name="text" value=""><br>
<input type="submit" value="投稿">
</form><h2>一覧</h2><ul>
<?php foreach ($rows as $row){ ?>
<li><?=h($row[1])?> (<?=h($row[0])?>)</li>
<?php } ?>
</ul>

74 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 17:07:51.15 ID:tFp6SKta.net]
>>70
試しにそのスクリプトを動かして見たんだが、log.csvには何も書き込まれん。
動かんぞ

75 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 17:37:32.82 ID:ylD08sGN.net]
全くの初心者でこれを作るのに3ヶ月かかった恥ずかしいけど晒すぜ
<?php
header('Content-Type: text/html; charset=UTF-8');
date_default_timezone_set('Asia/Tokyo');
$log = 'log.txt';
$name = 'nanashi';
if (@$_POST['name'] && @$_POST['comment']) {
$name = $_POST['name'];
$now = date('y/m/d H:i');
file_put_contents($log, mb_convert_encoding("{$_POST['name']}<>{$_POST['comment']}<>{$now}\n", 'UTF-8', 'UTF-8'),

FILE_APPEND | LOCK_EX);
}
$read = file($log);
array_map(function($a){
return mb_convert_encoding($a, 'UTF-8', 'auto');
}, $read);
$len = count($read) - 1;
?>
<form method="post">
Name;<input type="text" name="name" size="10" maxlength="10" value="<?php echo $name; ?>">
Comment:<input type="text" name="comment" size="50" maxlength="50">
<input type="submit">
</form>
<ul>
<?php
for ($i = $len; $i >= 0; $i--) {
$src = explode('<>', $read[$i]);
echo '<li>' . htmlspecialchars("{$src[0]}:{$src[1]}({$src[2]})", ENT_QUOTES, 'UTF-8') . '</li>';
}
?>
</ul>

76 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 18:16:32.51 ID:Ncw6iORz.net]
Route::post('/task', function (Request $request)

larevelの上記コードで
localhost/laravel/public/から
localhost/laravel/public/taskに行くと思うのですが、

localhost/taskに移動して404が出てしまいます。
初フレームワークでいまいちピンと来ないのでご教授願います。

77 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 18:18:38.48 ID:ylD08sGN.net]
tamae.2ch.net/test/read.cgi/php/1358215310/
こっちで聞いたほうがええで

78 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 18:27:28.59 ID:kCkFI5Um.net]
閉じ括弧足りてへんで

79 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 18:44:41.00 ID:4GbB4r0Q.net]
掲示板のスクリプトが全然動かねぇ…
ファイル書き込みできない理由がわからんな…

80 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 18:56:49.98 ID:ylD08sGN.net]
親ディレクトリやログファイルのパーミッションが正しくないんちゃいます



81 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 19:11:37.81 ID:Ncw6iORz.net]
php artisan serveでした。
こんなのドキュメントにさえ書いてなかったぞ

82 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 19:15:56.65 ID:VCEknKj5.net]
localhost/laravel/public/
そもそもこんなアクセスが可能な時点で何か間違えてる

83 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 19:19:01.05 ID:Ib/Six5x.net]
>>77
いや、単純なファイルへの書き込みプログラムは動くんだがここで上がっている掲示板が動かん。
Macだからログファイルを777に設定してみたが無駄だった

84 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 19:28:18.96 ID:VCEknKj5.net]
>>80
試してないけど、少なくともphp5.4以降じゃないと動かないかと

85 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 19:52:51.02 ID:PmB3GW7n.net]
>>81
後方互換性はあるよね?
PHP 7.0.4 (cli) (built: Mar 6 2016 20:04:17) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

86 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 20:15:10.33 ID:VCEknKj5.net]
内容的に、試してるのって>>70でいいんだよね。
動かしてみたら動いたよ。

87 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 20:25:43.68 ID:fETB3aTj.net]
symfony1を使うことになった… 今更propelだなんて、石器時代に戻ったようだ…

88 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 21:05:02.39 ID:ylD08sGN.net]
なーんもエラーメッセージ出てないの?
action先指定してないせいとかそんなんだったりして

89 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 22:19:38.49 ID:1/+/M8CG.net]
>>85
何も出てないね。
action先指定してもダメ
調べたらPOSTされた値の取得失敗してる
よくわからん

90 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 23:51:19.80 ID:VCEknKj5.net]
スーパーグローバルの中身それぞれ確認してみたりした?



91 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 10:23:11.43 ID:RdVsRxwn.net]
PHPによるwebアプリ開発を主目的とした場合、オススメのパソコンありますか?
現在は一人でwindowsのVistaを使っていますが買い替える予定です。
開発者はmacの方が多いんでしょうか?

92 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 10:53:37.88 .net]
>>88
VisualStudioにPHP Toolsを入れるのが一番捗るぞ
Windowsでよろしい

93 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 12:07:25.47 ID:TH+k+4Mf.net]
PHPってなんでこんなに最高な感じなんですか?

94 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 12:39:27.23 ID:7KrQRChZ.net]
>>88
開発バリバリやっている人ならMacがおすすめ。
ただし、Macは値段高いよ。
俺はmid2015 16GBのMBP使ってる
brewで簡単にいろいろ入れられるのは便利だね
IDE使っているとすぐメモリ10GB近く食われてるから8GBだときついかも

95 名前:88 mailto:sage [2016/03/19(土) 13:09:06.17 ID:KQyZU1EN.net]
>>89
ありがとうございます。参考になります。
10ならIDEのもっさり感がないと期待したいです。

>>91
調べてみたら爆速との評価で羨ましいです。
ただお高いですね・・・
今はWindows10を買って、Macの購入は今後の目標にするのが現実的みたいです。
ありがとうございました。

96 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 13:17:01.38 ID:KP8Apys+.net]
>>92
持ち運ぶ事がなければデスクトップ、持ち運びたいならノート
メモリーは 8G 以上、16G あれば十分。当然OSは64ビット版。
デスクトップであればHDD 2台内蔵しておくと何かと便利。

OSはWindowsかLinux、より多く使う可能性があるものをインストール。
その後、他方をVM使ってインストールする。

これで1台のPCで2台分になり、サーバー・クライアント環境が実現

97 名前:できる。 []
[ここ壊れてます]

98 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 14:01:59.09 ID:uL3uF0Qy.net]
>>87
プログラムは>>72のやつなんだかやっぱりだめだわ
$_POSTに値が入っていない
postでリクエストを受け取っているのに値がないってどういうこっちゃ
フォームにhiddenで値を仕込んでみたりしたが値が入ってなかった。

99 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 15:22:31.48 ID:S6HwApMW.net]
試しに@抜いたら?

100 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 15:32:07.50 ID:JCgDTcvT.net]
>>95
Undefinedだね。
issetで見ても入ってないしどうなってるんだ…








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<281KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef