X



第二回 自作スクリプト発表会【PHP】
00011様
垢版 |
2006/08/21(月) 08:31:27ID:???
自分が書いたPHPスクリプトを発表するスレ。

初心者が書いた入門スクリプト、ベテランが書いたすげースクリプトを発表してね。
予めスクリプトの内容を明記してURLを貼り付けるのがよろしいかと。
マターリ進行でいきませう。


【PHP】自作スクリプト発表会
  http://pc8.2ch.net/test/read.cgi/php/1017456911/all


Warning: 発表の場は、学びの場。クレクレ君は他所へ。
0002nobodyさん
垢版 |
2006/08/21(月) 09:29:50ID:???
>>1
早漏乙

勉強系なのか批判系なのか自慢系なのかそのへん決めた方がいいんじゃね?
0004nobodyさん
垢版 |
2006/08/25(金) 08:39:59ID:???
新感覚癒し系発表会。
0006nobodyさん
垢版 |
2006/08/29(火) 12:11:10ID:???
テンプレ:

【設置場所】 http://example.com/test.php
【ソース】 http://example.com/test.txt
【プログラミング経験】 3ヶ月 / 1年 / 3年
【希望評価スタイル】 悪い部分を指摘して欲しい / 良い部分を指摘して欲しい
【自分の性格】 かかってこいや! / またーり / 叩かれると自殺しちゃうかも
【備考】 B90/W58/H86 です。
0007nobodyさん
垢版 |
2006/09/02(土) 15:43:17ID:???
スリーサイズは必須な。
0008nobodyさん
垢版 |
2006/09/14(木) 11:12:03ID:???
>>6
おっさんの体型、変じゃね?
0010nobodyさん
垢版 |
2006/09/24(日) 05:02:41ID:???
>>9
パケモンでも使っとけ糞マルチ
0011nobodyさん
垢版 |
2007/02/01(木) 10:19:56ID:NLH+CAqc
age
0012nobodyさん
垢版 |
2007/02/25(日) 14:22:03ID:XAraiK/y
作りかけの出したら殴り殺される?
0015nobodyさん
垢版 |
2007/02/26(月) 12:13:42ID:???
>>14
係り受けがおかしい。
本来は「全然〜ない」のような形で全否定を表すのが正しい。

「全然OK」→「全然問題ない」
0016nobodyさん
垢版 |
2007/02/26(月) 17:26:00ID:???
いつの人間だよ
頭カチカチだな
0017nobodyさん
垢版 |
2007/02/26(月) 19:07:52ID:???
>>12
んで、ただの釣りだたわけか?
0018nobodyさん
垢版 |
2007/03/01(木) 13:01:51ID:vHXjUYFX
aage
0021晒します
垢版 |
2007/03/19(月) 18:09:19ID:???
<?php
for($i=1;$i<1001;$i++){
print ">>$i";
print "ぬるぽ";
}
?>
0022nobodyさん
垢版 |
2007/03/21(水) 11:05:07ID:???
>>17さん
すいません、仕事が忙しくて遅々として進まないのでorz
まだ2%ぐらいしかできてないんで、もうちょい作ってからにしますorz
0025nobodyさん
垢版 |
2007/04/05(木) 18:23:24ID:qzUTLqFO
今はソースしか出せない状況だけどソースだしたら添削してくれるかい?
ちなみに環境はlinux+mysql+symfonyで作ったsymfony用のサンプルコードなんだが
0026nobodyさん
垢版 |
2007/04/09(月) 14:51:21ID:???
>>25
まずはさらせ。話はそれからだ。
0027age
垢版 |
2007/04/09(月) 17:27:25ID:Om+VcTLy
>>26
まあ、じゃあひとまず晒してみるよ。
解凍パスはsampleね
ttp://www.csync.net/service/file/view.cgi?id=1176107178

