PHPであめ型掲示板
1投稿者:三河人  投稿日:2006/12/04(月)21:55:25
をオリジナルで作ってみる。

つもり。
2投稿者:三河人  投稿日:2006/12/04(月)22:03:27
少しずつ、ちまちまと作る事にする。
PHPをきちんと見るのも今回初めてだし。

Perlに似てるよなあ…とは思ってたけど、全然違うぞヲイ!(笑)
ハッキリ断言出来る!Perlの方が簡単だ!(笑)

いきなり3時間もハマってしまった。
ファイルがどうしても書き込めなくて、訳解らないエラーメッセージが
勝手にバンバン出る。何コレ?「warning」やら何やら…(;´Д`)

原因がやっと解った。
ファイルを書き込むパーミッションが全開オープン(777)じゃないと
エラーこいて書き込めないようです。
こんなんで、セキュリティ大丈夫なのかな…?
なんでPHPなんて流行ってるんだろ?所詮、流行モノなだけな気もする。
CGI負荷がPerlと比べて低いらしいけど、私としては今のところ
全然信用してません。
3投稿者:三河人  投稿日:2006/12/04(月)23:38:24
とりあえず、新規スレが作られるようになった。
今日はここまで。
まだまだ先は長すぎる(笑)

<主な残件>
・追加レスを可能とする
・index?.htmlの作成(スレッドのソート、一覧表示etc)
・削除機能の追加
4投稿者:三河人  投稿日:2006/12/05(火)01:34:50
・追加レス対応
・メール編集

完了。
5投稿者:三河人  投稿日:2006/12/05(火)12:05:21
スレッドのソート処理方法の考察。

現状(Perl版)は毎回、スレッドを降順ソートしてindex.htmlを
生成しているが、これが一番負荷がかかるのは判明している。

これを別の負荷軽減する方法に変えれないだろうか?
例えば、ソート用の「スレ一覧ファイル」を別に作成するようにする。
(続く) 
6投稿者:三河人  投稿日:2006/12/05(火)12:09:20
[スレ一覧ファイル]
    C ← スレッド情報
    B
    A
と、格納されているファイルに、新たにスレッド「D」を作成した時、
[スレ一覧ファイル]
    D ← スレッド情報
    C
    B
    A
こうなるようにする。
7投稿者:三河人  投稿日:2006/12/05(火)12:13:42
更に、スレッド「B」にレスしたら
[スレ一覧ファイル]   [一時テーブル]
    D          B
    C
    B
    A
まずこのように、一時テーブルにセットした後に
[スレ一覧ファイル]   [一時テーブル]
    D     →    B
    C     →    D
    B          C
    A     →    A
と、「B」以外を、スレ一覧ファイルから一時テーブルへ移送し
最後に、一時テーブルの内容で「スレ一覧ファイル」を再作成する。
この、「スレ一覧ファイル」を元にすれば、降順ソートされた形で
スレッド一覧が生成出来ると思う。
8投稿者:三河人  投稿日:2006/12/05(火)19:33:54
メモ。
追加レス方法の見直し。
9投稿者:三河人  投稿日:2006/12/06(水)04:05:40
追加レス方法の修正終了。(多分、こっちの方法が良い)
10投稿者:三河人  投稿日:2006/12/06(水)12:27:48
飲尿5-7って、実は今時の掲示板スクリプトで、やってるみたいだった(;´Д`)
考える事は皆同じというか、sortを使用するのがサポスクだけだったのか…?

という事は少なくとも、方法論として問題無いという事で。
11投稿者:三河人214,000かきこ目げっと!  投稿日:2006/12/07(木)05:19:39
・スレ一覧ファイルの生成
・二重投稿チェック
・リロード機能
・index.htmlへのジャンプ

完了。
12投稿者:三河人  投稿日:2006/12/08(金)01:38:42
飲尿5-7の続きだけど、そういえば昔、IKeJIさんが
これと同じような事を言ってたような気がしないでもない事を思い出した。

