トップページ⇒php
997コメント327KB

【PHP】自作スクリプト発表会

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/03/30 11:55ID:M/C/V7hb
自分が書いたPHPスクリプトを発表するスレ。
初心者が書いた入門スクリプト、ベテランが書いたすげースクリプト。
発表してね。
予めスクリプトの内容を明記してURLを貼り付けるのがよろしいかと。
マターリ進行でいきませう。

PHPが使える無料サーバ情報(レッツPHP!):
http://php.s3.to/php/
0797nobodyさん2006/03/29(水) 10:35:32ID:???
少佐どこ?
0798nobodyさん2006/03/29(水) 12:38:19ID:???
>>795
どうぞー
http://life.my.land.to/src/Send_Mail.zip
07996462006/03/29(水) 22:22:44ID:???
>>796
確かに、このシステムの場合だったら
パスワードのみが書かれたテキストファイルさえあれば十分なんだけど、
より汎用的な認証モジュールを活用したため、結果的に XML フォーマットになりました。

このモジュールが XML を扱う理由は2つあって、
まず、一番大きい理由が、自分ルールのフォーマットを作りたくなかったこと。
例えば 「ログイン名とパスワードを ":" で区切って、各ユーザー情報を改行で区切る」 
みたいなものです。
自分ルールの何が嫌かと言うと、そのソースを見る人が苦労するかもしれないから。
まあ、上の例で挙げたようなルールだったら簡単に推測できるだろうけど。
その分、XML の場合はフォーマットの中にそのデータの意味を含めることが出来るので
(このモジュールのXMLの場合は、要素名に name や password という単語を使っている)
より分かりやすいフォーマットになると思ったのです。

次に、応用が簡単なフォーマットであること。
W3C から勧告されている、XML 関連の様々な技術の適用対象となるので
例えば、第三者がこのスクリプトを拡張してこのパスワードファイルを別な用途にも使いたい
なんて時に、応用が簡単になる可能性があります。
フォーマットをYAMLにしなかった理由はここにあります。
08006462006/03/29(水) 22:27:21ID:???
ちなみに、このシステムでこの認証モジュールを使う利点も2つあります。

まず、その他の認証システムとモジュールを共有できること。
それぞれのシステムで共通したモジュールを使うすることで、モジュールの数を少なくすることができるし、
もしもこの認証モジュールにバグが見つかって複数の認証システムに影響がおよんだ場合でも、
1つのファイルだけをアップデートすれば済みます。

あと、リファクタリングが容易なこと。
例えば、今はパスワードだけでログインするようになってるけど、
今後のバージョンアップで、ログイン名+パスワードでログインできるような仕様にして
さらに複数の認証情報を登録できるようにしたい、なんてことがあっても
最小限の変更で実現できるようになります。
まあ、実際はそういう変更はしないと思うので、これは利点とはいえないけど。
0801nobodyさん2006/03/30(木) 09:28:10ID:???
Fatal error: Only variables can be passed by reference in c:\program files\apache group\Apache\htdocs\memo\lib\notation_finder.php on line 27

って言われた
08026462006/03/30(木) 15:41:19ID:???
>>801
あー、関数の返り値をそのまま他の関数に参照渡ししてますね。報告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:???
>>803
あくまでも、駄目なのは「参照渡し」ね。

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:???
矢切の渡しはOK?
0807nobodyさん2006/04/02(日) 16:44:05ID:???
アリの戸渡りはOK?
0808nobodyさん2006/04/02(日) 18:38:47ID:???
矢口の渡に住んでいた事があるので、すべてOKです。
0809nobodyさん2006/04/02(日) 18:45:04ID:???
807はエロい人
0810nobodyさん2006/04/02(日) 19:17:40ID:???
渡哲也と渡瀬恒彦は兄弟
08117722006/04/07(金) 19:27:39ID:jJE5oi/7
772 で公開した URI の validation システムをバージョンアップしました。
相対 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%[email protected]
【備考】 花見をもっと楽しみたかった。
0812nobodyさん2006/04/07(金) 20:27:29ID:???
>>811
乙