ソースしか出せないから動作確認とかは各人でやってみてくれると嬉しい。
pearとsymfonyのパスの設定ファイルを各人の環境に書き換えて
DB接続のconfファイル書き直して
data/sql/lib.model.schema.sqlをDBに流し込んで
ちなみに俺の環境はDBの名前はsymfonySampleな、変える場合は各人設定ファイルの変更よろ
DBはmysql以外を使う場合は設定ファイルを書き直してくれ
ドキュメントルートはweb/index.phpで.htaccess読むように設定してrewriteモジュール入れて、
バーチャルホストで Alias /sf symfonyパス/web/sf
あとキャッシュフォルダとかはパーミッション777ね
ぱっと思いつく設定書いたけど不十分かもしれないからあとは各々自分の環境にあわせてくださいな。

自分的にはindexのアクション1つで作ったのとかアホとしか思えない作りになってしまった点がかなり問題くさいと思う
あとログイン認証がおそまつすぎるかな
何でユーザー認証つきの掲示板かというとDBからselectする時にjoinのやり方も勉強したかったから
意味なさげだったけど無理やりテーブル2個にして表示も2個のテーブルからデータ拾う形にした

symfony使って何か作るの初めてだったから何か問題点とかあったら教えてくれれ
0028nobodyさん
垢版 |
2007/04/10(火) 12:37:52ID:???
正直、めんどくさい
具体的に、どこ見て欲しいとかあったほうがいいのでは
0029nobodyさん
垢版 |
2007/04/15(日) 10:51:26ID:klTQuJOW
せめて作品の概説を書いて欲しかった。
0030nobodyさん
垢版 |
2007/04/18(水) 14:23:24ID:cedydNy8
age
0031nobodyさん
垢版 |
2007/05/07(月) 18:17:56ID:HYJOkdGm
ほしゅ。しておくか。
0032nobodyさん
垢版 |
2007/05/07(月) 18:36:33ID:8mOiui5O
サーバーからクライアントのファイルの取得

質問ですが、サーバーからクライアントの特定のフォルダーのテキストファイルをアップする方法がわかりません。
通常アップロードするときに良くある「参照」と書かれたボタンをクリックするとファイルの選択の画面が開き
ファイルを指定して「アップロード」ボタンを押してアップロードさせる方法がありますが、
一連の作業(「参照」、「アップロード」)をしないでクライアントの特定のフォルダーのテキストファイルをアップする方法を教えてください。

因みに通常のアップロード
print("<form enctype=\"multipart/form-data\" action=\"xxxxxxxx.php\" method=\"post\">");
print("<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"5000000\">");
print("<INPUT TYPE=\"file\" name=\"UserFile\">");
print("<INPUT TYPE=submit name=\"sub\" value=アップロード>");
print("</form>");
0033nobodyさん
垢版 |
2007/05/07(月) 21:04:25ID:???
悪用するから教えてあげないよ
0035nobodyさん
垢版 |
2007/05/08(火) 16:54:48ID:???
    FOX★公認!今世紀最大の祭り!!!
俺たちのクリックで日本を一位にしようぜ!!
“30年は日本に手は出せないな”という勝ち方をしたい
http://wwwww.2ch.net/test/read.cgi/news4vip/1178602852/