当時は意味が良く解ってなかた。
13投稿者:三河人  投稿日:2006/12/08(金)13:58:35
・スレ一覧の表示
・最新スレッド20表示

完了。
だいぶ形になってきた。
14投稿者:三河人  投稿日:2006/12/09(土)04:57:40
<現時点での残件>
・騙り防止機能
・次ページ(index2.html)機能
・スレ/レス投稿時間チェック
・削除機能

これが出来れば、最低ラインは満たすな。
これらが終わったら、
・過去ログ機能
・レス1000機能
・レスリンク機能
・ヘッドライン機能
に取りかかる予定。
15投稿者:三河人  投稿日:2006/12/10(日)04:47:44
<現時点での残件>
・スレ/レス投稿時間チェック
・削除機能
16投稿者:三河人  投稿日:2006/12/10(日)13:58:51
<現時点での残件>
・レス投稿時間チェック
・削除機能
・NGワード機能
17投稿者:三河人  投稿日:2006/12/12(火)00:54:40
PHP使えねえ(;´Д`)
関数の中に関数使用ができねい。

$comm = ereg_replace("([0-9]+)\-([0-9]+)","join(',',(\1..\2))",$comm);

$commの中に「3-5」って指定しても、結果が「join(',',(3-5))」になるし。
「3,4,5」になんねーよ・゚・(つД`)・゚・
18投稿者:三河人  投稿日:2006/12/12(火)01:52:00
謎です。