スクリプト指摘じゃないですが
http://trashtoy.dw.land.to/app/uri/
「省略化」になってる。
08138112006/04/07(金) 20:55:22ID:jJE5oi/7
>>812
うっわ。なんで今まで気づかなかったんだろう・・・orz
サンクス(´・ω・`)
08148112006/04/10(月) 03:54:11ID:DfPzV1/O
このスレで今までに晒したやつをサイトにまとめてみた。

http://trashtoy.dw.land.to/
0815nobodyさん2006/04/15(土) 13:21:58ID:yIhdR1Yt
あげ
0816nobodyさん2006/04/15(土) 16:05:13ID:???
>>814 乙。
0817nobodyさん2006/04/28(金) 21:35:11ID:H79nRM7w
キッズgooのNGワードチェックツール
フォームに入力した内容でURLを生成し、それ踏んで確かめるといった2パス構成

【設置場所】 http://www20.cds.ne.jp/~yugen/kgcheck.php
【ソース】 http://www20.cds.ne.jp/~yugen/pool/kgcheck.php.txt
【プログラミング経験】 2ヶ月(PHP以外も含めるなら15年ぐらい)
【希望評価スタイル】 好きにしてちょ
【自分の性格】 ぬるぽ
【備考】 キッズgooに"秘密"で引っかかってたので 工エェェ(´Д`)ェェエ工 と思いつつ、
     いろいろ調べるために作ってみたです。
0818nobodyさん2006/04/29(土) 12:55:47ID:???
>>817
コメントのしようがない。
0819nobodyさん2006/04/29(土) 13:00:42ID:???
確かにw
0820nobodyさん2006/04/29(土) 14:43:36ID:???
>>817
ちょっと面白くて普通に色々試してしまったw
0821nobodyさん2006/04/29(土) 15:33:05ID:???
ていうかキッズgoo自体使ったことなかった
ふりがな結構おもしろいね
0822nobodyさん2006/05/08(月) 00:29:17ID:???
保守
0823nobodyさん2006/05/10(水) 11:40:06ID:???
また、とまった。
0824nobodyさん2006/05/14(日) 20:36:35ID:llDkDqp8
少佐あげ
0825nobodyさん2006/05/16(火) 13:05:52ID:qj3A4Qdi
少佐はげ
0826nobodyさん2006/05/17(水) 19:00:11ID:???
小差
0827nobodyさん2006/05/17(水) 23:20:13ID:???
少佐がいなくなって過疎ったな
たまに晒されるスクリプトも誰も使わないようなものばっかだし
0828nobodyさん2006/05/17(水) 23:39:10ID:???
僕もここに自作スクリプトを発表できるように、5月ごろから本格的にPHPを勉強しています。
ValidなXHTML 1.1を吐くスクリプトって結構少ないので挑戦してみたんだ。
で、実際にスクリプトを作ってみた。

コーディングも汚いんだろうなぁ…、と思いつつ、テストをしてみたら「500, Internal Server Error」が返された。
原因も分からないし、今日はもう寝る!

http:/kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi35802.txt
0829nobodyさん2006/05/18(木) 04:54:30ID:???
>>828
んと
まずメールのあて先がtrueになりそう。
それから''内に\nは書けないね。
あとは、mb_internal_encoding('SJIS');を入れた方がいいかも