1. チリ 136,836,018
2. ポーランド 135,173,390
3. イスラエル 80,308,719
4. ★日本 71,029,997★
5. スロベニア 56,818,986
6. フィンランド 40,275,252
石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった
人間はさらに発展し兵器を使う戦争を始めた
そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・
皇国を勝利へと導くには貴様らの参戦が不可欠である
・戦場
http://www.clickclickclick.com/default.asp
・まとめサイト
http://www33.atwiki.jp/clickvip/
・mixi
http://mixi.jp/view_community.pl?id=2141035
0036nobodyさん
垢版 |
2007/05/15(火) 17:38:37ID:???
     *      *
  *  あげです   +  
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
0037nobodyさん
垢版 |
2007/05/18(金) 19:33:05ID:vYBK1HW2
     *      *
  *  あげです   +  
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
0038nobodyさん
垢版 |
2007/05/25(金) 00:20:30ID:???
     *      *
  *  メガデス   +  
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
0039nobodyさん
垢版 |
2007/06/01(金) 19:19:25ID:3y0dLYvG
     *      *
  *  ジャコパス  +  
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
0040nobodyさん
垢版 |
2007/06/11(月) 13:51:35ID:+sUSdk/e
?>
age
<?php
0042nobodyさん
垢版 |
2007/06/15(金) 22:44:14ID:0LRe+Y6N
// do nothing...
}
0044nobodyさん
垢版 |
2007/06/26(火) 18:57:07ID:s3riC2lT
?>
Parse error: parse error, unexpected T_STRING 'ワラタ' in line >>43
0046835
垢版 |
2007/07/25(水) 12:51:04ID:XbSTHe/P
age
0048nobodyさん
垢版 |
2007/07/27(金) 20:55:42ID:vcSWcDTg
【PHP】下らねぇ質問はここに書き込みやがれ 51
http://pc11.2ch.net/test/read.cgi/php/1185521566/
ここから誘導していただきました。ありがとうございました。

初めてPHPに挑戦してみたのですが、
どうしても動かない関数がでてきてしまいました。
自分では何度もチェックをしているのですが、
プログラム自体が初心者なのでなに根本的な間違いを
犯しているかもしれません。
恐れ入りますがどなたかお力添えを頂けないでしょうか?

ttp://www-2ch.net:8080/up/download/1185537177159734.kDjOMz
0049nobodyさん
垢版 |
2007/07/27(金) 22:16:20ID:???
>>48
foreachの使い方が間違ってる気がする。
0050nobodyさん
垢版 |
2007/07/28(土) 01:54:15ID:ErWRhjGm
>>49
ありがとうございます。
ご指摘の通り間違っていました。
そのあと色々大きな間違いや小さな間違いを直したりして、
どうにか一応は改良できました。
あとは編集したデータが何故か書き込めないという問題さえ解決できれば完成です。
とりあえず今夜は眠って、明日またパーミッションなどを勉強し直します。
本当にありがとうございました。

一応、現在のものをおいておきます。
ttp://www-2ch.net:8080/up/download/1185555098879782.h1mh74
005148
垢版 |
2007/07/28(土) 13:13:30ID:ErWRhjGm
解決しました。
……ファイルのパスが間違ってましたorz
お騒がせして申し訳ありません。
本当にありがとうございました。
0053nobodyさん
垢版 |
2007/08/16(木) 20:52:08ID:WHzWpCp7
【設置場所】 http://wing2.jp/~lineage2revenge/d/uproda.php
【ソース】 http://example.com/test.txt
【プログラミング経験】 5ヶ月
【希望評価スタイル】 悪い部分を指摘して欲しい / 良い部分を指摘して欲しい
【自分の性格】 かかってこいや! / またーり / 叩かれると自殺しちゃうかも
【備考】