if(ereg("$ng",$comm)){ 〜

この文法で、$ngの値によっては文法エラーになります。
(例えば、全角数字とか)

Perlの方が、正規表現やらパターンマッチが確実で簡単だなあ。
19投稿者:三河人  投稿日:2006/12/12(火)01:55:41
<今後、解ったら対応する残件>
・削除機能 … 「n-n」指定が出来ない
・NGワード機能  … 指定した文字列によっては、PHP文法エラーになる

上記を除けは、最低ラインは完了。
あめ(仮)レベルの使用範囲であれば、不都合無い形だろう。
20投稿者:三河人  投稿日:2006/12/12(火)02:27:26
とりあえず、暫定公開。

9日間(時間にしたらもっと短いけど)で、ここまで出来たから
まあ自分としては上出来だと思います。PHP初めてにしては。

http://www.mikawaban.com/zor6/
21投稿者:三河人  投稿日:2006/12/12(火)21:40:23
完全に対応出来ない部分があるのが悔しいです。
Perlのように臨機応変に行かないというか、
Perl文法と同じようには動作しない…。

妥協するという事で、大体の対応は完了。

<残件>
・レス1000機能
・ヘッドライン機能
22投稿者:三河人  投稿日:2006/12/12(火)21:42:06
>if(ereg("$ng",$comm)){ 〜
>この文法で、$ngの値によっては文法エラーになります。
>(例えば、全角数字とか)

自己レス。
if(stristr($comm,$ng)){ 〜
としたら、エラーが出なくなりました。
23投稿者:三河人  投稿日:2006/12/12(火)23:41:11
・レス1000機能
・ヘッドライン機能

完了。
後は、細かな機能強化ぐらいかな。
24投稿者:三河人  投稿日:2006/12/13(水)00:16:18
あ、iモードスクリプトが必要だた(笑)

これは数日かかるかな。
25投稿者:三河人  投稿日:2006/12/15(金)02:14:22
iモードスクリプト、完了。
半日くらいだた。
26投稿者:三河人  投稿日:2006/12/15(金)22:36:43
PHPでは、パターンマッチの(.*?)を指定を行うとエラーになるようです。
(.*)や(.+)はOKです。

使えねえ(;´Д`)
27投稿者:三河人  投稿日:2006/12/16(土)09:10:20
メモ。
プロクシ制御追加。
28投稿者:三河人  投稿日:2006/12/17(日)00:08:14
プロクシ制御完了。
29投稿者:三河人  投稿日:2006/12/24(日)22:39:02
http://jp.php.net/mb-convert-encoding

これを使うと、UTF-8からSJISへ変換出来るみたい。
30投稿者:三河人  投稿日:2006/12/26(火)10:03:36
飲尿29だけど、無条件に実行すると、そのまんま無差別に文字列をUTF-8扱い
してしまうので「元の文字列がUTF-8の時のみ実行」とする必要有り。

実用的な方法としては、くずはすくりぷとが行っているように
フォーム内に「name=k value=あ」を定義して
「k=あ」とならない時に、UTF-8→SJIS変換するのが良いと思う。
31投稿者:三河人  投稿日:2007/02/23(金)02:19:13
PHP使えねえよぅ・゚・(つД`)・゚・

ディレクトリ作成(mkdir命令)やファイル作成(fopen命令)する時に
上位ディレクトリのパーミッションが「777」で無いとエラーになって
作成出来ない…。なんてセキュリティの緩い言語なんだ…。

mkdir命令で作成しても、パーミッションが755にしかならないし。
777にするには、chmod命令で改めて変更するしかないし…。

ついでになぜか、mkdir命令で作成したディレクトリの下に
ファイル作成しようとすると、意味不明なエラーになるし…。

PHPって、本当に幅広く使われているものなの?・゚・(つД`)・゚・
32投稿者:三河人  投稿日:2007/02/23(金)14:14:06
だめだ、調べてもそれらしい文献が見つからない。

とりあえず現時点では、以下の事が言える。
・PHPで作成した「ディレクトリ」の下に、PHPでファイルを作成はNG
・FTPツールで作成した「ディレクトリ」の下に、PHPでファイル作成はOK

どうも、見えない部分でPHPで作成したディレクトリには何か制限が働くみたいだ。
33投稿者:三河人  投稿日:2007/02/23(金)14:34:58
続き。
どうも所有者が関係しているみたいだけど
http://sb.xrea.com/showthread.php?t=11141

これを見ても納得出来ない。
「パーミッションを適切な設定にしないとCGIやFTPで操作出来ない」
と書かれているけど、パーミッションを777にしても触れないというのは
問題外の気がする。
34投稿者:三河人  投稿日:2007/02/23(金)14:54:48
関連スレ。
http://sb.xrea.com/showthread.php?t=10619
35投稿者:三河人  投稿日:2007/09/27(木)12:56:33
飲尿33の続き。

PHPをモジュール版(セーフモード)で実行するからいけないのであって、
CGI版ならいける、らしいです。
36投稿者:三河人  投稿日:2007/11/01(木)09:27:58
「.*?>」の文法があった為に、PHPが終了していたバグがあった。
盲点でした。
37投稿者:三河人  投稿日:2007/12/11(火)20:52:54
wing2鯖が落ちてばかりなので、別鯖を借りようと探してますが
「携帯であめ(仮)」がどこも上手く動作しません。困ったものです。

path_infoが無効だったり、コードがEUCデフォだったり、ソケットが
使えなかったり…。
38投稿者:三河人  投稿日:2008/05/17(土)23:14:57
…謎です。

preg_replaceでなぜか最短マッチされない模様。
なんでだろう?
39投稿者:三河人  投稿日:2008/06/12(木)23:00:39
杏堂夏さんがi-modeからのQVGA対応をしたそうで。
#私は、ナニソレ?って感じでしたが(笑)
なるほど、携帯から見れる画像サイズにサムネイルする訳ですね。

んだば、PHP用に考えてみようかと。
以下、参考文献。(取りかかるかどうかは、また後日…)

PHPのGDライブラリを使ってサムネイルの作成
http://noongoro.main.jp/note/note0052.html
ちなみに調べたら、XREAではGDライブラリが使用可能でした。よかた。

【PHP】GDライブラリを使って画像のサムネイルを作成する。
http://goodjob.boy.jp/chirashinoura/id/79.html

PHP GDライブラリで画像のサムネイルを作成
http://sandman.s6.xrea.com/nucleus/item-60.html
40投稿者:三河人  投稿日:2008/06/14(土)02:26:31
飲尿39の対応完了。

PHPは難しかった(;´Д`)
41投稿者:三河人  投稿日:2008/06/20(金)13:12:01
PHPだと、携帯の絵文字コードが化けるから(変換されるから?)表示されないみたいですね。
42投稿者:三河人  投稿日:2008/06/21(土)01:32:31
メモ。
携帯メアドの識別。

DoCoMo
xxxxx@docomo.co.jp

SoftBank
xxxxx@softbank.ne.jp
xxxxx@x.vodafone.ne.jp

au
xxxxx@ezweb.ne.jp
43投稿者:三河人  投稿日:2008/06/22(日)11:21:46
うーむ…。

メール鯖に投稿された、画像&投稿内容を取得する所までは出来ましたが
そこから先がどうしよう…。
私がルールを決めれば良いだけなんですが、なるべくシバリは無くしたいし。

<課題>
・投稿内容を無条件でカキコ可とするか?(画像、本文)
・複数投稿あった場合はどうするか?(投稿が溜まっていた場合)
44投稿者:三河人  投稿日:2008/06/22(日)11:27:31
コレが一番やっかいかもしれない。

<課題>
・画像&本文をどの板へ反映させれば良いのか?
45投稿者:三河人  投稿日:2008/06/22(日)11:49:15
もういっその事、「メールからの画像投稿のみ」の機能だけ独立させて
投稿完了した画像URLを全部表示して、後はご自由にURLコピペ可とする
ようにしようかな。
#複数の人から同時にアプされたら、早いもん勝ち表示に(笑)

んで、メールで本文投稿されても無視させる事に。
(本文は、iモード用でまた投稿し直してもらう)
46投稿者:三河人  投稿日:2008/06/22(日)22:18:59
携帯画像うpメモ。

<携帯投稿.php>
システム日付(080622093010)取得し、メール件名にセットしたものを
リンク表示する。及び、「更新」ボタンも表示

<ユーザ>
メアドURLをクリックしメールを表示、メール送信(画像URLのみ入力)
→メール鯖へメールが届く

<ユーザ>
「更新」ボタン押下し、携帯投稿.phpを実行

<携帯投稿.php>
1.PATH_INFOにて、システム日付、板名、スレッド名を取得
2.メール読み込み
3.1.と一致するメールを取得(件名よりシステム日付を取得)
4.画像出力(080622093520.jpg) ※最新システム日付がファイル名
5.「画像うp完了」を表示し、画像URL及び「スレッドへ戻る」リンクを
  表示(スレッド情報は、1.より取得)
47投稿者:フレイ  投稿日:2008/11/29(土)15:09:32
PHP版は更に設置が難しいんでしょうか。。。
48投稿者:三河人  投稿日:2008/11/29(土)21:23:52
>フレイさん

いいえ、三河版スクリプトに比べれば遥かに簡単です。
万が一、エラーが発生しても(レンタル鯖によりますが)
エラー行が表示されるので、どこがいけないのかすぐに解ります。
というか「スクリプトは触ってはいけない」事になっているので
エラーが出る可能性はあっても、動作しない事はまずありません。

一番の問題点は、「スクリプトを絶対に改変しない事」という
ルールを守らない人が一番多い事です。
これを守らない人が多いので、配布条件は非常に厳しくしています。
49投稿者:フレイ  投稿日:2008/11/30(日)10:40:28
ぜひぜひとも使わせて頂きたかったんですが、サーバーがモジュール版非対応でした(笑)
50投稿者:三河人  投稿日:2008/11/30(日)14:50:48
昨日試したら、ロリポップで動いたんですけど気のせいかな?
利用したくなったら連絡下さい。
51投稿者:三河人  投稿日:2008/11/30(日)15:30:36
あと、実際にざーVIで利用してみて、機能に満足したならになりますが。
基本的にこれ以上の機能拡張は出来ないと思って下さい。

くどいですが、スクリプトは触れないので。
投稿者 メール

新着レス 次の50個 レス全部を見る 掲示板に戻る 上へ