【PHP】自作スクリプト発表会
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/03/30 11:55ID:M/C/V7hb初心者が書いた入門スクリプト、ベテランが書いたすげースクリプト。
発表してね。
予めスクリプトの内容を明記してURLを貼り付けるのがよろしいかと。
マターリ進行でいきませう。
PHPが使える無料サーバ情報(レッツPHP!):
http://php.s3.to/php/
0713nobodyさん
2006/03/16(木) 20:51:07ID:???春だなぁ・・・
0714nobodyさん
2006/03/16(木) 20:59:57ID:???頼むから「逝ってよし!」とか使わないでくれよ
0715nobodyさん
2006/03/16(木) 21:02:29ID:???おいおい「春」って・・・ 2ch初心者かよwww
頼むから「逝ってよし!」とか使わないでくれよ
お前恥ずかしいからそろそろやめとけ
0717nobodyさん
2006/03/16(木) 21:18:29ID:???>>715
「春」だの常用しちゃって、恥かしいのはお前だろw
皿仕上げ
文末にw付けてるお前のほうが恥ずかしいよ
0719nobodyさん
2006/03/16(木) 21:19:35ID:???頼むから「逝ってよし!」とか使わないでくれよ
0720nobodyさん
2006/03/16(木) 21:19:50ID:???0721nobodyさん
2006/03/16(木) 21:28:25ID:???飽きない奴らだな
0722nobodyさん
2006/03/16(木) 21:32:48ID:???だからスルーしろって
春だなぁ・・・
ブチキレてやんのwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0723nobodyさん
2006/03/16(木) 21:33:44ID:???>悔しかったら何か晒してみろバーカwww
スルーできてないじゃん
てかバーカwwwってガキかよ。。
スルーするならアンカーつけんな
皿仕上げ
文末にw付けてるお前のほうが恥ずかしいよ
0724nobodyさん
2006/03/16(木) 21:34:52ID:???>>710=>>712=>>714=>>716
こういうのまだ居るのか・・・
(ノ∀`) アチャー
0725nobodyさん
2006/03/16(木) 21:36:02ID:???0727nobodyさん
2006/03/16(木) 21:40:15ID:???0728646
2006/03/16(木) 21:44:23ID:???分かりやすいコメントの書き方って難しいよね。
>>709
ぶっちゃけ、綺麗なアーキテクチャにとことんこだわるタイプです・・・。
自分はSEとかには向いてないだろうなーと思う。
納期とか守る自信ないし、やっつけ仕事的なコーディングをすることに耐えられないと思う。
0731nobodyさん
2006/03/16(木) 22:11:08ID:???0732nobodyさん
2006/03/16(木) 22:14:40ID:???>>710,>>712,>>714,>>716,>>719,>>722,>>723,>>724,>>725,>>730
両者そろそろうざい
それと>>730
煽るなら失敗はするなよ、自分をアンカーに入れて何がしたいんだ
0736nobodyさん
2006/03/16(木) 22:40:15ID:???0738nobodyさん
2006/03/17(金) 00:49:06ID:???0739nobodyさん
2006/03/17(金) 00:52:50ID:???( ‘д‘)
⊂彡☆))'A`)>738
0741nobodyさん
2006/03/17(金) 10:29:27ID:???このメモ編集システムおもしろそう
0742646
2006/03/17(金) 15:21:30ID:???それは、どうも。
このスクリプトって、外面的には、
初心者が勉強の一環として試しに作ってみた程度の機能しかついてないですけどねw
内面(セキュリティの面など)はそれなりのレベルまで高めてあるつもりですが。
0743nobodyさん
2006/03/17(金) 21:13:37ID:???セキュリティ重視なら表示くらいエスケープしなきゃだめじゃないっすかw
たぶんIEでしかチェックしていないんだと思いますけどFirefoxやOperaだと
削除できなくなりますよよよ。
それからPHP4で配列受けは大丈夫なんでしたっけ?
Windows版は今でも下みたいのをPOSTすると異常な動作しますけど。
$str = 'str';
for ($i = 0; $i < 10000; $i++) {
$str .= '[]';
}
$str .= '=test';
0744646
2006/03/17(金) 22:49:09ID:???WinIE, Firefox(Win), Opera に加え、MacIE, Safari, Firefox(Mac), Konquerer(Linux) でもテストをしました。
削除できないとのことですが、よろしければそちらの環境を教えていただけますでしょうか?
出来るだけ環境に依存しない仕様にしたいので。
> セキュリティ重視なら表示くらいエスケープしなきゃだめじゃないっすかw
このスクリプトは、サーバーの管理権限を持つユーザー(サイト運営者など)のみが
データの編集を行うことを想定しているため、
タグや実体参照のエスケープはしないようにしました。
ただし、万が一悪意のあるユーザーにログインされてしまうと、
クロスサイトスクリプティングによる攻撃を受ける可能性があるため
その危険性については readme.txt 内で言明してあります。
wiki や掲示板など、不特定多数のユーザーがデータを編集できるシステムについては
当然ながらデータを適切な形に変換する処理が必要だと思います。
0745nobodyさん
2006/03/17(金) 22:54:06ID:???そんなの言い訳に逃げてちゃいかん
XSS対策しておくに越したことはない
0746646
2006/03/17(金) 23:08:26ID:???自由にタグとか使えたほうが便利なんだけどな・・・(´・ω・`)
でも、利便性よりセキュリティを取る人もいるだろうし、
今後は、データにXSS対策を施すかどうかを
設定できるようにしたほうがいいかもしれないですね。
0747nobodyさん
2006/03/17(金) 23:10:22ID:???使えるタグを設定できるようにすればいい
0748nobodyさん
2006/03/17(金) 23:42:06ID:???わざわざ認証つけて管理者しか使えないようにしてるんだから、
十分な気がするよ。
0749nobodyさん
2006/03/17(金) 23:54:15ID:???0750646
2006/03/18(土) 00:23:10ID:???nucleus のソースをダウンロードして中身を見てみた。
似てるのかな?w
コメントが Javadoc 形式なのは同じだと思います。
0751nobodyさん
2006/03/18(土) 19:19:19ID:???入力されるデータによって操作できなくなるのは問題だな。
plaintext要素なんて使う奴居ないだろうけど。
>>737
PHP4.4以後の事を言ってるんだろうが
実行環境言わない奴はよく訓練されたベトコンだ。
0752nobodyさん
2006/03/18(土) 19:23:31ID:???よくわかった。
0753nobodyさん
2006/03/18(土) 22:32:16ID:???出たよ
0754646
2006/03/19(日) 01:02:35ID:???あ〜。なるほど。
例えば終了タグを閉じわすれたりとかね。
故意でやることはないと思うけど、"</form>"などの文字列を登録しちゃったらアウトですよね。
自己責任、と言いたいところだけど、やっぱり将来的には
特殊文字関連の扱い方をしっかり考えていきたいところです。
0755nobodyさん
2006/03/19(日) 01:05:31ID:???0756nobodyさん
2006/03/19(日) 01:09:08ID:???0757743
2006/03/19(日) 16:34:19ID:???ベトコンのことは良く知りません。ベタコンなら知ってます。
>>754
そゆことです。
>>752
参加しやすいようにテンプレ作っといたから使ってみてちょ。
【設置場所】 http://example.com/test.php
【ソース】 http://example.com/test.txt
【プログラミング経験】 3ヶ月 / 1年 / 3年
【希望評価スタイル】 悪い部分を指摘して欲しい / 良い部分を指摘して欲しい
【自分の性格】 かかってこいや! / またーり / 叩かれると自殺しちゃうかも
【備考】 B90/W58/H86 です。
0759nobodyさん
2006/03/19(日) 17:59:34ID:???0760nobodyさん
2006/03/19(日) 18:40:58ID:ShpQS04P【プログラミング経験】 6ヶ月
【職業】 工房(2年)
【備考】
掲示板を製作していたのですが、受験勉強のため、泣く泣く開発を中断しました。
どうせいじれないソースなら、公開してみなさんの意見を聞いたほうがいいと思っ
たので公開します。
サーバの設定に依存するところが多いので、設定ファイルも一緒にダウンロードで
きるようにしました。動かしたい人はそれを使ってください。
0761760
2006/03/19(日) 18:49:47ID:???・サーバルートにはbbs/publicディレクトリを指定してください。
・bbs/php_includes/parts/conf.phpのBASE_DIRは適宜変更してください。
説明が下手ですね…
0762nobodyさん
2006/03/19(日) 18:51:51ID:???0764760
2006/03/19(日) 18:57:18ID:???私ですか? 私はやってませんけど、以前兄がやってたみたいです。
googleのインデックスにそれっぽいのが残ってますね。
私も公開したスクリプトでアフィリエイトしようかとたくらんで
いたのですが、開発が面白すぎるので、もうそっちはどうでもい
い感じです。
0765nobodyさん
2006/03/19(日) 18:58:16ID:???0767nobodyさん
2006/03/19(日) 23:13:03ID:???う〜ん、この状態だと自分専用で他人が動かしてみようと言う気分にならないような。
標準で関数が揃っているものは自動化推薦(pathとか)
動かしてないからわかんないけどエラー処理が弱そうなのでその辺も強化すべし。
全体としてはこぎれいではあるけど読んで面白いプログラムではなさそうかな。
まあ、まずはプログラムより受験だね。
0769nobodyさん
2006/03/20(月) 15:22:06ID:???情報系の工房ならまぁ普通
0770760
2006/03/20(月) 15:55:01ID:???>>768
>>769
ソースをダウンロードしていただいてありがとうございます。
>>767
pathの解析などは、自分でも無駄が多いと思っていたので、息
抜き時間ができたら、またいじくってみます。アドバイスあり
がとうございました。
>>768
そういっていただけるとうれしいです。受験勉強もガンガリます。
>>769
工でも情でも、ましてや商でもなく普通の工房です。
ちなみに、サーバのドキュメントルートにbbsフォルダごとぶっこ
んで、bbs/public/index.phpにアクセスするだけで動くように調整
してみました。(要 Apache & PHP5)
【ソース】 http://www2.nct9.ne.jp/dorayaki/bbs.zip
0771nobodyさん
2006/03/21(火) 22:35:49ID:???面白いものを作ろうと思ったら高校レベルの数学は必須だと思うぞ。
1例としてサイトを紹介しようと思ったけど時間の浪費になると思うのでやめとく。
とにかく今は勉強すれ。絶対損はしないから。
0772646
2006/03/22(水) 01:39:04ID:WKCyChdz【設置場所】 http://trashtoy.dw.land.to/app/uri/
【ソース】 http://trashtoy.dw.land.to/app/uri/uri.zip
【プログラミング経験】 3年
【希望評価スタイル】 重箱の隅をつっつくような細かい指摘もどしどしお願いします。
【自分の性格】 アーキテクチャにとことんこだわるタイプ。納期を守るのはたぶん苦手。
【備考】 現在、この uri モジュールを使って memo システムのアドバンス版を作成中。
>>760
高3でここまで作れるのは正直凄いと思う。僕が高3のときはPCに関してはド素人だったし。
受験も頑張ってね! ちなみに自分はただいま就活の現実逃避中。
0775nobodyさん
2006/03/22(水) 16:36:36ID:???parse_url が扱うことが出来るのはあくまでも URL (Uniform Resource Locator) なので。
機能拡張して、URI (Uniform Resource Identifier) 全般を扱えるようにしたかった。
あと、このモジュールは ABNF に厳密に対応しているんだけど(まだ一部だけ手を抜いてるけど)、
将来的には、この文法に動的に制限を加えて書式を限定できるようにすることも視野に入れてます。
(例えば、"mailto:メールアドレス" 形式だけを受け付けられるようにしたり)
このシステム自体は、uri.php のテストのために作っただけです。
0776nobodyさん
2006/03/22(水) 16:39:15ID:???私は>>760さんと同じ高2です。
もし良ければ、そのサイトを教えていただけませんか?
数学はVは積分法の応用、Cは統計と確率が残っていますが、まだ厳しいでしょうか?
というのも、プログラミングで遊ぶのはこの春休みまでにしてパソコンは封印し、そのかわりに今のうちに多くのことを見ておきたいと思っています。
プログラミングは1年半で、CとC#とPHPしかできません。
0777nobodyさん
2006/03/22(水) 17:50:21ID:???0778nobodyさん
2006/03/23(木) 02:17:21ID:???自分で複雑なアルゴリズムでも作るのか
0779nobodyさん
2006/03/23(木) 02:30:04ID:???0781nobodyさん
2006/03/23(木) 09:44:11ID:???0782nobodyさん
2006/03/23(木) 10:23:45ID:???> 数学なんてプログラミングにいるか・・・?
> 自分で複雑なアルゴリズムでも作るのか
いるに決まってるだろアホ。
てめえみたいなのがいるからプログラマの単価がさがるんだよ。
氏ね
0783nobodyさん
2006/03/23(木) 10:28:18ID:???0784nobodyさん
2006/03/23(木) 10:32:05ID:???ゲームプログラマですらその程度では
足りね。
くだらね。
0785nobodyさん
2006/03/23(木) 11:04:16ID:???プログラミング歴6ヶ月の高校生に追い抜かれた
0786nobodyさん
2006/03/23(木) 16:02:52ID:???0787nobodyさん
2006/03/23(木) 16:06:16ID:???0789nobodyさん
2006/03/23(木) 18:44:26ID:???0790nobodyさん
2006/03/27(月) 11:59:22ID:???0792nobodyさん
2006/03/27(月) 15:28:48ID:???0793nobodyさん
2006/03/27(月) 15:40:19ID:???0794nobodyさん
2006/03/27(月) 15:43:30ID:???0797nobodyさん
2006/03/29(水) 10:35:32ID:???0798nobodyさん
2006/03/29(水) 12:38:19ID:???どうぞー
http://life.my.land.to/src/Send_Mail.zip
0799646
2006/03/29(水) 22:22:44ID:???確かに、このシステムの場合だったら
パスワードのみが書かれたテキストファイルさえあれば十分なんだけど、
より汎用的な認証モジュールを活用したため、結果的に XML フォーマットになりました。
このモジュールが XML を扱う理由は2つあって、
まず、一番大きい理由が、自分ルールのフォーマットを作りたくなかったこと。
例えば 「ログイン名とパスワードを ":" で区切って、各ユーザー情報を改行で区切る」
みたいなものです。
自分ルールの何が嫌かと言うと、そのソースを見る人が苦労するかもしれないから。
まあ、上の例で挙げたようなルールだったら簡単に推測できるだろうけど。
その分、XML の場合はフォーマットの中にそのデータの意味を含めることが出来るので
(このモジュールのXMLの場合は、要素名に name や password という単語を使っている)
より分かりやすいフォーマットになると思ったのです。
次に、応用が簡単なフォーマットであること。
W3C から勧告されている、XML 関連の様々な技術の適用対象となるので
例えば、第三者がこのスクリプトを拡張してこのパスワードファイルを別な用途にも使いたい
なんて時に、応用が簡単になる可能性があります。
フォーマットをYAMLにしなかった理由はここにあります。
0800646
2006/03/29(水) 22:27:21ID:???まず、その他の認証システムとモジュールを共有できること。
それぞれのシステムで共通したモジュールを使うすることで、モジュールの数を少なくすることができるし、
もしもこの認証モジュールにバグが見つかって複数の認証システムに影響がおよんだ場合でも、
1つのファイルだけをアップデートすれば済みます。
あと、リファクタリングが容易なこと。
例えば、今はパスワードだけでログインするようになってるけど、
今後のバージョンアップで、ログイン名+パスワードでログインできるような仕様にして
さらに複数の認証情報を登録できるようにしたい、なんてことがあっても
最小限の変更で実現できるようになります。
まあ、実際はそういう変更はしないと思うので、これは利点とはいえないけど。
0801nobodyさん
2006/03/30(木) 09:28:10ID:???って言われた
0802646
2006/03/30(木) 15:41:19ID:???あー、関数の返り値をそのまま他の関数に参照渡ししてますね。報告thx。
ttp://blog.ohgaki.net/index.php/yohgaki/2005/07/13/
というわけで修正しました。
http://trashtoy.dw.land.to/app/memo/memo.zip
この手のエラー、他のところでもやってそうで怖い(´・ω・`)
0803nobodyさん
2006/04/02(日) 11:15:08ID:???下のコードのように返り値を直接代入するとエラーで、上のように一旦変数に入れればOKってこと?
0804nobodyさん
2006/04/02(日) 13:38:08ID:???0805nobodyさん
2006/04/02(日) 13:53:00ID:???あくまでも、駄目なのは「参照渡し」ね。
function &hoge(){
static $x = 1;
return $x;
}
function increment(&$value){
$value ++;
}
$a = hoge();
$b =& $a;
increment($b); // これはOK
increment(hoge()); // これは駄目
0806nobodyさん
2006/04/02(日) 15:42:20ID:???0807nobodyさん
2006/04/02(日) 16:44:05ID:???0808nobodyさん
2006/04/02(日) 18:38:47ID:???0809nobodyさん
2006/04/02(日) 18:45:04ID:???0810nobodyさん
2006/04/02(日) 19:17:40ID:???0811772
2006/04/07(金) 19:27:39ID:jJE5oi/7相対 URI も解釈可能です。
【設置場所】 http://trashtoy.dw.land.to/app/uri/
【ソース】 http://trashtoy.dw.land.to/app/uri/uri.zip
【プログラミング経験】 3年
【希望評価スタイル】 重箱の隅をつっつくような細かい指摘もどしどしお願いします。
【自分の性格】 アーキテクチャにとことんこだわるタイプ。納期を守るのはたぶん苦手。
【実行例】
http://trashtoy.dw.land.to/app/uri/?uri=..%2Fsection%2F1.html%23TOC&base=http%3A%2F%2Fexample.com%2Fsitemap%2Findex.html
http://trashtoy.dw.land.to/app/uri/?uri=file%3A%2F%2F%2FC%3A%2FProgram%2520Files%2FInternet%2520Explorer
http://trashtoy.dw.land.to/app/uri/?uri=mailto%3Athis_is_a_test@example.com
【備考】 花見をもっと楽しみたかった。
0812nobodyさん
2006/04/07(金) 20:27:29ID:???乙
スクリプト指摘じゃないですが
http://trashtoy.dw.land.to/app/uri/
「省略化」になってる。
■ このスレッドは過去ログ倉庫に格納されています