エロ画像弾くうpローダー
0054nobodyさん
垢版 |
2007/08/16(木) 21:29:05ID:???
ソース見れねーよバーヤ
0055nobodyさん
垢版 |
2007/08/16(木) 21:29:18ID:???
>>53
バロスwww
フィルタ部分ソースキボンwww
0057nobodyさん
垢版 |
2007/08/18(土) 15:20:40ID:???
水着とかもダメだったから、肌の部分?が多いとダメなんだと思われ。
0058nobodyさん
垢版 |
2007/08/18(土) 17:50:00ID:???
確かにAVのパッケージは駄目だった
0059nobodyさん
垢版 |
2007/08/18(土) 22:46:03ID:Zb55oXWt
これは面白いなw
0060nobodyさん
垢版 |
2007/08/19(日) 19:10:17ID:???
hogehoge.abc.jpgみたいなファイル名だと弾かれるね
0061nobodyさん
垢版 |
2007/10/06(土) 05:01:11ID:???
>>53
フィルタ部分わかれば逆バージョン作れそうだ
0062nobodyさん
垢版 |
2007/10/08(月) 09:31:32ID:???
血とおばあちゃんを弾くようにしないとな
0064nobodyさん
垢版 |
2008/11/07(金) 14:55:45ID:4VTuoj+z
>>53
一年以上前のだけど、まだ稼動してるんだなw
こういう発想大好きだww
0065nobodyさん
垢版 |
2008/11/15(土) 22:57:08ID:???
【内容】 ファイルアップローダ
【設置場所】 http://lcdata.ddo.jp:8080/2ch/upload/
【ソース】 これから作るんです
【プログラミング経験】 ないしょ
【希望評価スタイル】 機能のアイディアがほしいな(シンプル指向で考えてます)
【自分の性格】 またーり
【備考】 B90/W58/H86 です。
0068nobodyさん
垢版 |
2008/11/17(月) 03:02:43ID:DKgH+i/4
じゃあ、
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
このスレッドを1時間に1回監視して、
書き込みがあったら、
番号、名前、さげ、年月日時間、ID、内容
をテキストファイルに追記していく。
アボーンがあったら、何番がアボーンになったと記録する。
そんな、PHPスクリプトを自作してここで発表して下さい。
お願いします!!
0069nobodyさん
垢版 |
2008/11/17(月) 04:09:29ID:???
>>68
それって、スレを丸ごとファイルに保存するのと何か違うの??
007068
垢版 |
2008/11/17(月) 05:05:35ID:DKgH+i/4
>>69
・PHPの技術力が違う
・エレガントさが違う
それに一番大事なのは、
1日1回、スレを丸ごと保存し、古いのを捨てる、ってやり方があるけど、
それだと、アボーンに何が書いてあったかわからないのです。
よろしくお願いします!!
0071nobodyさん
垢版 |
2008/11/17(月) 05:12:05ID:???
>>70
要するにあぼーんされた部分を残しときゃいいってこと?
あぼーん以外を保存しときゃあとから参照できるような気がするけど・・・

■番号、名前、さげ、年月日時間、ID、内容をテキストファイルに追記していく。
■アボーンがあったら、何番がアボーンになったと記録する。

↑この2つはフォーマットが全然違うと思うけど、そのへん何か考えてます?

あと、1時間に1回って処理をしようと思ったらcronとか使うと思うけど大丈夫ですか?
007268
垢版 |
2008/11/17(月) 05:22:04ID:???
>>71
> 要するにあぼーんされた部分を残しときゃいいってこと?
そうです。

> ■番号、名前、さげ、年月日時間、ID、内容をテキストファイルに追記していく。
> ■アボーンがあったら、何番がアボーンになったと記録する。
>
> ↑この2つはフォーマットが全然違うと思うけど、そのへん何か考えてます?
いえ、考えてません。

> あと、1時間に1回って処理をしようと思ったらcronとか使うと思うけど大丈夫ですか?
cronを知らないのでなんとも言えません。
ただ、winXPのパソコンを24時間立ち上げておくことは可能です。
007468
垢版 |
2008/11/17(月) 05:34:40ID:???
>>73
おお、よろしくお願いします。
0075nobodyさん
垢版 |
2008/11/17(月) 05:52:05ID:???
メアドがテスト用にあぼーんになってたことに気づいたorz

>>74
ごめん、あぼーんって動作テストできないってことに気づいた。
肝心のあぼーん部分がほとんど検証できてないです。

一応ソース↓
http://lcdata.ddo.jp:8080/2ch/1156116687/68/index.phps