コーディングは、小規模で手を抜くとこうなるかなって感じ。
500はうちの環境では出なかった。
0830nobodyさん2006/05/18(木) 12:45:09ID:???
>>828
みれない
0831nobodyさん2006/05/18(木) 20:18:15ID:???
ttp://kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi35802.txt.html
0832 ◆tkyK4yl1H6 2006/05/23(火) 14:15:52ID:???
居なくなったわけてはなく、地獄から皆さんを見てます('A`;)
no-ipのアドレスが繋がらなくなっちゃったのは放置中です。
#携帯からなのでトリップあってるか微妙ですが…
0833nobodyさん2006/05/23(火) 14:27:45ID:???
>>832
少佐、望んでた会社だったんだろ?実情はどうだい?
0834nobodyさん2006/05/26(金) 18:49:03ID:???
今は話したくない。
0835nobodyさん2006/05/28(日) 03:36:46ID:???
少佐生きたよヽ(´ー`)ノ
0836nobodyさん2006/05/30(火) 20:38:24ID:???
<?
class unko{
function unko(){
echo 'がちゃ。';
}
function geri(){
echo 'びゃーーー。';
}
function benpi(){
echo 'ぶぶ、ぶぽっ';
}
function sakatoro(){
echo 'ぱくぱく';
}
}
?>
0837nobodyさん2006/05/31(水) 10:24:26ID:8/NARi8p
sakatoroあげ
0838nobodyさん2006/06/01(木) 14:27:17ID:???
少佐さんのスクリプトってどれも欲しかったけど、結局1個も手に入らなかったなぁ
なんかいっつも流れちゃってた
0839nobodyさん2006/06/01(木) 21:28:52ID:???
少佐のサイトに置いてあるよ(*´ー`)
0840nobodyさん2006/06/01(木) 21:55:31ID:???
>>839
そのサイトがぶっつぶれたんだけどな。
0841ちんこ先生 ◆Qm364jaZpk 2006/06/03(土) 00:59:48ID:0vGoGgYv
<?
include_once("auth.php");

$img_status = array("フオ", "ヘュ");
$charge_status = array("フオホチ", "ヘュホチ");

$all_site_info = get_all_site_info();

include_once("skin/all_site_list.html");
?>
0842ちんこ先生 ◆Qm364jaZpk 2006/06/03(土) 01:03:25ID:0vGoGgYv
<?
include_once("auth.php");
if($_POST["code"] and $_POST["regist"]){
$sql = "INSERT INTO `code_list` (`code`, `comment`) VALUES ('".$_POST["code"]."', '".$_POST["comment"]."')";
if(@mysql_query($sql)){
@symlink(DOCUMENT_ROOT, "../".$_POST["code"]);
$sql = "INSERT INTO `site_info` (`code`, `site_url`, `site_mail`) VALUES ('".$_POST["code"]."', '".
$master_info["root_url"].$_POST["code"]."/', '".$_POST["code"]."@".$master_info["mail_domain"]."')";
@mysql_query($sql);
$msg = " "
}else{
$msg = "ケュケウ。シ・ノ、ホナミマソ、ヒシコヌヤ、キ、゙、キ、ソ。」";
}
}
if($_POST["delete"] and $_POST["delete_check"]){
foreach($_POST["delete_check"] as $key => $value){
@unlink("../".$value);
$where["code[".$key."]"] = $value;
}
$sql_obj->DeleteSet("site_info", $where);
$sql_obj->SQLMake(DELETE, ALL_OR);
$sql_obj->AllResets();
$sql_obj->DB_query();
$sql_obj->DeleteSet("code_list", $where);
$sql_obj->SQLMake(DELETE, ALL_OR);
$sql_obj->AllResets();
$sql_obj->DB_query();
0843nobodyさん2006/06/03(土) 09:57:12ID:???
空気読めない阿保のせいで糞スレになったな
0844nobodyさん2006/06/03(土) 11:16:25ID:???
ちんこ威勢が良かったわりには、つまんねーな
0845nobodyさん2006/06/03(土) 13:15:59ID:???
841-842が見えません!><
0846nobodyさん2006/06/03(土) 13:28:48ID:???
841-842きもい
08478282006/06/03(土) 15:34:31ID:???
>>829
アドバイスありがとう!
もうちょっと頑張って勉強するよ。

コーディングのスキルをあげたいので、これからもスクリプトを書いて発表すると思います。
Internal Server Errorが返されたのは php.ini の設定が悪かったからだ...orz
まずは>829のスクリプトを書き直します。
0848sage2006/06/06(火) 22:48:13ID:rgM9q6dd
>>817のNGワードデータベースみたいなのって
ないんですか?
0849nobodyさん2006/06/11(日) 02:06:37ID:???
中の人の意向で変わり得るものだからねぇ。
そういうのはシステム設置側で公表すべきものなのだが、
gooが珍満文書を晒す姿も想像できん。

やるとすれば、キッズgooフィルタ付きのページをスクリプト側で拾ってきて、
結果を判断して貯めておくという手法が考えられるが、面倒だからやんない。
0850nobodyさん2006/06/15(木) 16:00:57ID:KcH29g6v
投下、アクセスカウントです。
http://life.my.land.to/src/AccessLog.zip
0851nobodyさん2006/06/15(木) 17:41:28ID:???
>>850
form.classの進化に期待します
0852nobodyさん2006/06/15(木) 19:19:43ID:KcH29g6v
>>851
まじで?
0853nobodyさん2006/06/15(木) 19:52:07ID:???
マヂです
同じようなの作ろうと思ってました
フレームワークの導入までは面倒なので

できればフォーム定義はXMLで記述、正規表現で値チェック、
確認画面も出せたらいいな、と無責任な要望書いてみます
0854nobodyさん2006/06/15(木) 23:22:16ID:???
>>853
つFlexy
08558282006/06/19(月) 23:41:37ID:???
やっと今日、スクリプトを書き直してみました。
しかし問題が・・・

$err_msg が TRUE になるような条件を作っても TRUE になっていない…。
今日もこれで寝ますよ... ◯| ̄|_


http://upld3.x0.com/src/upld8180.txt
0856nobodyさん2006/06/20(火) 01:51:13ID:???
>>855
$_POST = mb_convert_encoding ($_POST, 'SJIS');
これ無理
この直後にvar_dump($_POST)とやってみるとどうなってるかわかると思う

あとできれば
if ($_POST)
これは
if ($_SERVER['REQUEST_METHOD'] == 'POST')
の方がいいと思う
0857nobodyさん2006/06/20(火) 08:02:14ID:???
なにかちがうの
0858nobodyさん2006/06/20(火) 17:32:49ID:???
手を抜いた書き方と丁寧な書き方の違いかな

でも、マニュアルを見るとif文内での空配列はFALSE扱いになってるし
$_POSTなんて定番中の定番の変数だからあまり気にせんでもいいかも
0859nobodyさん2006/06/20(火) 20:50:52ID:???
手抜きっつーか、ひねくれてる。
HTTP POST以外のリクエストで$_POSTが空になるという前提は
PHPの仕様として確定しているわけではないので危険。
0860nobodyさん2006/06/21(水) 00:38:35ID:???
だな
ひねくれすぎ
08618282006/06/21(水) 08:10:00ID:???
皆さんありがとうございます。
今日、また書き直してみたいと思います。
0862nobodyさん2006/06/21(水) 18:41:54ID:???
やっぱひねくれてるのか
そうだと思ったが一応聞いただけだ
0863nobodyさん2006/06/21(水) 19:00:09ID:???
少しづつレベルうpしていく 828 に期待
0864nobodyさん2006/06/22(木) 00:55:18ID:???
結局基本に忠実が一番
0865nobodyさん2006/06/22(木) 18:05:05ID:???
クセないほうがパクリやすいしな
0866nobodyさん2006/06/22(木) 18:29:15ID:lWMamTxf
第一みやすいしな
0867nobodyさん2006/06/22(木) 18:30:03ID:???
あげちゃった。ごめんね
0868nobodyさん2006/06/22(木) 18:50:31ID:???
このスレって、自作のPHPスクリプトを評価する人と、貰っちゃう
奴とがいるんだね。
0869nobodyさん2006/06/22(木) 18:59:22ID:???
>>868
勉強をしている人は?
0870nobodyさん2006/06/22(木) 19:00:51ID:yWfEGe4x
PHP勉強しだして3ヶ月、
誰か課題だして、
0871nobodyさん2006/06/22(木) 19:15:35ID:???
>>870
【PHP】Lvうpしたいので宿題ください
http://pc8.2ch.net/test/read.cgi/php/1147830986/l50
0872nobodyさん2006/07/04(火) 13:15:32ID:???
【設置場所】 http://marijuana.ddo.jp/~m-board/
【ソース】 http://marijuana.ddo.jp/~m-board/m-board.tbz
【プログラミング経験】 PHPは2年ちょいだっけ?(プログラムは趣味でしかやってない)
【希望評価スタイル】 悪い部分、良い部分を指摘して欲しい
【自分の性格】 叩かれると自殺しちゃうかも
【備考】 B90/W58/H86 です。
0873nobodyさん2006/07/07(金) 13:09:53ID:???
>>872
>すみません、HDDまた飛びました。
>昨年末に買って未開封新品だったのに4日で壊れた(涙
>日曜日までには復旧させるつもりです。

全米が泣いた
0874nobodyさん2006/07/07(金) 18:08:52ID:???
>>872
乙
0875nobodyさん2006/07/08(土) 07:06:03ID:???
>>872
>【備考】 B90/W58/H86 です。
写真アップ
0876nobodyさんNGNG
保守
0877nobodyさん2006/07/27(木) 10:29:36ID:???
過疎
0878nobodyさん2006/07/31(月) 23:28:47ID:sYlQMYT3
安田成美
0879nobodyさん2006/08/04(金) 01:08:25ID:???
blogからの更新Pingを受け取って更新情報の一覧を作るものです。
改善できる点とかあったら指摘してください。
http://tech.ppmz.com/2006/08/phpweblogupdatesping_6_1.html
0880nobodyさん2006/08/06(日) 18:39:41ID:???
スリーサイズは?
0881nobodyさん2006/08/10(木) 11:50:37ID:???
>>879
zip壊れ
08828792006/08/10(木) 12:58:19ID:???
>>880
スリーサイズは勘弁してください。
直した方が良い、という指摘ならありがとうございます。

>>879
別のアーカイバを使って圧縮してみました。
いかがでしょうか?
08838792006/08/10(木) 12:59:15ID:???
間違えました。2つめは>>881さん宛です。
08848282006/08/10(木) 23:53:18ID:???
どうも、お久し振りです。

ここで最初にへっぽこスクリプトを発表してから、もう5ヵ月も過ぎてしまいました……。
あれからちょっと勉強して、最初に比べたらちょっとはマシになったかも知れません。

でもまだまだ、汚くて効率悪いコーディングだし、無駄が多すぎですね。
まあ一応動いているようなので公開しちゃいます。
http://briefcase.yahoo.co.jp/bc/php_hurricane/vwp2?.tok=bcpR0pXBSG9Gj5Lj&.dir=/2a8d/9f71/ac22/d996&.dnm=sendmail.1.0.0.php.txt


何かあればよろしくお願いします。
0885nobodyさん2006/08/11(金) 01:03:11ID:???
>>884
デフォルトではpostデータはエスケープされる。ということは、シングルクオーテーション(')が入力されると
どうなるか分かる?
08868282006/08/11(金) 10:41:51ID:???
>>885
ありがとうございます。
おっしゃる通り、シングルクォーテーション、ダブルクォーテーション、バックスラッシュはクォートされました。

というわけで修正してみました。
http://briefcase.yahoo.co.jp/bc/php_hurricane/vwp2?.tok=bcMD.pXBNsYfNpqX&.dir=/2a8d/9f71/ac22/d996&.dnm=sendmail.1.0.1.php.txt
0887nobodyさん2006/08/17(木) 16:08:53ID:???
暇な人!!
PHPでMagicPacketを送信するプログラム書いてくれー
簡単でしょ〜
0888nobodyさん2006/08/17(木) 17:10:06ID:???
>>887
PHPでMagicPacketが送れるかどうかは俺には分からんが
あくまで「発表する」ためのスレであってだな、勉強の場ですよ?

とにかく「クレクレ厨」は場違いなのでどっか行け。
0889nobodyさん2006/08/19(土) 04:12:22ID:???
ググればあるし、ふつーに
0890nobodyさん2006/08/19(土) 12:21:40ID:+xxPG0V/
「ググる」禁止
0891nobodyさん2006/08/19(土) 12:36:45ID:???
じゃあ Yahoo! で「ググ」れば!
0892nobodyさん2006/08/20(日) 13:20:18ID:oyufgt9C
ふつーにインフォシークでヤフレばいいだけだろ。
0893nobodyさん2006/08/20(日) 16:21:17ID:aDUxtu4b
<?php
function WakeOnLan($mac)
{
for($i=0;$i<6;$i++)
$packet .= chr(255);
$mac_byte = explode(':', $mac);
for($i=0;$i<6;$i++)
$mac_addr .= chr(hexdec($mac_byte[$i]));
for($i=0;$i<16;$i++)
$packet .= $mac_addr;
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, TRUE);
socket_sendto($sock, $packet, strlen($packet), 0, '255.255.255.255', 9);
socket_close($sock);
return;
}
?>
0894nobodyさん2006/08/20(日) 22:49:19ID:???
ttp://www.phrackattack.net/files/sources/wakeonlan.txt
893はアホかと
0895nobodyさん2006/08/21(月) 08:04:00ID:???
ググれヤフれと言ったやつらが何を言う
0896nobodyさん2006/08/21(月) 08:36:19ID:???
次スレ:

第二回 自作スクリプト発表会【PHP】
http://pc8.2ch.net/test/read.cgi/php/1156116687/all
■ このスレッドは過去ログ倉庫に格納されています