【PHP】自作スクリプト発表会
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/03/30 11:55ID:M/C/V7hb初心者が書いた入門スクリプト、ベテランが書いたすげースクリプト。
発表してね。
予めスクリプトの内容を明記してURLを貼り付けるのがよろしいかと。
マターリ進行でいきませう。
PHPが使える無料サーバ情報(レッツPHP!):
http://php.s3.to/php/
0654nobodyさん
2006/03/06(月) 19:41:27ID:???コメントが無駄すぎるね
0656nobodyさん
2006/03/06(月) 19:48:06ID:???> 全体の流れの中においてその処理が持っている意味を書くこと。
> その処理がどういう動作をしているかは書かなくてもいいです。
意味と動作の具体例みたいなのを教えてください。アホですみません。
0657nobodyさん
2006/03/06(月) 20:15:04ID:???具体例ねえ。難しいなあ。
とりあえず、参考として、似たようにアルゴリズムが複雑なプログラムのソースコードを
ここでも晒してみるか。Java だけど。ちなみに、以前他の板のスレで晒したものです。
http://trashtoy.dw.land.to/works/PrimeFinder.java
上で偉そうなことを言っておきながら、あまり参考にならないかも。すまん。
0658nobodyさん
2006/03/06(月) 20:16:16ID:???動作:関数の説明
意味:なぜその関数を利用するか
650の書き方は、スクリプトの解説サイトではよく見るけど、
リファレンス読まなくなって、別の使い方とか知らないままで終わるから諸刃の剣。
0659650
2006/03/06(月) 20:16:22ID:???perlどころかPHPも良くわかってない。
いま直し&考え中。。
>>653
> そんなことは、PHPの文法が分かる人間だったら誰でも分かるんだから
今までの流れから、このスレには「PHPの文法がわかる人間」が
そんなに多くないと解釈したうえでのコメント文です。(自分を含め)
653さんとは前提が違うようです。
しかし、わかる人間にはうざ過ぎて読むことすらして
もらえないということは良くわかりました。
普段こんなことはやってません。
これは関数なので、書くとしたら
//概要:$usernameに#が含まれていた場合にトリップを付加して返す
//引数:$username(string)
//※:「#」以降8byteまでがトリップ生成に使われる
//戻り値:「名前◆trip」または「名前」(string)
//※:tripは「0-9A-Za-z/.」の64種類中から10文字
とか関数上部に書くくらいです。
汚いもの載せてごめんなさい。
0661nobodyさん
2006/03/06(月) 20:39:08ID:???>>659 の言うことも分かった。晒して損したかも(´・ω・`)
>>657 はどう見ても五十歩百歩です。本当にありがとうございました。
ただ、分からない人に対する説明だとしても、やっぱり書き方はあると思う。
例えば書き方の一貫性。「○○を××します」っていう風に、
文として完結させることをすべてのコメントで徹底するだけでもだいぶ違うし。
0662nobodyさん
2006/03/06(月) 20:41:02ID:???// もし○○ならば
if(〜〜〜){
// ××を行う
do_something();
}
この書き方ってなんとなく嫌いです。昔は自分もやってたけど。
// もし○○ならば××を行う
if(〜〜〜){
do_something();
}
このほうが分かりやすいと思う。(コメントの文体に一貫性が出来るのとあいまって)
0663nobodyさん
2006/03/06(月) 20:44:57ID:???//xxxをxxxしてxxxする
〜
〜
〜
←空行
1行だけの説明なら同じ行に
〜//xxxする
0665nobodyさん
2006/03/07(火) 00:01:38ID:???0667nobodyさん
2006/03/07(火) 00:26:48ID:???2chの中ぜんぜん知らないから今どうなってるのかわかんないなぁ
0669nobodyさん
2006/03/07(火) 17:07:05ID:???程々にね。
0670nobodyさん
2006/03/07(火) 18:12:42ID:???0672nobodyさん
2006/03/09(木) 11:51:48ID:???0673nobodyさん
2006/03/10(金) 08:05:38ID:???XHTML1.1形式で出力する画像掲示板作ってる。xmlにxsltかませる部分のせる。
DBのデータ変換部分は省略。
$xml = なんかXMLな文字列
$xsl = new XSLTProcessor();
$xsl->importStyleSheet( DOMDocument::load("xhtml11.xsl") );
$xhtml = $xsl->transformToXML( DOMDocument::loadXML($xml) );
echo $xhtml;
PHPのマニュアルにのってるやり方真似してるだけですけど。
これだとどんな形式にもできていいですね。
XMLやらXSLTやらXPathやら覚えるの多すぎ。
とりあえず一晩でできたのはここまで。。(実際にはXSLT書いたりするのに一番苦労した)
PHPのDOM拡張モジュールとかXSL関数は便利なのでみなさんつかいませう。
http://jp2.php.net/manual/ja/ref.xsl.php
http://jp.php.net/manual/ja/ref.dom.php
素人がPHPでXML使うことを覚え始めて浮かれてるだけなのであんまり気にしないでください。。
0674nobodyさん
2006/03/11(土) 10:18:41ID:???0675ちんこ先生 ◆Qm364jaZpk
2006/03/12(日) 04:46:59ID:???ID認証型SSL式決済システム。
すぐ消す。リカーリングつき
0676nobodyさん
2006/03/12(日) 05:03:32ID:???0677ちんこ先生 ◆Qm364jaZpk
2006/03/12(日) 05:45:58ID:???0679nobodyさん
2006/03/12(日) 12:31:24ID:???tumanewwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!!!!!!!!!!!!!!
0680nobodyさん
2006/03/12(日) 13:04:58ID:???0681nobodyさん
2006/03/12(日) 17:40:24ID:???0682nobodyさん
2006/03/12(日) 19:25:34ID:???自分の無知を棚に上げるな
0683nobodyさん
2006/03/12(日) 20:54:27ID:???あほか。お前らが信用できるうpロダを用意しろつってんだよ。
てきとーに選んであげたらまた文句言われるかもしれんだろ?
少しは脳みそ使え池沼。
0686nobodyさん
2006/03/13(月) 00:06:17ID:???0688nobodyさん
2006/03/13(月) 12:00:18ID:???今、試してみましたよ。
allow_call_time_pass_referenceが Onじゃないとtime.phpでwarnningが出まくるんですね。
家の環境(4.3.11エントロピ)では、Offに設定してあったので、ちょっとたまげました。
readmeに一言書いてあると良いかも?
0691646
2006/03/13(月) 16:11:36ID:???ありがとうございます。
こちらの環境でも allow_call_time_pass_reference を OFF にして動作チェックをしてみます。
>>689
よろしければエラーの記述をコピペしていただけると助かります。
0692nobodyさん
2006/03/13(月) 16:31:11ID:???俺の環境はshort_open_tagがoffなので動かない
タイトルが<?= MEMO_TITLE ?>
0693646
2006/03/13(月) 17:26:13ID:???なるほど。XML宣言を含むXML文書を簡単に出力したい人なんかは、
やっぱり short_open_tag をOFFにしたいですよね。
short_open_tag を OFF にしても動くように修正してみます。
0695646
2006/03/13(月) 19:19:55ID:nDHgXPavhttp://trashtoy.dw.land.to/app/memo/memo.zip
>>688 の foreach に関するエラーの件について。
自分の憶測なのですが、Webサーバーが
<input type="checkbox" name="arr[]" value="hoge">
形式のパラメータを解釈できないのかもしれません。
0697nobodyさん
2006/03/13(月) 19:35:05ID:???ごめん688じゃなく689でした。
配列がないよってえらーでしたね。たしか。
0698646
2006/03/13(月) 20:21:38ID:nDHgXPavバグが見つかったので更新しました。
http://trashtoy.dw.land.to/app/memo/memo.zip
どうもありがとうございます。
削除する際に、一部のPOSTパラメータが配列ではなくスカラー値だった場合
foreach 内で >>697 のエラーが起こるようになってました。
普通に使っている限りではそのようなことは起こらないと思うので、
>>689の現象はいまだに謎なのですが・・・。
ただ、少なくとも POST パラメータを改ざんすればエラーが発生するのは事実なので
これはれっきとした脆弱性だということで対処しました。
>>689の現象は起こらなくなるはずです。
0700646
2006/03/14(火) 02:24:22ID:???それは、どうも。
でも、やらないほうがいい悪い癖なんかもたくさんあると思うので、
あまり鵜呑みにしないほうがいいかもです。
ここに晒した時点で、もうこれだけ不具合が発覚しているわけですし。
0703nobodyさん
2006/03/14(火) 05:25:57ID:???0704nobodyさん
2006/03/15(水) 10:00:07ID:???配布サイトよりも解説サイトの方が 646氏は有名になれる希ガス。
そういうのは目指していないのかもしれないけど、コードを見ていて
そう思ったです。
0705nobodyさん
2006/03/16(木) 07:38:03ID:???0706nobodyさん
2006/03/16(木) 07:54:20ID:???読む人は他にいるんだから。
0707nobodyさん
2006/03/16(木) 08:26:13ID:???0709nobodyさん
2006/03/16(木) 19:54:09ID:???そんなことより先に技術見に付けろと言いたいが
0711nobodyさん
2006/03/16(木) 20:34:32ID:???スルーできてないじゃん
てかバーカwwwってガキかよ。。
スルーするならアンカーつけんな
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>"などの文字列を登録しちゃったらアウトですよね。
自己責任、と言いたいところだけど、やっぱり将来的には
特殊文字関連の扱い方をしっかり考えていきたいところです。
■ このスレッドは過去ログ倉庫に格納されています