1.自分のPCにWeb鯖を立てる。
2.↑のスクリプトを設置する。
3.ブラウザから何度かアクセスして、以下のCSVファイルを吐くことを確認する。
  (1)現在のスレの内容(ただしあぼーん以外/あぼーんされたレスは「あぼーん」って文字が追加される)
  (2)前回のアクセスから増えているレスの内容
4.cronが使えない環境みたいなので、「コントロールパネル>タスク」を使って1時間ごとにアクセスするようにがんばる。

スクリプトがまともに動くなら、CSVファイルからあぼーんされたレスを
抽出するスクリプトを組むのは簡単だと思う。
0076nobodyさん
垢版 |
2008/11/17(月) 06:02:37ID:???
ごめん、あぼーんのとこミスしてた。
たぶんもう大丈夫だと思います。
ソースは↑のやつを更新しました。
007768
垢版 |
2008/11/17(月) 06:48:24ID:???
>>75
おお、有り難うございます。すごいですね。
なにはともあれ、1226517332_new.txtというファイルが出来て、そこにデータが全部入ってるみたいです。感謝、感謝です。
ただ、↓のエラーがどっちゃりでてます。

Notice: Undefined offset: 1 in C:\php\ThreadKeep.php on line 34
Notice: Undefined index: abone in C:\php\ThreadKeep.php on line 72
007868
垢版 |
2008/11/17(月) 06:52:49ID:???
$new_csv[$num]["mail"] = $matches[1];   これが34行目です。
if (!$value["abone"]) {          これが72行目です。
0079nobodyさん
垢版 |
2008/11/17(月) 06:57:43ID:???
>>77
Noticeなのでエラーではなく通知ですね。
PHPの設定で、エラーを拾うレベルが高すぎるんだと思います。
php.iniの「error_reporting」の箇所を↓に修正して、Noticeがでないようにできます。

error_reporting = E_ALL & ~E_NOTICE

エラーはふつうに表示されるのでご安心を。
ホントはNoticeも出ないように作るべきなんだろうけど時間切れです、すいません。
008068
垢版 |
2008/11/17(月) 07:05:46ID:???
>>79
了解しました。有り難うございました。感謝、感謝です。
0082nobodyさん
垢版 |
2008/11/17(月) 20:12:35ID:???
>>81
まだ作りはじめたとこで、アップローダのアもできてない状態です。
おもっくそスレ違いで申し訳なかったです。
0083nobodyさん
垢版 |
2008/11/17(月) 22:47:09ID:???
>>80
あぼーんされたレスだけを別ファイルに保存するようにしてみた。
ソースは同じとこです。
Noticeが出るのは放置してます。
0084nobodyさん
垢版 |
2008/11/18(火) 00:00:51ID:???
ファイルアップローダ程度でDB使うのってどう思いますか?
できるだけ環境を選ばず設置できるようにしたいので使いたくないんですが、
コーディングの煩雑さとパフォーマンスの誘惑に負けそうです。
僕もそうだったけど、「DBって何?聞いたことあるけど」って人は多いですよね。
敷居下げるならDBなしなのかなぁ・・・。
0085nobodyさん
垢版 |
2008/11/18(火) 02:18:16ID:???
ファイルベースが特段煩雑とも思わんが・・・。
素人向けのレンタルスペースでも動くスクリプトを配布したいんなら無しでしょうね。
ただPHPが動くレンタルサーバでDBが入ってないとこなんてあんの?知らないけど。
どちらも押さえときたいなら両方作って配布するとか。
0086nobodyさん
垢版 |
2008/11/18(火) 07:15:17ID:???
>>85
なるほど。
でもやっぱSELECTの手軽さは魅力だと思います。
DBばっか使ってるからファイルベースだとCSVしか思いつかなくて・・・。
ただ、アップローダは自鯖ってのが基本だと思ってます。
XAMPPとか使ってとりあえずDB入れたけど、使い方はさっぱりって人は多いと思うなぁ。
ってことでファイルベースでやってみます。
どうでもいいけど、前スレ見てたら以前もアップローダ作ってたこと思い出したw
完成したんだっけかなぁ・・・。
0087>>65
垢版 |
2008/11/24(月) 21:25:23ID:???
ものすごくどうでもいいことですが、
ルータを買ったらDDNSに対応してたので、URLを変更しちゃいました。
>>65のアップローダは↓で作成中です。
ttp://lcdata.ath.cx:8080/2ch/upload/
0089>>65
垢版 |
2008/11/25(火) 22:54:07ID:???
>>88
すいません、またまたURLを変更しました。
ttp://lcdata.ath.cx/2ch/upload/
こっちでやってます。
まだ作りかけです。
なんでポート80番が使えないんだろ?
とか思ってたんですが、スカイプが使ってることに気づいたのでorz
009068
垢版 |
2008/11/26(水) 15:39:46ID:yZjcfnV8
// レスごとに分解
$thread = @file_get_contents($url);
preg_match_all("/<dt>(.*)/", $thread, $matches);
$res = $matches[1];
if ($res) {
foreach ($res as $key => $value) {
// レス番号
preg_match("/^(\d*)/", $value, $matches);
$num = $matches[1] - 1;
$new_csv[$num]["num"] = $matches[1];
// メールアドレス
preg_match("/<a href=\"mailto:([^\"]*)/", $value, $matches);
$new_csv[$num]["mail"] = $matches[1];
// 名前
preg_match("/<b>([^<]*)/", $value, $matches);
$new_csv[$num]["name"] = $matches[1];
// 名前
preg_match("/<b>([^<]*)/", $value, $matches);
$new_csv[$num]["name"] = $matches[1];
// 時刻
preg_match("/(<\/a>|<\/font>):(.[^I]*)ID:/", $value, $matches);
$new_csv[$num]["time"] = $matches[2];
// ID
preg_match("/(ID:)(.*?)<dd>/", $value, $matches);
$new_csv[$num]["id"] = $matches[2];
// レスの内容
preg_match("/<dd>(.*)/", $value, $matches);
$new_csv[$num]["res"] = $matches[1];
$abone = preg_match("/あぼ.*?ん<\/b><\/a>:あぼ.*?ん<dd>/", $value, $matches);
if ($abone) {
$new_csv[$num]["abone"] = true;
}}}
009168
垢版 |
2008/11/26(水) 15:45:19ID:yZjcfnV8
>>90>>75さんのhttp://lcdata.ddo.jp:8080/2ch/1156116687/68/index.phpsのソースの一部分です。
で、
preg_match_all("/<dt>(.*)/", $thread, $matches);
この行で1レスづつ、配列に入れる。
で、
$res = $matches[1];
この行の意味がわからないです。
$matchesの変数、$matches[1]の変数、$resの変数のそれぞれの違いがわからないのです。
0092>>65
垢版 |
2008/11/26(水) 22:59:01ID:???
>>90-91
いやあの晒されると恥ずかしいですが。
特にそこ適当なんでw
http://jp2.php.net/manual/ja/function.preg-match-all.php
意味はマニュアルに書いてあるとおりです。
どっか動きがおかしいのを修正したいのか、改造したいのか、単純に意味がわからなかったのか、
コードが汚すぎて読みにくいって指摘なのか、PHPを覚えてみようと思ってるのか、
いったいどれでしょうか?

ふと思い出したけど、php.iniのerror_reportingを書き換えなくても、
----------------------------------------
<?php
error_reporting(0);  ←これ追加
----------------------------------------
だけでNoticeは出なくなると思います。
0093>>65
垢版 |
2008/11/26(水) 23:04:25ID:???
超適当に説明しておくと・・・
まず、このスレのソースコードを見てみてください。
各レスが「<dt>〜」って1行になってるのがわかると思います。
まず、$matchesにその各レスが入ります。
$matches[1]には、「"/^(\d*)/"」などの1番目のカッコの中身が入ります。
そんでもって、さらにそのレスに対してpreg_matchをすることによって、
レス番号とか名前とかを切り出してるんです。
$matches[1]をわざわざ$resって変数に入れてるのは特に意味はありません。
009468
垢版 |
2008/11/26(水) 23:56:10ID:yZjcfnV8
>>92
有り難うございます。 確かに、http://jp2.php.net/manual/ja/function.preg-match-all.php
↓が書いてありました。 すみません。

>$matches[0] はパターン全体にマッチした文字列の配列
>$matches[1] は第 1 のキャプチャ用サブパターンにマッチした文字

> どっか動きがおかしいのを修正したいのか
動きは、ちゃんと動いてくれて感動しました。

>単純に意味がわからなかったのか、
はいそうです。

>PHPを覚えてみようと思ってるのか
そうです、これがメインで1行づつ読み解かしてもらってます。

> ふと思い出したけど、php.iniのerror_reportingを書き換えなくても、
> ----------------------------------------
> <?php
> error_reporting(0);  ←これ追加
> ----------------------------------------
> だけでNoticeは出なくなると思います。
有り難うございます。
0095nobodyさん
垢版 |
2008/11/27(木) 10:46:47ID:QDCpWLvT
俺はこれ
error_reporting(E_ALL);

面倒だけど変数をまとめて設定する癖がつくから後々楽だぞ
0096>>65
垢版 |
2008/11/27(木) 20:06:40ID:???
>>95
僕も余裕があればデバッグ中はそうするように心がけてみます。
PHPしか知らないから、変数の宣言とか型とかいい加減な扱いするクセついちゃったなぁ。
0097nobodyさん
垢版 |
2008/11/27(木) 20:12:41ID:???
開発機のphp.iniで設定しときゃいいじゃん
0098>>65
垢版 |
2008/11/27(木) 20:18:28ID:???
>>97
そうですね。
他に何に使ってるわけでもないWeb鯖だし、それでいいと思います。
僕はいつも、↓みたいな感じでログを流しながら作業してます。
tail -f /apache/log/error_log
Windowsで似たようなことってできるのかなぁ。
Cygwinとか試してみよう。
0099nobodyさん
垢版 |
2009/05/19(火) 20:17:57ID:D1418Uic
【設置場所】 http://u9.getuploader.com/kiren/
【ソース】 http://u9.getuploader.com/kiren/download/1/chat.7z
【プログラミング経験】 3ヶ月
【希望評価スタイル】 悪い部分を指摘して欲しい
【自分の性格】 またーり
【備考】
表示部分はJQUERYで、サーバーの部分はPHPで作りました。どうも保守性が悪いような気がするので、
悪い部分があったら指摘してほしいです。
0101nobodyさん
垢版 |
2009/05/21(木) 10:06:33ID:???
>>99
HTMLのエスケープはPHP側でやったほうがいいよ
あとちゃんと見てないからよくわからんが、今HTTPヘッダで取ってくるログを判別してるみたいだけど、
それもPHP経由で重複したデータを取ってこないように。
0102nobodyさん
垢版 |
2009/05/30(土) 11:37:25ID:???
>99
暇だから見てみるか。
とりあえず3秒見たところだが、enter.phpにXSSな。htmlspecialchars()かけろ。
0103nobodyさん
垢版 |
2009/05/30(土) 12:28:09ID:???
load_namefile(&$a, $b)は、$aをそのまま返せばいい。参照渡しで値を返すと可読性が激しく低下する。返り値$iはcount($a)に等しいはずだ。

変数名が手抜きすぎる。$aとか$bとか$cとか$vとかなんの拷問だ。
append_namefile($name, $last_talk_time, $room_number)にするだけで10,000倍読みやすくなる。foreach()とかで使う一時変数も同じ。
「保守性の高いコード」はアーキテクチャが生むんじゃなくて、変数名やインデントなどのミクロな部分が生むんだ。神は細部に宿る。

$_POST["state"]での処理の振り分けは、明らかにifではなくcaseにすべき箇所。

名簿ファイルのロック処理が半端。flock()を信用するならbegin_lock()は不要。
信用しないならflock()が正常に動く事を前提としているbegin_lock()も同じく信用ならない事になるので意味がない。
信用しないならmkdirロックを使うべき。SQLiteかなんかを使ったほうが手っ取り早いが。

flock($fp, LOCK_UN)してはいけない。「鍵を開けた後、ファイルを閉める」までの間にファイルが破壊される。
単に閉じれば安全な形でロックが開放される。
0104nobodyさん
垢版 |
2009/05/30(土) 12:29:19ID:???
メイン処理($_POST["state"]を見て実行される場所)のひとつひとつを関数ないしクラスにした方が、可読性が向上する。
意図をそのまま関数名にしろ。例えば最初のブロックは、そのまま読むと
「ロックを取り、ユーザー名簿を取得し、名簿に書いてある数字がいまの時刻より$_keep_time小さかったら名簿を削除し、名簿を再度書き出す」
わけだが、お前はトップレベルのコードを読んでる時はそうは思考しないだろ?
「長時間退席しているユーザーを蹴る」とか、そういう粒度でこの処理を見るはずだ。ならこの処理は「kick_afk_users()」と関数化すべきなんだ。
トップレベルでやってる処理は多岐に渡るんだから、詳細はいったん別の場所においておくべき。
kick_afk_users();
if($_POST["state"] == "enter"){
 enter_room();
}else if($_POST["state"] == "quit"){
 quit_room();
}else if($_POST["state"] == "sid"){
 if(!in_room($name)){
   enter_room();
 }
 rotate_log();
 add_talk();
とかなってれば、この部分をざっと見るだけでおおざっぱな処理の流れが見て取れるようになる。
0105nobodyさん
垢版 |
2009/05/30(土) 16:37:24ID:???
>>103
99じゃないけど
> flock($fp, LOCK_UN)してはいけない。
これは以外だった。ちょっと調べてみよ。
0106 【23.9m】 電脳プリオン
垢版 |
2012/05/06(日) 15:00:42.23ID:????PLT(12079)

  ∧_∧
  ( ・∀・)            人 ガッ
  (    つ―-‐-‐-‐-‐-‐○ <  >__Λ∩
  人 Y ノ.             V`Д´)/
  し(_)                  /  ←>>21
0107島本町で凄惨なイジメを受けて廃人になった方へ
垢版 |
2014/08/09(土) 16:53:26.10ID:eoXmXjRk
>大阪府三島郡島本町の小学校や中学校は、暴力イジメ学校や。
島本町の学校でいじめ・暴力・脅迫・恐喝などを受け続けて廃人になってしもうた僕が言うんやから、
まちがいないで。僕のほかにも、イジメが原因で精神病になったりひきこもりになったりした子が何人もおる。
教師も校長も、暴力やいじめがあっても見て見ぬフリ。イジメに加担する教師すらおった。
誰かがイジメを苦にして自殺しても、「本校にイジメはなかった」と言うて逃げるんやろうなあ。
島本町の学校の関係者は、僕を捜し出して口封じをするな

子供の時に受けた酷いイジメの体験は、一生癒えない深い傷になる
「暴力とイジメと口裏合わせと口封じ」の町やそういう町に巣食うヤクザ・チンピラ・ゴロツキ・不良・
いじめっ子・殺人鬼・ダニ・ノミ・シラミなどを監視して非難するのは暮らしやすい町を作るのに必要だ
0108nobodyさん
垢版 |
2017/12/30(土) 13:59:10.80ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

AO0UH9L8HP
0110nobodyさん
垢版 |
2023/09/25(月) 03:18:49.75ID:???
(||゚Д゚)ヒィィィ!(゚Д゚||)
レスを投稿する


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