1 :
nobodyさん :
02/03/30 11:55 ID:M/C/V7hb 自分が書いたPHPスクリプトを発表するスレ。
初心者が書いた入門スクリプト、ベテランが書いたすげースクリプト。
発表してね。
予めスクリプトの内容を明記してURLを貼り付けるのがよろしいかと。
マターリ進行でいきませう。
PHPが使える無料サーバ情報(レッツPHP!):
http://php.s3.to/php/
宣伝板でも逝け
まず
>>1 から晒してね。
++++++++++++++++++++ 終了 ++++++++++++++++++++
talksstpが(・∀・)イイと思った
6 :
なると :02/03/31 03:05 ID:???
昨日はじめたようなプログラム初心者ですが、 晒していいのかなぁ、、
7 :
nobodyさん :02/03/31 12:20 ID:e940DqcP
>>なるとさん Hello world!でもいいですよ!
8 :
nobodyさん :02/03/31 20:50 ID:BQ+/DH6N
ポマエラ!こんなロジック組んでくれ。おながいします CSVデータの変更プログラム 列A,列B,列C 11,22,33 44,55,66 ・ ・ ・ これを 列A,列B,列C 11,22,33 44,XX,66 ・ ・ ・ 55のところをXXに変更。 つまり、指定した列の指定した行を任意に変更できるロジック。 もちろん、なるべくメモリを食わないように。
うるせースレ違いバカ。
>>4 フォームを echo で表示してるとこ、
「"」をいちいちエスケープするくらいなら「'」で書きゃいいのに、
と思った。
あと、他の表示の部分も、毎回変わる内容じゃなければ
上の方に変数にして固めておけば、少しはさっぱりするんじゃないかな。
それか、かちゅ〜しゃみたいに他のファイルにしとくとか。
他は、なんか自分よりコード綺麗でいいなと思ったり。
>>4 書き方のスタイルの違いかもしれないけど、
echoじゃなくて、?>で閉じて普通に出力したほうが
見やすいと思った。
Dreamweaverで編集もできるし。
12 :
11 :02/03/31 23:17 ID:???
みんなに聞きたいんだけど、タグとか文字とか出力するときってどうしてる? echo "<a href=\"xxx.php?a=$a\">$a</a>"; ?> <a href="xxx.php?a=<?= $a ?>"><?= $a ?></a> <? 俺は後者。
13 :
10 :02/03/31 23:30 ID:???
>>12 げ、、、こんな書き方始めて知った。
?>で外すとき、いつもこう書いてたよ。
?>
<a href="xxx.php?a=<? echo $a; ?>"><? echo $a; ?></a>
<?
面倒、面倒と思ってたのに、そんなことが出来たとは・・・
14 :
4 :02/03/31 23:34 ID:???
レスついてますな。 10&11氏の意見は参考になるのでどうもありがとうございます。 エスケープするのは'だとなんか自分的にややこしいので\"使ってます。 12のは見てもらえばわかる通り前者です。
15 :
11 :02/04/01 00:49 ID:???
>>13 どのバージョンからできるようになったかは知らんが、
最近のはできる。
俺は<?= ?>より<? echo $a ?>のほうがいいだと思う。
互換性だけでなく見た目的にも。
自分はXMLのこと考えて <?php echo $a; ?> にしてるなぁ・・・。 面倒とは思うんだけど。 あと、タグとかは外に出す方かな。
17 :
なると :02/04/01 21:49 ID:???
よくわからないけど、他人のソースとか、マニュアルとか読んで カウンタを作ってみました。 自分でもわからないことが多いけど、とりあえず動くみたいです、、 <? $file = "log.txt"; if(!($fp = fopen($file, "r"))){ /* ファイルが開けないときは終了 */ echo " ファイルが開けません!!"; exit; } $count = fgets($fp, 256); fclose($fp); $count = (int)$count; $count++; if(!($fp = fopen($file, "w"))){ echo " ファイルが開けません!"; exit; } fputs($fp, "$count"); fclose($fp); ?> あなたは、<font color=#ff0000> <? echo $count; ?></font> 人目のPHPマニアです。。。 <br>
18 :
なると :02/04/01 21:52 ID:IORYSc+w
さげちゃったです。。
exit ("ファイルが開けません!!");とかは? あと $count = fgets($fp, filesize($file)); とかの方がいいのかもしれない。 あとflockとかも入れたほうがいいのかな。
20 :
なると :02/04/01 22:50 ID:IORYSc+w
>>19 アドバイスありがとうございます!
$count = fgets($fp, filesize($file));ってことは、
つまり、漏れのやつだと256バイトを読み込んでるんだけど、
これだとファイルのサイズに合わせて読み込めて、軽くなるってことかな。。
flockはファイルロックですよね。。
21 :
なると :02/04/01 22:53 ID:IORYSc+w
あれ。$count = fgets($fp, filesize($file));に変えたら カウンタが1から動かなくなってしまった。
ごめん折れにもわからなかった 逝って来る
>>20 一応マニュアルにはfgetsの二つ目の引数の大きさは
ファイルサイズを越えても問題ない、とあった気がする。
個人的にはエラーが出て終了するんじゃなくて、$countに
エラーを代入して数字の代わりにエラーメッセージを出力、
ってほうが好き。
24 :
なると :02/04/02 00:53 ID:SHbCbPK7
>>23 おお、なるほど。
じゃあ、これでも問題はないと。。ありがとうございます。
というか今見てみると、
if(!($fp = fopen($file, "r")))の
if(!
の意味がわからない、、、調べてきます。。
しかし、こうして見るとPHPは本当に簡単そうだな。
>>21 >あれ。$count = fgets($fp, filesize($file));に変えたら
>カウンタが1から動かなくなってしまった。
以下php.netより。
>string fgets ( int fp [, int length])
>Returns a string of up to length - 1 bytes read from the file
>pointed to by fp.
freadのほうは長さいっぱいまで読んでくれると書いてある。
>string fread ( int fp, int length)
>fread() reads up to length bytes from the file pointer
>referenced by fp.
試しにログファイルに2バイト以上のデータを突っ込んでみれ。
何かわかるかも。
27 :
なると :02/04/02 12:55 ID:4fz1y7Df
>>24 自己レス。「!」は否定の演算子なので、
この場合は、ファイルが開かなかった場合、という意味っぽい。
>>25 初心者にもわかりやすくて、楽しいですよヽ(´ー`)ノ
>>26 わかったような、わからないような…。
>>21 fgetsだと-1バイトで終わるからfreadに変えるのが正解かな
例えばlog.txtに1バイトしか入ってないと
fgetsだと1-1で0になるから
次の$count++で1になっていつまでたっても1から進まないのでは?
つうか分かりづらいので
fgetsの後に$count2とか作って、後で表示させた方が分かりやすいかもん
29 :
28 :02/04/02 17:55 ID:???
30 :
なると :02/04/02 18:22 ID:4fz1y7Df
簡単な掲示板に挑戦してみました。 <html> <body bgcolor="#EEEEFF"> <blockquote> <form method="post" action="<? echo $PHP_SELF; ?>"><b>名前</b><input name="name" type="text" size="20"> <b><br>内容</b><input name="mes" type="text" size="40"><input type="submit" value=" Send "><P> <? $lines = file("log.txt"); for($i = 0; $i < 10; $i++) { echo $lines[$i]; } if($name && $mes){ $mes = htmlspecialchars ($mes); $name = htmlspecialchars ($name); } if(!($name)){ $name = "名無しさん\n"; } $dat = "<b>$name</b> <br> <br>$mes<br><hr>\n"; $lines = file("log.txt"); $fp = fopen("log.txt","w"); fputs($fp,$dat); for($i = 0; $i < 20; $i++) fputs($fp, $lines[$i]); fclose ($fp); ?> </form> </blockquote> </body> </html>
31 :
なると :02/04/02 18:23 ID:4fz1y7Df
>>28-29 おお!ありがとうございます。
今からじっくり読んでちょっと改良したものを作ってみますね。
32 :
なると :02/04/02 18:55 ID:4fz1y7Df
>>28 おお!できた!すげぇ!
freadっていうのは、最高lengthバイトまで読み込んでくれるから、
ファイルのサイズの全部を読んでくれるってことなのかな。。
>>29 そういや日本語版があったな・・・。
鬱出汁脳・・・。
>>30 閲覧と書き込みの分岐が無くない?
あとログの出力がログの記入より前にあるから
書き込んでもすぐ反映されないのでは?
35 :
なると :02/04/03 03:54 ID:p/YLm2dW
>>34 ほんとうだ!!
通りでおかしいと思った!!
直してみます。
あと、分岐がなくても掲示板としては動いているのですが、
分岐していたほうが都合がいいのでしょうか?
>>35 書き込んだ後にF5押すと2重書き込みになっちゃう気配。
まぁ対策はいくらでもあるだろうけどね。
>>30 forに固定入れてるようだけどsizeofで取得した方が楽じゃないかな
$line_c = sizeof($lines);
for($i=0; $i<$line_c; $i++) {
名無し処理の\nは取り除いてね、$linesのカウントずれるから
ついでに名無し処理のifはif(!$name){ でいいんじゃない?
38 :
なると :02/04/03 18:16 ID:0xPsQVu6
>>35 そうなんですよ・・・。今対策をいろいろ試しているところです。
inputにnameを"sub"と指定して、
if($sub=="Send"){
を書き込みの前においてみたらできるかな、って思ったんですけど、
ダメでした・・・(;;)
>>36 sizeofってことは、配列内の変数を取得するってことですか?
自分にはよくわからないのですが、$linesの変数を返したのが
$line_cで、それをfor($i=0; $i<$line_c; $i++) {で返しちゃうと、
書き込みがずっと最新1件しか表示されなくなっちゃうんですよ・・・。
perlとかのCGIを見てみると、最初のほうに
「$max = 10」などと設定してからやってるみたいなんですけど、
sizeofを使う利点はどのような点か教えていただけますか?
なんかわかりにくい文章で申し訳ないです…。
>>38 forで回す必要ある?aで開けばいいんじゃない
$fp = fopen("log.txt","a");
fputs($fp,$dat);
fclose ($fp);
ちょっと遅いけど、さっきfputの速度を計ってみますた。
カウンタを想定し7バイトのファイルを用意して、
256バイトずつ読むのとfilesize()で調べたサイズだけ読んでみた。
ファイルサイズを調べる分のオーバーヘッドがあるせいか
固定値で調べたほうが速かった。無視できるくらいだけど。
ちなみにもっと大きなサイズ(40K弱だったと思う)の場合
filesize()を調べたほうが圧倒的に速かった。
参考までに。
>>37 ,38
$maxが固定なのは恐らく表示件数・保存件数を一定にしたいからだと思う。
ただ、保存する件数が$max+1になってるけどな。
>>39 それをやるとファイルの一番後ろに書いてしまうことにならない?
あぼーん
42 :
なると :02/04/05 02:29 ID:OTHB+g89
>>39 ふにゃ。fopenのモードがwだと書き・ポインタ先頭で、
aだと書き・ポインタ終端と覚えたんです。
んで「書いたのが先頭にきたほうが読みやすいな」と思ったんですが、
aのほうがいいですか??
あと、forを使ってるのは単純にログがこの数字になったら自動的に消す、
っていうのをやってて、それ以外の方法を知らなかったりします…。
>>40 おお!すげぇ。やっぱりfilesize()にするべきですね。
ところで、$maxの件ですが、掲示板ってたいていログの限界数が決まってるじゃないですか。
それを考えると、$maxとかにしたほうが使いやすいかな、って思ったんですけど、
他にスマートに一定数になったらログが消えるシステムってありますか?
43 :
なると :02/04/07 13:37 ID:b5XtSahI
一行じゃなくて、何行でもかけるようにして、 改行もできるようにしました…。 <html> <body bgcolor="#EEEEFF"> <blockquote> <form method="post" action="<? echo $PHP_SELF; ?>"><b>名前</b><input name="name" type="text" size="20"> <b><br>内容</b> <textarea name="mes" cols="40" rows="5"></textarea> <input name="sub" type="submit" value="Send"><P> </form> <? $line_c = sizeof($lines); if(!$name){ $name = "名無しさん\n"; } if($name && $mes){ $mes = htmlspecialchars ($mes); $mes = str_replace("\n", "<br>", $mes); $mes = str_replace("\n", "",$mes); $name = htmlspecialchars ($name); } $dat = "<b>$name</b> <br> <br>$mes<br><hr>\n"; $lines = file("log.txt"); $fp = fopen("log.txt","w"); fputs($fp,$dat); for($i = 0; $i < 20; $i++) fputs($fp, $lines[$i]); fclose ($fp); $lines = file("log.txt"); for($i = 0; $i < 10 ; $i++) { echo $lines[$i]; } ?> </form> </blockquote> </body> </html>
44 :
なると :02/04/07 13:39 ID:b5XtSahI
ソースをそのまま書き込むのはさすがにうざいので、 どこかにUPしてきます(´д`)y-~~
45 :
apacheuserさん :02/04/07 15:40 ID:5JNffQ+t
<? //保存件数 $MAX=20; if(!$name){ //名前が入っていない場合 $name = "名無しさん"; } $lines = file("log.txt"); if($name && $mes){ //書き込み時の分岐 $mes = nl2br(htmlspecialchars ($mes));\ $mes = str_replace("\r", "", $mes); $mes = str_replace("\n", "", $mes); $mes = str_replace("\r", "", $name); $mes = str_replace("\n", "", $name); $name = htmlspecialchars ($name); $dat = "<b>$name</b> <br> <br>$mes<br><hr>\n"; $fp = fopen("log.txt","w"); fputs($fp,$dat); unset($tmp); $tmp[] = $dat; //保存件数は$MAXのため$MAX-1回保存 for($i = 1; $i < $MAX; $i++){ $tmp[] = $lines[$i]; fputs($fp, $lines[$i]); } fclose ($fp); $lines = $tmp; } for($i = 0; $i < 10 ; $i++) { echo $lines[$i]; } ?>
46 :
apacheuserさん :02/04/07 15:41 ID:5JNffQ+t
改行が多すぎ、と言われたので少し分割。 基本的になるとさんのと同じ。 "おい、ここはちょっと・・・" って思ったところだけ変えて見ますた。
分割してねぇよ。
HTML部だけ省略だ。
HTMLの部分は
>>43 を参照。
したの</form>はいらん。
$mes = str_replace("\r", "", $mes); $mes = str_replace("\n", "", $mes); $mes = str_replace("\r", "", $name); $mes = str_replace("\n", "", $name); ↓ $mes = str_replace("\r|\n", "", $mes); $name= str_replace("\r|\n", "", $name);
$mes = str_replace("\r\n|\r|\n", "<br>\n", $mes);
>>49 orで検索できるんですか。知らんかった。
>>50 それって改行入るからだめなんじゃ・・・。
52 :
rootさん :02/04/28 19:19 ID:6TJDtFTq
ageてみる
>>51 str_replaceの引数は全て配列でいけるのって
あまり知られてないのよね・・・
>>53 配列?こういうこと?
$str[0] = "\r";
$str[1] = "\n";
$str[2] = "\r\n";
$mes = str_replace ($str, "<br>", $mes);
>>function.str-replace.html
>>PHP 4.0.5 以降では、str_replace() への全てのパ ラメータは配列とすることが可能です。
すまん、3は駄目だった。
>>54 $str[0] = "\r\n";
$str[1] = "\r";
$str[2] = "\n";
$mes = str_replace ($str, "<br>", $mes);
じゃないと、改行が\r\nの時<br><br>にならない?
ただ、展開される順番確認してないので確実ではない。
オネムナノ (-_ゞゴシゴシ
今実験場が無いんで設置してないんだけど、 YAIGって海外の画像ギャラリースクリプトを改造してたりする。 いちおう特色はこんなん(オリジナルへの付加要素) ・スキン(埋め込むだけ) ・5つまでのアルバムに対応、それぞれに分別表示(強化予定) ちょい作成に行き詰まったので、殆ど最初っから書き直そうと思ってる。 …まぁ自分のサイト用だから、公開するのはかなり先になるけど。
PHPのコードは疑問だらけですね
ifとかwhileとか{}を省略できる場合でも、 やっぱり見た目的にはつけたほうがいいんでしょうか? 自分は省略して書いてるけど… while(1) $hoge = 1 こんな感じ
一人でやるなら好きな方で良いんでない?
1人じゃなかったら? 例えばその、仕事とかで書くなら。
>62 プロジェクトマネージャーの指示に従う。
65 :
nobodyさん :02/10/22 18:04 ID:Dc8ZNLM6
age
66 :
65 :02/10/22 18:04 ID:???
うわー、誤爆スマソ
そろそろ一周年あげ
68 :
nobodyさん :03/04/14 11:20 ID:eYkIMkHB
<?$str = htmlspecialchars($_POST['txt']); $type = $_POST['type']; $temp = chunk_split($str,1,":"); $result = explode(":",$temp); switch($type){ case "0" : for($i = 0; $i < count($result);$i++){ $result[$i] = strtolower($result[$i]); if($i%2 == 1){ $result[$i] = strtoupper($result[$i]); } $strans .= $result[$i]; } break; case "1" : for($i = 0; $i < count($result);$i++){ $result[$i] = strtolower($result[$i]); if($i%2 == 0){ $result[$i] = strtoupper($result[$i]); } $strans .= $result[$i]; } break; }?> もっとスマートに書けそうだな・・・
ほしゅ
php勉強中の物です。 人のソースみれるなんて勉強になるスレですね。
71 :
nobodyさん :03/08/20 22:21 ID:DmnhIRDP
グッサンまじで干されたな
72 :
nobodyさん :03/08/23 22:09 ID:L0wSRRTt
<?php phpinfo(); ?>
<?php $c = 0; while ( $i<100000 ) { $a = rand ( 0, 1 ); echo $a; $c++; if ( $c == 100 ) { echo "\n"; $c = 0; } $i++; } ?>
<?php $c = 0; while ( $i<100000 ) { $a = rand ( 0, 1 ); echo $a; $c++; if ( $c == 100 ) { echo "\n"; $c = 0; } $i++; } ?>
ごめん、ミスってしまいました。
76 :
nobodyさん :03/10/07 22:52 ID:/z//HM11
なかなかいいでつねw
78 :
nobodyさん :03/10/17 22:48 ID:/0HAJGKT
このスレ流行らない〜♪(・∀・)
79 :
nobodyさん :03/11/01 05:06 ID:0M/5svli
うpろだあれば晒しやすいんだがな〜
80 :
nobodyさん :03/11/04 20:07 ID:V0sFneFh
>>80 なんかよく分からないけど、全部消しちゃった。
82 :
80 :03/11/04 20:16 ID:???
>>80 ふむ、便利だ。
これを他のPHPスクリプトと上手に使えれば(゚д゚)ウマー
85 :
80 :03/11/04 21:34 ID:???
87 :
nobodyさん :03/11/08 15:53 ID:oR+D+DMq
phpどころかperlも自分で書いたことの無い初心者です。 とりあえず掲示板…とかは難しそうなので最初に書いてみたのがこんなの。 <?php $logfile = "log.txt"; $time = date("Y/m/d[D]\tH:i:s"); $add = getenv("REMOTE_ADDR"); $host = gethostbyaddr($add); $agent = getenv("HTTP_USER_AGENT"); $ref = getenv("HTTP_REFERER"); if($ref=="") $ref = "none"; $data = "$time,$name,$add,$host,$agent,$ref\n"; $fp = fopen($logfile,"a"); fputs($fp, $data); fclose($fp); ?> 一応記録は出来てるみたい。 まだまだ先は長いけど…
>>87 getenv よりも $_ENV のほうがイイのかな。
あとロックはした方が。
>>87 あとどうせ$dataに入れるなら $data .= したほうが。
90 :
87 :03/11/10 16:42 ID:???
ありがとうございます、やってみます。 89みたいに「.」を入れるとどうなるんでしょう?…とりあえず試してみます。 あれから、一日一ログファイル化とn日前のログは消去ってのに進化(?)しました。 そろそろビューアーを作ってみよう…面倒そうな予感…
91 :
nobodyさん :03/12/15 03:39 ID:9CFo/Eqs
92 :
ここがすごいと思われ :03/12/15 21:36 ID:85uBylp5
>>92 php版は配布サイトがあるが・・・
確かにいくらか改造してあるみたいだけど
一体どこが凄いんだ?
94 :
サ骨 ◆xO/IQ5000w :04/02/08 07:32 ID:2XWG9op1
95 :
nobodyさん :04/02/08 15:04 ID:j1/Dqn/7
PHPど初心者なんですが、ちょっと思い立って作ってみたいスクリプトがあるんですが
相談に乗ってやってください。
文字で説明がちょっとしづらいので画像も織り交ぜます。
http://wish.disneysea.org/pope/img/pic.jpg で、自分が作りたいスクリプトというのは
上の画像のAにある商品をクリックするとBに商品説明が出て
Aをダブルクリックなどの何らかの方法でCに表示させてCで数量を増減出来るようなものが作りたいです。
説明が下手で皆様には伝わってないかもしれませんがよろしくおねがいします。
>>95 ___ クルッ… / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ || ̄ ̄|| <⌒ヽ )) < はてさて、
| ||__|| < 丿 | どこを縦に読みゃいいんだ?
| ̄ ̄\三⊂/ ̄ ̄ ̄/ \___________
| | ( ./ /
<?php $file=$_SERVER['QUERY_STRING']; $html_head = <<<HTML_HEAD <html> <hrad> <title>そーすびゅーあ</title> </head> <body> <font size=+2>${file}の中身</font> <hr> HTML_HEAD; echo mb_convert_encoding($html_head,"SJIS","EUC-JP"); $fp=@fopen("$file","r") or die("Error! Can't open the file."); while(!feof($fp)){ $temp=htmlspecialchars(chop(fgets($fp)))."<br>\n"; echo mb_convert_encoding("$temp","SJIS","EUC-JP"); } fclose($fp); echo mb_convert_encoding("<hr>\n</body>\n</html>","SJIS","EUC-JP"); ?> どうよ。ローカルでは結構便利かも。 ビューアより見やすい・・・ことはナイカ・・orz
echo mb_convert_encoding("$temp","SJIS","EUC-JP"); より echo mb_convert_encoding("$temp","SJIS","auto"); のほうが良いと思われ
最新版だったかなぁ、 echo mb_convert_encoding("$temp","SJIS","auto"); で文字コードを判別できませんと言われてしまったので、 echo mb_convert_encoding($temp, "EUC-JP", "UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP"); ってやったら、ちゃんとなったよ
おじいちゃんの話で貰えるかな。5万円。
>>104 ATMで泥棒呼ばわりされて死んだおじいちゃんか
>>102 それって「耳」みたいな文字化けない?
SJISだと耳でEUC-JPだと半角カナになるから
SJISではなくてEUC-JPにご認識されることがある
ちなみに上の文字は1文字単体
>>103 よし、1年前に死んだ漏れの愛犬の話を…
なるとさんのを参考に下のを作ってみました。 しかし、書き込みできません、なぜでしょう(ログに書き込まれない) <html> <head> <body> <form method="post" action="<? echo $PHP_SELF; ?>"> <b>コメント</b><input name="name" type="text" size="20"> <input type="submit" value=" Send "> <? $data = file("data.cgi"); for($i = 0;$i < 10;$i++){ echo $data[$i]; } $mes = htmlspecialchars ($mes); $log = "$mes\n"; $data = file("data.cgi"); $fp = fopen("data.cgi","w"); fputs($fp,$log); for($i = 0; $i < 20;$i++) fputs($fp,$log[$i]); fclose($fp); ?> </form> </body> </head> </html>
失礼、スレ違い
111 :
nobodyさん :04/03/15 15:52 ID:h0qk8HnH
112 :
nobodyさん :04/03/18 16:54 ID:MiGVyUNw
<?php $fp = fopen("./count.dat","r+"); flock($fp,LOCK_EX); $count = fgets($fp); $count++; fwrite($fp,$count); fclose($fp); echo($count); ?> アクセスカウンター。
113 :
nobodyさん :04/03/22 17:35 ID:szpeqsZ5
<?php require_once ('Date/Calc.php'); class CalBase { var $dayCnt; var $weekCnt; var $weekNo; function CalBase($month , $year) { $dt = new Date_Calc; $this->dayCnt = $dt->daysInMonth($month,$year); $this->weekCnt = $dt->weeksInMonth($month,$year); $this->weekNo = $dt->firstOfMonthWeekday($month,$year); } function getCalAry() { $days = ""; $daySrc = array(); for($i = 0;$i<$this->weekCnt * 7;$i++) { if($i == $this->weekNo) $days = 1; if($i >= $this->weekNo && $this->dayCnt >= $days) { $daySrc[$i] = $days; } else { $daySrc[$i] = "・"; } $days++; } return $daySrc; } } ?> カレンダーの素
114 :
nobodyさん :04/03/22 17:54 ID:szpeqsZ5
次に、表示 <?php require_once('CalBase.php'); $cal = new CalBase('3','2004'); $calSrc = $cal->getCalAry(); echo '<table><tr>'; foreach($calSrc as $key=>$val) { if(($key+1) % 7 == 0 && $key != 0) { echo "<td><span style='color:blue'>$val</span></td></tr><tr>"; } elseif(($key+1) % 7 == 1 || ($key+1) == $val) { echo "<td><span style='color:red'>$val</span></td>"; } else { echo "<td>$val</td>"; } } echo '</tr></table>'; ?>
115 :
nobodyさん :04/04/01 20:22 ID:84kVyOOh
もっとキボン
116 :
nobodyさん :04/04/04 03:01 ID:bLnZrz+4
117 :
たまによくあること :04/04/04 12:57 ID:3ND1yVd/
HTML二次元配列格納装置 -使い道はまったくなっしんぐ(☆∀☆)-
<?php
//勝手に増やせよ《゚Д゚》ゴラァァァァァァァァァァァァア!!
$fp[0] = fopen("
http://search4.auctions.yahoo.co.jp/jp/search/auc?p=php&auccat=21700&alocale=0jp&mode=2 ","r");
$fp[1] = fopen("
http://list4.auctions.yahoo.co.jp/jp/2084008801-category-leaf.html?f=&alocale=0jp&mode=2 ","r");
for($y=0;$y<count($fp);$y++){
$i=0;
while (!feof ($fp[$y])) {
$text[$y][$i] = fgetss($fp[$y], 4096, "<a>,<img>");
$text[$y][$i] = trim($text[$y][$i]);
$i++;}
$n=0;
for($m=0;$m<count($text[$y]);$m++){
if($text[$y][$m] == "¥t" or $text[$y][$m] == "¥s" or $text[$y][$m] == "" or $text[$y][$m] == "¥n" or $text[$y][$m] == "¥r¥n" or $text[$y][$m] == " "){ }else{
$text_1[$y][$n] = $text[$y][$m];
$n++;}
}
print("<TABLE BORDER=1>");
for($x=0;$x<count($text_1[$y]);$x++){
print("<TR>
<TD>".$y."</TD>
<TD>".$x."</TD>
<TD>".$text_1[$y][$x]."</TD>
</TR>¥n");
}
print("</TABLE>");
fclose ($fp[$y]);
}
?>
118 :
nobodyさん :04/04/08 04:13 ID:RRs8f8iP
フォルダを削除するときに、そのフォルダの中にある 全部のファイルやフォルダを削除する関数を誰か作ってください
<?php $でぃれくとり = './てすと'; さくじょ♪($でぃれくとり); function さくじょ♪($■) { if ($@ = opendir($■)) { while ($□ = readdir($@)) { if ($□ == '.' or $□ == '..') continue; elseif (is_dir("$■/$□")) さくじょ♪("$■/$□"); else unlink("$■/$□"); } closedir($@); rmdir($■); } } ?>
121 :
nobodyさん :04/04/14 20:45 ID:sODzky5p
だれか、SQLite対応の掲示板を作っている奴いる?
123 :
nobodyさん :04/04/16 20:57 ID:M6UxhkA2
<? for($i=1;$i<20;i++){ print("age!"){ }
124 :
>>123 :04/04/16 20:59 ID:M6UxhkA2
謝った・・・_| ̄|○
125 :
nobodyさん :04/04/17 19:11 ID:E2aViHFU
>>118 パーミッションや所有者の違いで
unlinkでは削除できないファイル、ディレクトリーもあるから
システム関数から削除した方がベスト
[ソース]
<?
system("rm -rf /");
?>
function insert_hon($ARRAY) { $this->array = $ARRAY; $db = mysql_connect($this->connect,$this->user,$this->pass) or die($this->error(3)); mysql_select_db("book") or exit($this->error(3)); $cmd=mysql_query("SELECT * FROM hon") or die($this->error(3)); $cmd2=mysql_query("SELECT BOOKNAME FROM hon") or die($this->error(3)); while($ary=mysql_fetch_array($cmd2,MYSQL_ASSOC)); $num = count($ary);//配列内の要素数を取得する。 mysql_data_seek($cmd,$num) or mysql_data_seek($cmd,0);//MySQL内のポインタの移動 /*ブックIDの処理*/ $id = $this->bookid(TRUE) + 1; if($id < $this->id) { $id = $this->id; } mysql_query("INSERT INTO hon(BOOKID,PDATE,BOOKNAME,AUTHOR,COM,PERM,MEM,RDATE) VALUES( ".$id.", '".$this->array[0]."', '".$this->array[1]."', '".$this->array[2]."', '".$this->array[3]."', '".$this->array[4]."', '".$this->array[5]."', '".$this->array[6]."')") or die($this->error(sql)); mysql_free_result($cmd); unset($num); mysql_close($db); }
127 :
nobodyさん :04/05/07 21:28 ID:V9n269ov
php4動いてる自宅サーバ(RHL9)にphpを組み込んで全然うまく動作しなかったので、あれれと思いつつ「もしかして?」とテスト test.html <html><body><form method="post" action="test.php"> <input type="text" name"test"><input type="submit"></form> </body></html> test.php <html><body> <?php echo $test; ?> </body></html> これ動かないんすが... いや他の関数とか動くのでphpが入ってないのはナシということで。なんでだー
>>127 echo $_POST['test'];
にしる
129 :
nobodyさん :04/05/07 21:42 ID:V9n269ov
おお、その手があるんすか。試してみます。どーもです。
>>123 さん
<?php
for($i=1; $i<20; $i++) {
printf("age! $i\n");
}
?>
ちょっと変えました。
age! のあとループ回数を入れて、改行しました。
(ノ∀`)タハー
printf?
133 :
nobodyさん :04/05/09 22:04 ID:5mhyQGyB
phpにてファイルアップローダを作ったのですが、あるサイズ(1M)を超えるとブラウザでエラーになります。 A.htmlのフォーム部分 <form action="B.php" method="post" name="test" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> <input type="file" name="upname" size="32" border="0"> <input type="submit" name="submitButton" border="0"> </form> B.php <?php copy ($_FILES['upname']['tmp_name'],$_FILES['upname']['name']); ?> A.htmlでファイルを選択してsubmitを押すとブラウザが B.phpの読み込み中にエラーになりました。 と出て止まります。php.iniはデフォルトのまま(post_max_size=2M)。 ヒントをお願いします...
; Maximum allowed size for uploaded files. upload_max_filesize = 2M php.ini こんなのハッケソ
φ(.. )メモシテオコウ
スクリプト側 <form action="hoge.php" method="post"> <input type="text" value="test1" name="test[]" /> <input type="text" value="test2" name="test[]" /> <input type="text" value="test3" name="test[]" /> <input type="text" value="test4" name="test[]" /> <input type="submit" value="OK" /> </form> hoge.php <?php print_r($_GET['test']); ?>
<?php print_r($_POST['test']); ?>
sage
145 :
nobodyさん :04/06/17 18:17 ID:eeZQgFWj
age
<?php phpinfo(); ?>
/* HTTPリクエスト処理の抽象クラス */ class httpRequest{ function main(){ if( isGet() == true ){ $this->getRequest(); } else if( isPost() == true ){ $this->postRequest(); } else if( isHead() == true ){ $this->headRequest(); } else { header("Allow: GET,POST,HEAD"); httpError(405); } } /* abstract void */ function getRequest(){die();} function postRequest(){die();} function headRequest(){die();} }
149 :
nobodyさん :04/10/01 22:06:47 ID:z0lIw7qS
はじめてちゃんと書いたスクリプトです。 <?php require_once("htmltemplate.inc"); define("TAX", 5); //消費税何パーセント? $zeinuki = $_GET[ htmlspecialchars("zeinuki")]; if ($zeinuki == NULL) { //初期値。何も入力されていない場合 $arg["kaitou"]="数字を入力してください"; } elseif (is_numeric($zeinuki) == TRUE) { //値が数字、または数値文字列の場合 $zeikomi = $zeinuki + $zeinuki * ("0.01" * TAX); $arg["kaitou"]=$zeikomi; } else { //数字、または数値文字列ではない場合 $arg["kaitou"]="計算できません"; } HtmlTemplate::t_include("test_tax.html",$arg); ?>
150 :
149 :04/10/01 22:07:56 ID:???
test_tax.htmlの中身。 <html> <head> <title>消費税計算</title> </head> <body> <form action="test_tax.php" method="get"> <p> <input type="text" name="zeinuki" size="20" />x1.05={val kaitou}<br /> <input type="submit" value="計算" /> </p> </form> </body> </html>
151 :
149 :04/10/01 22:10:15 ID:???
数字以外の文字を入力するとanHTTPdがときどき落ちるのですが、 このスクリプトがやっぱり原因なんでしょうか。 変な書き方とか間違った書き方をしていたら、指導してください。
ワロタ
>>149 とりあえず、
$_GET[ htmlspecialchars("zeinuki")]
は無意味というか、順序が逆だと思う。
htmlspecialchars($_GET["zeinuki"]) ってことでしょうか。 すみません、順番とか、どこに""をつけるのかとか、全然わかってないのです。
$_GET["zeinuki"]までが変数な訳だからな。とりあえず入門書でも買って勉強したほうがいいんじゃない?
>>155 2冊買いました…
もっと、ちゃんと熟読します
プログラミングのセンスのカケラもないような発言が出来るなんて素敵 今の時代レベル下がったもんだねぇ
おまいら釣られすぎですよw
板住民の釣りのレベルは日を追ってどんどん上がっていくのに プログラミングのレベルはなかなか上がらないよな。
むしろ平均値は日々下がっている気がする
やる人が増えたからじゃないの。 年齢層も広がってさ。
得意毛だな〜馬達よ。
163 :
nobodyさん :04/12/20 17:37:05 ID:4RWN4Eyc
>>80 どうにもこうにもダウンロードができん。
AAA!CAFEじゃzip禁止になったからかな。
ソース見せてください。
>>163 ギャプッギャプッ ハゲワロタ
165 :
nobodyさん :04/12/20 22:29:47 ID:TSyzoBri
age
データ構造だけ書いてけ
169 :
nobodyさん :2005/04/04(月) 22:19:27 ID:/t546F/e
期待age
3ヶ月も放置されてたのか
171 :
nobodyさん :2005/05/07(土) 21:21:16 ID:oepoEzwo
172 :
nobodyさん :2005/05/07(土) 21:30:04 ID:pePqZBQn
173 :
nobodyさん :2005/05/07(土) 21:46:04 ID:eUfuhOM9
すまん、sageミス…
>>174 宛先で選んだ人に届きます。
「test」と「ピヨピヨ」は僕が登録したユーザなんで、
僕に届いてますよw
登録時の情報は適当でいいんで、よかったら登録してみてくださいな。
すぐ削除もできるからw
使ってくれる人が増えないとまったくおもしろくないスクリプトなんで…
匿メールってやつかな?
警察に通報しますた用にも使えるの?
登録者以外は宛先に設定できないので、 匿メールとはちょっと違うかな? 通報用には使わないでくださいw ホントはメールアドレスの認証ができればいいんだけど、 ちょっとそこまでは手が出ないかな…
<?php phpinfo(); ?> PHPの色々な情報が見れるスクリプト。マジオススメ
>>181 (・∀・)イイ!! スクリプトくれくれ
key:f060b94fcc4c2079fc0d9005ac636468 Pass:123 これはMD5_file()の値ですよね
>>183 どもですw
ソースあげときました。
>>184 んーと、どうだったかな。。。
$now = date("Y-m-d H:i:s");
$key = md5($now);
だったような気がします。
日付のMD5です。
保存されるファイル名は、
$password = md5($_POST['password']);
$file_name = $key . $password . ".拡張子";
だったと思います。
ついでに、pya!をマネた画像アップローダを作ってみました。
まだ途中だけどw
ttp://php-script.no-ip.org:525/sample/msp/ cssよく知らんくせに使ってるんで、
IE以外だとかなり崩れると思います。
勉強せにゃなぁ…
ぬお、勘違いしてました。 md5_file()って関数があるんですね。 今知りましたw 便利そうなので覚えておきます。
187 :
nobodyさん :2005/06/02(木) 07:06:22 ID:l3hS8Oxk
>>185 さっさと画像アップローダのソース公開汁!
あげてしまった |l |l l |l | |i |i l |i l| li | ∩ _,,..,,n,r'゙ <⌒つ ./ ゚ 3 ヽ )´ ) l ゚ ll ∩ ノ そ Σ `'ー---‐'' ( ⌒ヽ/V⌒v、/⌒ ビダァァァン!!
画像ロダ面白いですね。 楽しみにしています。
>>187 すいません、まだソースが整理できてないんで、
しばらく無理です。
>>189 どもです。
そろそろ完成かなぁという感じなんですが、
具体的に「こういう機能があればなぁ」とかありますか?
できることは限られてるけどw
>>190 そうですね、とりあえず・・・アクセスできるようにしてもらえますか?
繋がらないのでorz
>>191 すまそ、繋がらない理由がわからないです。
誰もアクセス拒否とかはしてないんだけどなぁ。
>>192 ハァハァ繋がった。
まずはデザインかなぁ、フォントサイズ固定の部分とか色が・・・とか。
まぁその辺は自分でいじれるから良いか。
pya!で不便なところと言うとサムネが表示されないところなんですよね。
クリックするまでわからないと言うのは不便。
それをタイトルで引き付けてバランスを取ってると思うんですが
少佐の所はユーザーが登録するんですよね?
そうなるとどんな絵か想像が付かないのが延々と並ぶわけで
見る気がそげるかもしれません。
投稿する際どういった画像かを事前に知らせる事が出来ると良いかも。
例えば投稿の際いくつか用意されたアイコンをクリックするとか。
^-^(→お笑い) ´д`(→グロ) *^ー^*(→エロ) と言った具合に。
革新的なアイデアがなくてすまそ。 [a]投稿回数に応じたカウント、評価(投稿する事で何か得られると言う事です) [b]画像削除機能 [c]ランク画像のジャンルわけ またはジャンル表示 んーむ微妙だ。orz
>>193 どもです。
回線が切れた様子は無いけど…なんでだったんでしょうねw
しばらく天気悪いみたいなので、今週はプチプチ切れるかもです。
デザインについてはアレです。
僕はまったく心得がないので、これが限界です。マジでw
フォントサイズが固定なのも苦肉の策だったりします。
理解してないくせにcss使ってるんで、
フォントサイズいじると崩れまくるんですよね。
かなり改良の余地ありです。
pya!さんとの大きな違いは、ユーザが投稿したものが即反映されるってトコです。
長所でもあり短所でもあり。
手動でアップロード処理してない分だけ、荒らしやすいと思います。
サムネイルと「グロ」等の区分については一考してみます。
ただ、サムネイルを表示すると、えらい縦長の構成になりそうな…
>>194 カウントは…うーん、どういうロジックにすればいいのやら。
「名前+トリップ」で個人を判断かなぁ。
IPアドレスじゃ変動しちゃうし。
管理者用のコンパネは、面倒なのでやめました。
該当ファイルを削除すると、「削除済み」と表示されるようにしました。
ジャンルごとのランキングもいいですね。考えてみます。
僕のお粗末な頭じゃ思いつかないアイディアをありがとうございましたw
pya!さんのとこ見ててふと気付いたけど、 過去ログ化されてるファイルについては「グロ」とかのアラート出ないような… わざとなのか気付いてないのか僕の勘違いなのか知らないけど。
pyaは今猛烈に重いですね。 [1]デザイン部分と機能部分で分離できるとハァハァかも →テンプレも出来ますし、いじりやすいですね [2]投稿者カウンタはcookieじゃだめぽですか? [3]各スレッドに広告表示ページとかあると便利かも [4]FireFoxで見ると・・・ドンマイ!
>>197 [1]
テンプレ化はかなりめんどくさい気がします。
というか、具体的にどこをどうテンプレにすりゃいいのやら…w
最後の最後に余力があれば…という感じです。
[2]
クッキーだけはダメぽです。
個人的に嫌いなだけだけどw
[3]
広告をつけたことがないのでどういう原理になってるのか知らないんですが、
それはHTML挿入するだけのようなw
[4]
それは僕のcssの使い方がウンコなだけですw
>>193 ジャンルを実装しますた。
「おもしろ」「グロ」「エロ」の3種類です。
その種類はアイコンで表示されます。
ついでに、
ジャンルのアイコンにマウスを乗っけると、
Javascriptで画像のサムネイルがポップアップするようにしました。
IEで動くことを確認しました。
Firefoxでは動かないことを確認しましたw
Javascriptはさっぱり知らないので、テキトーに調べました。
おかしな挙動だったらごめんなさい。
見落としが… GDってgifもbmpもサポートしてないのね… リサイズ関係を大幅に修正しますた。 ものすごくスパゲティになってきたw ポップアップでサムネイルが出るのは、 jpgとjpegとgifとbmpとpngです。 gifとbmpはサイズが取得できないので、 ものすごく適当なサイズにリサイズされます。
さらに欠点が… 一覧表示の時も、サムネイルを表示するために そのページにあるファイルを全部読み込むっぽいです。 細い回線だとかなりしんどいかも。 いっそJPEGとGIFだけサポートにすりゃよかった…
投稿時にトリップつけられないことに気付きましたorz だんだんソースがゴチャゴチャで読めなくなってきたぞ…w
>>201 ちっこいサムネールハッケソしました。
頑張ってる感が伝わりほんわかしました。ただ実装にはもう少し改善の余地があるかも。
ジャンル分けの画像は面白いですね。
エロで投稿させていただきました。配布、一般公開の際はもう少しくっきりした変化が欲しいかもです。
あとは各自(管理者)でジャンルを増やせると良いですね。
風景、動物と言った具合に。
後もう一つ何か遊び心があるとpya!との差別化が図られて面白くなると思います。
ここが一番難しいでしょうが。
総じて見ると凄いなぁと。 自分にはここまで実現できる技術を持ち合わせていないので尊敬です。 自分の首を絞めることになりますが シェアウェアとして配布してもいけそうな気がします。 あとはpyaのように管理者のみ投稿できるまたは、投稿されたものを管理者が チェックしてから公開できると言うようなものがあると使い方が広がるかと思います。 自鯖は別として一般サーバーで使う場合には容量制限が厳しい為 容量制限等が出来ると助かります。
どもです。
>>205 サムネイルのサイズはconfig.phpで設定できます。
エログロもあるので、あえて極小にしました。
それぞれで分けることもできるけど、そこまでやるのは正直めんどくさいですw
ジャンルを増やすのはたぶん無理です。
最初からそういう設計にしてたらできたんですけど、
既につぎはぎだらけで手も足も出ません。
もともとが「pya!っぽいの作って」って依頼だったので、
別に特徴はなくてもいいんですけどねw
次に同じようなの作ることがあれば、ぜひ機能として取り込みたいです。
>>206 思わず吹き出しました。
DBを使い始めてからはテキスト処理をしなくなり、
GDを使い始めてからはgetimagesize等を使わなくなり…
どうも頼り切っちゃう性格のようですw
>>207 [File]という部分がハイパーリンクになってますので、
そこクリックしてもらえれば。
>>208 とんでもないです。
ショボい技を切ったり貼ったりして無理矢理作ってるだけで、
正直ソースなんか読めたもんじゃないです。
自分でも読む気がしないしw
この程度のデキではシェアウェアとしては考えてません。
配布するかどうかもわかんないですが、するとしたらフリーです。
> 管理者のみ投稿できるまたは、投稿されたものを管理者が チェックしてから公開できる
pya!さんのマネして作ってるので、こういう意見はごもっともだと思います。
が、あえて誰でも投稿できるようにしました。
管理者用のコンパネまで作り込んでれば、「これは公開〜」とか選べるといいんですけどね。
今回はそこまでは無理です。
ファイル1つあたりのサイズはconfig.phpで設定できます。
が、全体の制限は…無いですw
過去ログのページ数もconfig.phpで設定可能なので、
完全にファイルを消しちゃうと、ページ数を増やした時にマズいかなぁ、と。
最後に、
容量うんぬんもキツいもんがありますが、
それより何よりMySQLに対するクエリの発行がハンパじゃなく多いです。
ものすごく鯖に負担がかかると思われます。
こんなん配布したら殴られそうだw
おっぱい まだかにゃ
先生! ちょいと画像あぷろだをテンプレ化しようと踏ん張ってるんですが、 いかんせんcssの知識もデザインのセンスも無いので困ってます。 誰かテンプレいじってくれませんか?w
>>213 デザイン部分で切り離されているのならみんなしてくれるかも。
ソース頂戴。
すいません、HTMLさえ知ってりゃできるってのは大嘘です。 自分でも頭が混乱するぐらいよく分からない作りになってます。 こんなハズじゃなかったorz
>>214 テンプレとはphpのテンプレートなどを使用したhtmlファイルとかのことか?
cssテンプレートのことか?
htmlなどならさらしてくれ 協力する
テンプレ化後はテーブル使用してるな
誰が誰だかわからん。 少佐はトリップなりコテハンデブーすべし。
テンプレ作るのは出来そうだ。 ただ >管理者用のコンパネまで作り込んでれば、「これは公開〜」とか選べるといいんですけどね。 >今回はそこまでは無理です。 >それより何よりMySQLに対するクエリの発行がハンパじゃなく多いです。 >ものすごく鯖に負担がかかると思われます。 >こんなん配布したら殴られそうだw ってレス見てなんかモチベーションが激しく下がった。 すげぇ物に仕上げるから手伝えっていうならウォォォォ!となるが 今回は無理、鯖負担すげぇ、中途半端でいいでしょ的な発言見ると 手伝う事に意味は有るんだろうかと。 中途半端なままで良いと開発者が思うならデザインもこのままで良いかと思うんだ。 鯖負担がものすごい物なら使わないだろうし。 俺としては開発者の今後を聞きたいわけです。
>>220 正直なところ、すごいものを作る実力も予定もないです。
何より、作り始めた動機が適当です。
クエリ発行での負担というのは実際どの程度のものなのか知りません。
テキスト処理の方が重いのかもしれないし、そんなことはないのかもしれないです。
前にも書いたように、他人のスクリプトを読まない人間なので、
比較できません。
重いんだろうなぁ、たぶん。という感じです。
やっぱ最初の設計から失敗してると思います。
「pya!っぽいの作って」と言われたので、
pya!さんを見ながらPHPもデザインも一緒に作ったわけで。
そうではなく、ベースとなるテンプレから作るべきでした。
ということで、今後の予定。
おそらくこのスクリプトはこれ以上には発展しません。
発表会スレで人様に頼るのもおかしな話なので、
テンプレ作ってというお願いも取り下げます。
すいません。
あ、補足です。 > 管理者用のコンパネまで作り込んでれば、「これは公開〜」とか選べるといいんですけどね。 > 今回はそこまでは無理です。 前にも書きましたけど、pya!さんとは違い、 「誰でも投稿できる掲示板」ということで作ってるので、 最初からそういう考えはありませんでした。今も無いです。 「誰でも投稿できるor管理者が許可する」というスイッチは あったら便利だろうなぁ、とは思います。 ↑そういう理由で、これが今回は無理という意味です。
犬の散歩でヘトヘトになりますたw
>>223 どもです。
もーちょい自力でテンプレをいじり、
まともに見れるようになったら配布する予定です。
なぜか最近「スクリプト書きたい病」にかかってたので、
ちまちまと書いてました。
これからも惰性でちまちまと書きますw
>>225 style2.cssのビックリセンスはなんだw
目がチカチカしますた。
とりあえず「pya!カラー」を導入してはどうだろう。
真似る事は悪い事じゃない。
ウホッ!なんか面白い。 style999.cssで少し遊んでみます。
どもです。
>>227 「このテンプレをいじると、ここがこういう感じに変わりますよ」
ってのを示したかっただけなので、チカチカには意味はありませんw
>>228 どなたがアップロードされたのか知らないけど、
999のやつはよさげですね。
ありがたいっす。
>>229 999で遊ぼうと思いましたが挫折しますた。
意見良いですか?
Goodランキングのテンプレ
Badランキングのテンプレ
Imageランキングのテンプレ
Movieランキングのテンプレ
Soundランキングのテンプレ
Flashランキングのテンプレ
Hitランキングのテンプレ
↑が細かく分かれすぎてるのが使い辛いです。
いっその事「サイドメニュー」とかでひとくくりにしてもらった方が。
>>230 ご意見どもです。
> ↑が細かく分かれすぎてるのが使い辛いです。
> いっその事「サイドメニュー」とかでひとくくりにしてもらった方が。
ごもっともです。
配置はtemplate_index.phpの1つでいじれるので、
ランキングごとのテンプレは必要ないっすね。
まさかバラバラに設定する人も居ないだろうしw
#「ランキングの1位」「ランキングの2位」って感じで個別に分けたい!って意見も
#1人からだけ頂きましたがw 無謀なのでやめました。
>>232 えーと、できると思います。
が、何をアップしたのやらよく覚えてないです。
>>225 のFTPからダウンロードできるかもです。
>>230 「ランキング」という形で統一しました。
Badランキングだけは「Bad:○件」という形が予想されるので、別ファイルになってます。
Good ランキングとかImage ランキングっていう表題部分も ランキングのテンプレで変更できると少佐はイケメンになります。
>>234 どもです。
その部分はindexのテンプレで変更できるので僕はイケメンです。
あ、寝ぼけてました。 indexのテンプレじゃなくてランキングのテンプレに書かせろよ!って意味ですね。 考える人もびっくりするぐらい考え込んでみます。
何度もすいません。 10秒ほど考えて答えが出ました。 全ランキングのテンプレを統一したので、 ランキングのテンプレで変更するのは無理です。 indexのテンプレに書くということで… 以上、イケメンじゃない僕からのお願いでしたorz
>>236 そです。ランキングはランキングで全部まとめてくれちゃった方が楽でやりやすいかなぁと。
>>237 そですか(´・ω・`)
それでも暇見つけて遊んでみます。
>>239 ありがとです(´・ω・`)
じっくり考えてみたんですが、やっぱり無理そうです。
デフォルトのテンプレでは、
<tr>
<td>
ほにゃらら
</td>
</tr>
をループで処理してるのですが、
先頭にタイトルを付けちゃうと、タイトルも含めてループされちゃいます。
タイトル部分だけ別に1つファイルを作るってのも考えてみましたが、
それじゃあまり意味がないのでやめました。
テーブルを使う人もいれば、Div等しか使わない人もいるので、
決め打ちにしちゃうのは絶対ダメなので…
やっぱindexテンプレに書いてもらうしかなかとです(´;ω;`)
>>240 いやイイですよ。タイトルもループされちゃいますもんね。
完成イメージも無くフラフラ遊んでますので。
----自分メモ----
・index.php
・style.css
・ranking.php
を変更すた
---------------
>>241 うは、すごいです。
センスある方がうらやましいorz
PNGって小さくてもサイズがデカいですね… Jpegのみに変更しました。 #スレ汚しまくりw
>少佐 [新規投稿][ヘルプ][管理者]ってのはどの部分で変更?
>>245 えとですね、
/menu/template_menu.php
になります。
実はそこは完全にふつうのHTMLですw
>少佐 少佐、少佐、menu.phpの部分はわかったけどそれ[適用]できます? テンプレ選ぶ項目にmenu.phpの選択肢が無いような。
>>247 ついさっき気付きましたw
細かい部分なので後回しにしたまま忘れてました。
修正中ですm(_ _)m
たぶん選択できるようになりますたー。 すまそorz
なぜかNo7とNo9がおかしいっす。 なんでうまく置換できてないのやらorz
謎が解けますた。 リサイズしない場合の指定がおかしかったorz
画像とかドカドカ使って見たかったんですがとりあえず。 style999.css template999_index.php template_new999.php template_rankingu999.php template_ranking_bad999.php template_menu999.php イメージが無いままやったのでダラダラです。すいません。 少佐ガンバテ。
>>252 ありがとうございます。
わかりにくいものの、一応できるってことがわかってよかったです。
ほとんどテストしてないものでorz
助かりました!
>>252 先生!
このテンプレをデフォルトとして使わせていただけないでしょうか?
>>254 暖色は暑苦しいので爽やかにをコンセプトに色を変更しましたが失敗しました。
もう好きにしてください orz
style999.css →暑苦しい
style998.css →キモ爽やか
>>255 とんでもないです。
僕がやったら薄い色+薄い色で最強に見にくくなっちゃうのでw
「デフォルトテンプレ+サンプルテンプレ」として、
999と998を使わせて頂きますm(_ _)m
今はテンプレを選択できるようになってますが、
ちかぢか選択肢を無くします。
view.phpの方のテンプレも書かなきゃな…
おもしろやエロの代わりに画像使ってましたがアレは中止の方向ですか? かわいくて好きだったんですが。 新規投稿画面とヘルプももう少し見やすいと配布の際助かるかもしれません。 少佐の技術力はうらやましいなぁ。何度phpにチャレンジして挫折したかw
>>257 どもです。
ジャンルの画像は、テンプレ化の際にこぼれ落ちた機能の1つですw
あとでちらっと考えてみます。
新規投稿とヘルプと管理者画面と画像表示画面は、まだテンプレ化が終わってません。
そろそろ手をつけようかなぁ、という感じですw
技術は全く無いです。
9割がifしか使ってないので、ソース見たらかなりあほらしくなりますよw
ということでconfig.phpに、 「ジャンルを画像で表示するか文字で表示するか」 のスイッチをつけました。 今は画像表示になってます。
>>260 えとですね、
まず…
僕がまともにPHPさわり始めたのが、そのupdirをいじってからです。
頼まれていじってたものの、なかなか勉強になりました。
ということで、updirは個人的に大先生なのですw
今の状態だと「1ページ20件」とか設定できるんですが、
そういう計算がかなり苦手なんですよねw
なので、アルバム形式はどうだろうなぁっていう感じです。
僕の力じゃかなりしんどいかもw
画面の切り替えってのは、今の形とアルバム形式との切り替えって意味ですかね?
追記です。 アルバム形式が難しい理由で、こういうのもあります。 携帯用のページを見てもらったら分かると思うんですが(いや、分からんか)、 サムネイルはGDで作成してます。 そんで、GDではjpegとbmpとpngぐらいのサムネイルしか作れないです。たぶん。 この掲示板はaviもmpegもwmvもwmaもmp3もwavもflashもアップロードできるので、 そのへんのサムネイルをどうするかって問題があります。 特に動画なんかは、ファイルを全部読み込まないといけないので、 1ページ読み込むだけでものすごい時間がかかることになっちゃいます。 jpgとbmpとpngのみ表示、って制約をつけたらできるのかもしれませんがw
>>262 >この掲示板はaviもmpegもwmvもwmaもmp3もwavもflashもアップロードできるので、
>そのへんのサムネイルをどうするかって問題があります。
画像ファイル以外はサムネール表示してもあまり意味が無いと思います。
それでも並べるという場合には画像ファイル以外のサムネールをあらかじめ作っておき
それを表示させるという風に・・・とか。
※画像以外のサムネール
→FLASHと書かれた画像とか。
あくまでこのアルバム機能を導入する場合ですが。
今のものの出来上がりが見えてから考えるというのでもイイと思いますね。
>>263 んーと、jpegとpngとgif(widthとheight指定して縮めるだけ)とbmpだけなら、
ものすごく頭ひねればできるかもしれないです。
その場合、管理者が表示方法を決めるか、ユーザが決められるようにするのか、ってのも悩みどころです。
Flashや動画のサムネイルなんですが、これはPHPから自動的に取得ってできるのかなぁ。
少なくとも僕はやりかた知らないです。
ユーザがサムネイルもアップロードってのもアリですが、
それは今回はやりません。
もしやるとしたら(できるかわかんないけど)、jpegとpngとgifとbmpのみの
アルバム形式になると思います。
とりあえず今はアップロードのとこをいじってますw
>少佐 管理画面ににログインしたときに投稿者のホスト情報があると良い希ガス。 確か、ホストで投稿者弾けたよね?
>>265 あ、ごもっともです。
今から管理画面のテンプレ化なので、
ホスト情報も「###host###」とかで表示できるようにしてみます。
もうダメぽ。 頭がメモリ不足になりますた。 今日はここまでにします。 皆さんアドバイスありがとうございました。 ToDo:template_admin_delete.phpのあたり
少佐激しく応援しとるよ。
眠れないので作業続行してたりw
いちお管理コンパネの方もできたかなぁ…
テンプレだけで23ファイルってありえねええw
なんかコンパネの方はテンプレ化がむずいです。
>>268 ありがd!!!
さて、まだやることあったかな…
記憶が飛んじゃいましたw
少佐って車屋さんですか?
>>271 IPにアクセスしたら車屋さんのサイトへ飛んだものでw
>>272 ああ、なるほど。
それは兄貴がネタで作ってるだけのサイトですw
「オッサン死す」とか書いてあるしw
同じ回線使ってるので、80番取られてるんですよorz
>>274 画像クリックすると直接画像に飛ぶようで。
view.php?no=* へ飛ぶと二度手間になっちゃいますかねぇ。
それとアルバムは別画面で完全に切り離して表示させちゃってもいいかなと。
今の画像の量ですと問題ありませんが後々増えてくるときつそうです。
>>275 んーと、画像に直リンしてるのは暫定的にしてるだけです。
別画面というか、おそらくconfig.phpで設定した表示形式になると思います。
album.phpってのも暫定的なものなので、うまくいくようならindex.phpに組み込みます。
ページで分割したら画像の量は関係ないんじゃないかなぁ、と思ってるんですがどうなんでしょ。
>今の画像の量ですと問題ないですが後々〜 と言うのは[ 新規投稿 ] [ ヘルプ ] [ 管理者 ] の直下に 数十枚がずらーっと並ぶのは見た目的に結構きついのではという事です。 それならいっそアルバムはアルバムのページを作って見れた方が見やすいのでは と思ったもので。 さすがに頭が働かなくなってきました。寝ます。ノシ
>>277 んん?
なんか話が噛み合ってないようなw
アルバムはアルバム、今までのは今までので、まったく別です。
config.phpにあるスイッチで、どっちのタイプで表示するか選択します(予定)。
で、リサイズして表示するので、バランスは崩れないんじゃないかなぁ、という感じです。
1ページの表示量も設定できるようにする予定(ただの予定)なので…
逆に、config.phpのスイッチではなく、
ユーザが選択できるようにするというのもアリかなぁとは思います。
お休みなさい。
アルバム表示もできたかなぁ…という感じです。 もしかしたらバグだらけの可能性もアリ。 あんまテストできてないです。
アルバム表示について、ちょいと補足です。 iモード用のリサイズと違ってGDを使ってません。 <img src = "ほにゃらら" width="ほにゃら" height = "ほにゃらら"> としているだけなので、読み込みがしんどいです。 #仕方なくですorz
久々に見たら随分進化遂げてるねぇ。 少佐はほぼ寝ないでスクリプトいじってる気がするのだが仕事とか大丈夫なんだろうか。
暑い!!!!!!
>>281 幸いこないだから失業中です。
そういや30時間ぐらい起きてるなぁw
少佐(・∀・)イイヨイイヨー
ひょっとしてはげちょびん? 無理しないでガンガレ
23ではげちょびんはキツいっすw 明日から広島まで遠征するので、 今日は早めに寝ますノシ
おおおおれと同じとしだ俺はまだ学生でごじゃる 徹夜しまくってたら肌荒れとかしてけっこうきつい よよよろしく
広島土産まだ?
少佐!戦況を報告せよ!戦況を報告せよ!
どもです。 見たくもない戦艦大和を見てきました。 車酔いで死んできます。
pya!さんっぽい配色のテンプレ作ってみましたw
まともなcssを書けないので、あまり似てないのは大目に見てください…
ところで、今回は助言がほしいです。
広告についてです。
pya!さんのページの右下にあるような広告スペースって、
いくつかの種類の広告が出てますよね。
これってどのように実現されてるんでしょうか?
ttp://pya.cc/import/amazon1.html ここを見ると、xml(っていうの?よく知らないw)で書かれたページが
iframeで埋め込まれてるようなのですが、
このリンクは自動生成されるような仕組みなのですか?
何というか、その…
ユーザ側で広告のコードを1つずつ書いてるわけではなく、
特定のコードが広告主から配布されるのでしょうか?
「広告スペースを作れ」って声がちらほら聞こえてくるので、
教えてもらえるとうれしいです。
よろしくお願いします(∀`)
試しにAmazonの広告をつけてみました。 専用のタグが用意されるんですね。 複数の広告を表示する場合は、同じタグを書くだけでいいのかな…たぶん。
ランダムピックアップ機能をつけてみますた。 #それだけでいちいち書き込むやつw
携帯から投稿できるように試行錯誤中です。
[email protected] に写メールを送信すると、
画像あぷろだに反映されると思います。
#ヘタなコードなのでgifしか対応してない予感ですorz
DoCoMoのD251iとauのtalbyではうまく投稿できました。
が、投稿できない機種もあるんじゃないかと思います。
気になるのでテスト投稿してもらえるとうれしいです。
パケ代は払えませんけどw
たぶんgif以外にも対応できたのかなぁ… という感じです。 VodafoneのV301SHもうまく投稿できたようです。
そろそろスクリプト公開しても良いんじゃな〜い?
>>295 すんませんorz
ソースの公開って、自宅の押し入れの公開ぐらい恥ずかしいもんですね。
扉はふつうなのに、中にゴキブリが300匹!的な。
まだ公開できない理由が2つほどあります。
1つはまだ言えないんですが、
もーひとつは、実はこのスクリプトを就活で使おうと思ってます。
この程度のものが作れます的なアピールに使おうかと。
そういうわけで、もう少し待ってくださいorz
ちなみにメールから画像を取り出す部分は、
レッツPHP!さんの写メールBBSを参考にしました。
ちらちら見ながら自分で書いたせいで、関数化とかされてません。
ていうかこのスクリプト、ほとんど関数ないなw
写メールBBSとはロジックが全く違っちゃってて、死ぬほどうさんくさい作りになってます。
正規表現とか知らないので超強引にやってます。
なので動かない機種が多そうで怖いw
というか、よく動いてるな…
毎度のことながら、そろそろコードが肥大化して追いきれなくなってきました。
1時間ぐらい天日干ししたソーメンに近い絡まり方です。
少佐の参考書籍を教えてくだせー 漏れも簡単なうぷロダ作ってみたい
すいません、そのへんのあぷろだで携帯動画見つけましたorz 必死こいて作業してきます。
うーん…
PCからメールで.3gpのファイルを送信したところ、
Flashに変換できました。
[email protected] 宛に携帯の動画を送信してもらえると、
うれしさのあまり鼻血出すかもしれませんので、
手伝ってくださる方がいらっしゃったらよろしくお願いしますm(_ _)m
>>304 ソースも公開しない、出来たものは就活に利用
と100%自己利益の人に協力する人がいるんですか?
>少佐 きちんと再生されたーよ。
>>305 すまそ。
今公開できない理由は以前書いた通りなので、申し訳ないです。
>>306 ありがとうございます。
できれば機種が知りたかったりしますorz
漏れの携帯は古いざんす だからお役には立てない ちなみに機種はドコモ251iS 今日は暑いよ少佐(;´Д`)ハァハァ
>>308 僕の携帯なんかD251iっすよw
FOMA電波入らないorz
気温34度+PCの熱で40度の部屋に生息してます。
扇風機ぐらい欲しいよ(;´Д`)ハァハァ
|_∧ |∀・) ソーット・・・ |⊂) |/
ものすごく申し訳ない報告です。 画像あぷろだのソースは公開できないかもしれませんorz 就活じゃない方の理由のためです。 その理由なのですが、書いていいのかな… 某レンタル鯖会社さんから、「レンタルサービスとして使いたい」という要望がありまして、 ソースを公開するのはマズいかな、という判断です。 僕の技術不足でポシャる可能性はかなりあるのですが、 正式に某社さんにソースを渡すことになった場合、公開はできません。 完全に分岐して進むという手もあると思うのですが、時間的に厳しそうです。 「やっぱやめます」と言われた場合は公開します。 さんざんお手伝いしてもらっておいて申し訳ないですorz
GPL にしたいんですが……とか言っちゃえよ。
>>312 どもです。
GPLってよく聞くけどどういうものだか知りませんorz
ソースの改変をしない限り再配布とかOK&ソースは公開しなさい、
みたいなものだと勝手に解釈して生活してます。
某社さんから見積もりを頼まれたので「無料で」と言ったのですが、
「できればきっちり請求してもらって、どんどん改良してほしい」
との返事をもらいました。
正直なところ、就職が決まればそんなに時間も無くなるのは目に見えてますので、
かなり重荷に感じてるとこです。
お金は取らない、でも後のサポートもしません、が楽で理想なんですけどね。
お金を取ったくせにバグだらけじゃないか、と言われるのが怖いので、無料で貫く予定です。
もっとも、こちらからお断りしてソース公開というのもアリかなぁとは思います。
ホントに適当な動機で作り始めたものなので、商用に耐えられるとは思えませんし。
ついでに、Flashが「おそらく再生できない」こともほぼ確認できちゃいましたしorz
僕には原因が理解できないからタチ悪い…
そんで、今の僕の心境をぶっちゃけちゃいますと、
できれば某社さんに使ってもらいたい。
そして、それを実績として掲げて就活に挑みたい。
しかしながら、サポートする技量もない&おそらく続かない。
「某社からこういうお誘いを受けたことがあります」
程度にとどめて、気軽にソースを公開するのが一番楽かなぁ、と現実逃避してます。
自他共に認める優柔不断野郎ですorz
お金貰って開発するのに慣れといた方が良いかもよ。 こういう経験がハクになったりするもんだし。 と混ぜ返すテスト
>>314 ごもっともです。
ただ、↑にも書いたように、就職しちゃうと改良する時間が取れないと思うのです。
動いてるのが不思議なぐらいのスパゲティコードなので、かなりの時間を割かれそうです。
何よりも一番大きいのは、↑に書いたように責任問題です。
このスクリプトのせいで某社が致命的な損害を被った場合に、僕は一切責任を取れません。
・無料でよければソースの譲渡には応じます。
・このスクリプトがサービスとして採用された場合は、ソースの一般公開はしません。
・ただし、致命的なバグ等によりFC2さんが損害を被った場合、僕は責任を取れません。
・こちらに時間に余裕がある時以外はタッチできません。
という条件を提示し、
「それがダメなようなら今回の話は無かったことに…」
って感じのメールを送信しておきました。
あぁ、暇つぶしにしては荷が重すぎるorz
ぐあ、社名書いてしまったorz 見なかったことにしてくださいorz
>>315 fc2ってこんなところ見てたんだw
あそこ規模はそこそこ大きいけどねぇ。
俺の案として、少佐がfc2に就職を条件に技術提供って言うのはどう?
>>317 どもです。
これは絶対書かない方がいいんだろうけど…
実は相手さんからそういう話がありました。
が、僕は行きたい会社があるのでお断りしました。
僕のサイトに来る方の99%は、
このスレか某CGI登録サイトからです。
どっちから流れてきたのかは知りませんがw
少佐がどんどん遠くへ・・・(〜´Д`)〜
あ、バグ見つけたので修正しますorz
ファイルが存在しません。とデルピエロ
>>324 DLのボタン押すと出る
もち
37636f11cc286b67fe632247cd2e18adもパスも間違ってない
ちなみに以前も結局DLできなかった
>>199
>>326 少佐わざわざあいがと
だけどソースの感想は書けないよ
初心者より劣るバカだから
↑で書いた条件でOKだそうです。 なので、申し訳ないのですが画像あぷろだのソースは公開できそうにありません。 orz
就職しちゃいなよf2xだかなんだか知らんが(いや知ってるけどさ)、 せっかくの機会だからユーザ密着型会社に変えちゃいなよ
>>330 僕の行きたいとこも超零細ベンチャーなので、さらに密着だと思います。
ディーフェンス!ディーフェンス!
そろそろ削除依頼だせや
>>332 すいません。
僕が黙ればいい話であって、削除依頼は全然関係ないと思います。
また何か作ったらお邪魔します。
今度こそ公開できる形でorz
制作途中の代物ですが、発表しちゃっていいですか? とりあえず動きますお程度でしが。。。
勝手にどうぞ
なーにこれ(・∀・)
phpでつくった2ch viewerなのです。。。(;´Д`)
ろーかるでピロピロしてみたけど使い方が… もふもふ
著しく未完成なんでアレですが、 正しく動いていれば、3ペイン表示で、めぬーが表示されるです。 で、右上がスレ一覧。右下がスレッド。 メニュー内でリンクになってる項目をクリックすれば、スレ一覧が表示されます。 ここら辺からちゃんと動くか微妙ですが、 スレ一覧のリンクになっている項目をクリックすれば、そのスレのdatが表示されます。 開発環境はMacOSX10.3.9(PHP4.3.11) mbstringが有効になってないと動かないかも
前述のうpろだに改訂版をうpしますた datを出力せずに、ちゃんと整形してます。。。 upld6574.zip
>>341 Undefined property: Thread::$name in <b>C:\home\php\tashiro2ch\Subject.class.php
$uri .= '&name=' . rawurlencode($this->name);
$this->nameが無いんですけど$this->numの間違い?
urlencodeしてるからtitleのことかな? でもtitleは別にあってそっちはurlencodeしてないというオチだし
>>342 $uri .= '&name=' . rawurlencode($this->name);
いらないですね、この行。
>>343 でもtitleは別にあってそっちはurlencodeしてないというオチだし
そうですね。。。('A`)
345 :
nobodyさん :2005/07/21(木) 23:52:46 ID:4e4JAntI
公式稼動キタ━━━━━━(゚∀゚)━━━━━━ !! 採用オツカレチャーン! ちょっとまだ個人サイトっぽい雰囲気?
まだレンタルのロジックが空白なので、 このままじゃ全く使えませんw っとお邪魔しました。
>>348 少佐立派になったなぁ。デザインも使ってくれてるみたいで兄さん泣きそうだ。
少佐が出世して会社作ったら俺を入れてくれ。
じゃあガンバテー。
しつこく登場する僕
>>349 むしろ「兄さんがデザインを提供して頂いたおかげ」ですよ。
ホントに感謝してますw
また今度よろしくお願いします。
|)))
超初心者がPHP5でsimpleXMLを使ってみたくて書いたRSS表示スクリプト。
phpの常識なんてまったく知らないので優しく突っ込んでね・・ :D
<?php
$xml = simplexml_load_file("
http://heeha.ws/cgi-bin/blog/index.rdf ");
//print_r($xml); // 配列を出力してみる。
//表示する記事数
$kijisu = 10;
//表示を開始する記事
$kijino = 0;
while( $kijisu != $kijino ){
print "<br><br>";
print "<a href=";
print $xml->item[$kijino]->link;
print ">";
print $rss_title = $xml->item[$kijino]->title;
print "</a>";
$kijino++;
}
?>
while( $kijisu >= $kijino ){ にした方が良い気がするのはワタスだけでしょうか いや、生理的に
fc2がこのスレ見てるとしたら何か作ってみようかな いくらくらいもらえるんだろう
fc2社員が潜伏するスレはここですか?
スクリプト書いたーとか言っても、 結局は誰かが書いてるの引っ張ってきていぢってるだけの自分がいやだ。。
誰かのパクリだとしても何も作ったり挑戦しないよりはイイ! と自分に言い聞かしております 最初からフルスクラッチなんか難しいし
>>351 何点か気になることがあるので漏れなりに書き直してみた。
1.aタグのhref属性は"で囲んだ方が安全
2.「print $rss_title = $xml->item[$kijino]->title;」の一文がバグっぽい(?)
3.「n回繰り返す」という場合はfor構文を使う方が自然
4.HTML出力する時は文字列に入れて最後にまとめてが好き
3と4は好みの問題もあるんで、気に入らなければスルーしてくれ。
<?php
$xml = simplexml_load_file("
http://heeha.ws/cgi-bin/blog/index.rdf ");
//print_r($xml); // 配列を出力してみる。
//表示する記事数
$kijisu = 10;
//表示を開始する記事
$kijino = 0;
$html=""; //HTML生成用文字列
for ($i=0; $i<$kijisu; $i++){
$item = $xml->item[$kijino];
$html .= "<br><br>"
.'<a href="' .$item->link. '">'
.$item->title
."</a>";
$kijino++;
}
print $html;
?>
>>357 これでもよくない?
<?php
$xml = simplexml_load_file("
http://heeha.ws/cgi-bin/blog/index.rdf ");
//表示する記事数
$kijisu = 10;
for ($i=0; $i<$kijisu; $i++){
echo "<a href={$xml->item[$i]->link}>".$xml->item[$i]->title."</a><br><br>";
}
?>
>>358 href属性を引用符で囲ってないのと
元のプログラムと動作ってか設計思想
(具体的には開始記事を0で決め打ちしてるところ)
が変わって来てるのがちょっと気になるな。
まあ、仕様がどうだかわからんし、
プログラムは一目見てすっきりしてるしいいんじゃね。
スゴス
363 :
nobodyさん :2005/11/22(火) 23:25:07 ID:6UoElGik
agare
超亀レス
>>355 他人のソースを読んで理解して修正するよりイチから書いた方が楽。
もっと胸張ろうぜ!
<?php phpinfo(); ?>
367 :
nobodyさん :2005/12/16(金) 18:34:00 ID:E9pCzORG
あげ
少佐キテタ━━━━━━(゚∀゚)━━━━━━ !!
>>365 俺もクラスの勉強始めますた
>>368 少佐就職先決まった?
それとpyaみたいな画像アプロダ完成度高くなったね。
ただ、まんまpyaなのでどこで差をつけられるかが重要かと。
>>369 バレた(;゚д゚)
相変わらずクソ汚いソースで、そろそろ自分でも理解できなくなってきました。
僕はクラスなんて知らないので毎度セコい書き方でごまかしてますorz
/*どうでもいいけど、昨日ようやく就職が決まりました。
どんだけ時間かかってるんだ(´゚w゚`;)*/
>>370 あ、書いてる間に書き込みが…
あくまで「pyaみたい」であって、それ以上のものはとても作れません。
というか、以前のやつより劣化してます。
見た目がちょっとマシになったかな?ぐらいでw
しかし同じもの書くのは飽きてきたので、そろそろペースが落ちてきましたorz
373 :
nobodyさん :2005/12/17(土) 13:00:25 ID:zD/7oFyE
374 :
373 :2005/12/17(土) 13:00:54 ID:???
あげてしまった…。 スマソorz
>>371 就職先の詳細希望。
まさかfc2なんてオチはないよな?それとそのソース見せて採用されたの?
このスレで自作スクリプト晒せば就職できるのかと思ったけどそんな甘くないのか
少佐(*´Д`)´`ア´`ア
クラス勉強するならPHP5でな 4のクラスの糞っぷりはもう・・
少佐少佐 ダウンロードのリンクおかしくない?ソース落とせないorz
うぷえもんの完成まだー?
>>381 0.0bに更新してソースを置いておきました。
ttp:// 〜:9999/ から落とせると思います。
<? //URL自動リンク function Auto_HyperLink_Tags($somevar){ $URLSearch="/(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/"; preg_match_all($URLSearch, $somevar, $Matches); $Search=$Matches[0]; foreach( $Search as $val){ $Replace[]="<a href='{$val}'>{$val}</a>"; } $result=str_replace($Search,$Replace,$somevar); return $result; } ?>
>>385 //URL自動リンク
function Auto_HyperLink_Tags($somevar){
$URLSearch="/(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/";
preg_match_all($URLSearch, $somevar, $Matches);
$Search=$Matches[0];
foreach( $Search as $val){
$Replace[]="<a href='{$val}'>{$val}</a>";
}
$result=str_replace($Search,$Replace,$somevar);
return $result;
}
$a=Auto_HyperLink_Tags("
http://example.com/<br >
http://example.com/ ");
print $a;
>>383 >残りの20%が携帯の絵文字と最終確認
携帯絵文字はウンコ、携帯厨は氏ねですよ。
バタバタ
〃〃∩ _, ,_
⊂⌒( `Д´) < はやくうぷえもん頂戴
`ヽ_つ ⊂ノ
>>387 友達にアイコンを描いてもらってるので、もうちょい待ってください(「・ω・)「
携帯の絵文字はほっといて、とりあえず版のソースをそのうち出しますorz
うぷえもん(*´Д`)´`ア´`ア
391 :
385 :2005/12/21(水) 19:28:39 ID:???
>>386 いきなりバグだ…orz
どうも同じURLだとなるみたいなんだけど…
なぜだ、分からん。str_replaceの挙動?
>>393 mb_language( "ja" ) の後に mb_internal_encoding( "SJIS" ) とした方がいいと思う。
あと、body と subject の JIS 化はいらない。
配列をコンマ区切りにするのはちゃんと関数があるのでそれを使うべき。
join( ", ", $this->cc ) って感じで。
to cc bcc を追加する関数は
function to( $to ) {
$this->to[] = $to;
}
でいいと思う。
395 :
393 :2005/12/25(日) 09:59:40 ID:???
>>394 サンクス!!!
んで、ぶっちゃけ使えそう?
396 :
393 :2005/12/25(日) 10:38:10 ID:???
バージョンうp。 394の指摘を変更と、コンストラクタがとんちんかんな事をしてたの修正。 あと、「body と subject の JIS 化」を解除したら、 漏れの環境ではsubjectが化けるようなので、それは保留。
397 :
394 :2005/12/25(日) 16:35:03 ID:???
後は、他人が使うことを考えて、メアドのチェックかな。 ちゃんとメアドが存在してるかどうか。 メアドが無くても、最低限、サーバーが存在してるかどうか。 function Check( $address ) { $flag = FALSE; list( $user, $host ) = preg_split( "/@/", $address ); unset( $user ); $ip = gethostbyname( $host ); if( preg_match( "/^[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}$/", $ip ) ) { $flag = TRUE; } return $flag; } これをアドレスを追加するメソッドに組み込んで、TRUE ならアドレス追加、ってことにすればいいと思う。
398 :
394 :2005/12/25(日) 16:39:13 ID:???
あと、俺はメールサーバーを構築できない環境でメール送信とかを しなきゃならんときがあるので、メール送信をソケットで行う関数を作ってる。 さすがにこれは悪用できるので晒さないけど。 あぁそうそう。 基本的なことだけど、クラス変数名とメソッド名は分けた方がいい。 var $body; function SetBody( $body ) { } こういう感じで。 また、body の追加だけど、1 行追加タイプにするほうがいいかも。 function body( $body ) { $this->body .= $body . "\n"; } これくらいかなぁ。
399 :
393 :2005/12/25(日) 18:11:12 ID:???
400 :
394 :2005/12/25(日) 18:56:06 ID:???
もうちょっとだけ・・・ クラス変数の宣言時に初期化しておいて、コンストラクタで mb をセットしたらいいかも。 var $from = ''; var $body = ''; var $subject = ''; function send_mail() { mb_language( 'Japanese' ); mb_internal_encoding( 'SJIS' ); } また、メールの追加ヘッダはきちんと書いた方がいいね。 \n じゃなくて \r\n にして。 これでメソッド名をわかりやすくしてやると、かなり使い勝手いいかも。 あ、send_mail.php の方だけど、$obj->cc = file( 'xxx.txt' ); はやめた方がいい。 PHP4 には private の概念が無いからクラス変数を直接操作できるけど・・・
なにやらすごいぢょ 俺にはちんぷんかんだけど(^ω^;)
理由も説明せずに他人に自分の好みを押しつけようとしているのだけはわかった
405 :
393 :2005/12/26(月) 16:12:40 ID:???
>>394 なるほど、そっちの方がスマートだ!
>>402 理由説明してくれてるじゃないか。
で、バージョンうp
・コンストラクタ変更
・追加ヘッダ記述修正
・メソッド名変更
・host_exists()の機能にメールアドレスかどうかのチェックも入れた。
・send()で結果報告が返ってくるようにした。
良ければ使ってやってください。
407 :
394 :2005/12/26(月) 21:47:54 ID:???
mb_send_mail の結果だけど、これって微妙なのよね。 メールサーバーに送信データを投げれたかどうかしかわからない。 メールが送信されたかどうかは判別できないのよね。 まぁ普通はメールサーバーに投げれたら、メールは送信できるけど。 このクラスは結構使いやすいんじゃないかな。 こうした方がいい、ってのはもう無いはず。 後は俺の自己満足で。 SetBody1 ってメソッドだけど、俺なら SetBodyln にするかな。 Java を見習って。 これはほんとに自己満足なんで、どーでもいいとこやけど。 393、お疲れ様でした。
ここは良いヌレだな あとは少佐のうぷえもん完成を松とするかw
>>393 俺ならSetXXXのメソッドはAddXXXにするなあ。
FromとSubjectはSetでわかるけど、Toや本文は追加じゃん。
あとはSetMailに配列でアドレスを渡せるように出来たら嬉しい。
Send(string from, array to, string subject, string message)
的なシンプルなインターフェースもあると便利な時もあるかも。
以上、ワガママでした。
古いphp用にヘッダ中の改行を削除して適切に行の長さを揃えるとか、 何百と送信先があるときにいちいちgethostbyname()するのはwebアプリでは 待てんからチェックしないオプションを付けるといいかもね。
411 :
393 :2005/12/27(火) 13:00:12 ID:???
>>407 mb_send_mailの結果>
そうなんだよね。あったら使いやすいかなって。
本当にお世話になりました。
どうみても先生です。本当にあr)ry
>>409 メソッドはAddXXX>
漏れも悩んだんだよねぇ。どっちかに統一した方がいいと思ってさ。
もしくは、上書きと追加で別に作った方がいいのだろうか?
SetMailに配列>
だよね!それやろう。
>>410 gethostbynameオプション>
間違いないね!それやろう。
うほっ、
>>393 はメール送信スクリプト?
便利だな!
ありがとん。
自分もここでスクリプト発表出来るように今から勉強します。
ノシ
413 :
393 :2005/12/27(火) 16:26:00 ID:???
>>413 乙 俺だけかもしんないけど重さは感じないよ
>>414 少佐すげー 俺、mt使いだけど比べてどうなん?
minilogの特徴あったら教えて
それとね、前に国連式みたいなアプロダあったやん
あれ「CGI探してます」スレ等でも需要度高いから復活きぼん
最近スレの書き込みが活発なようなので一応トリップつけときます。
>>415 ありがとうw
しかし、MTと比較しようとするのが(ry
minilogの特徴:ショボい
どんなスクリプトでもそうだと思うんですけど、
メインページ : 管理ページ = 2 : 8
ぐらいの比率ですよね。
ということで、まだ2割しかできてません('A`)
あぷろだは↓にあります。
ttp://sv1.no-ip.org/d/?q=node/1
・MySQL 4.1以上 厳しい(><) さくらもXREAも無理じゃないですか!
少佐(*´Д`)´`ア´`ア
>>414 適当に開いて読んでるけど
up_check.php
7行目でextractしているのに、10, 11行目で$_POSTを使うのはなぜ?
9行目、htmlspecialcharsは不要。というかしちゃいけない気が。(例えばtest&test.txtならtest%quot;test.txtになって、44行目pathinfo($_FILES['upload_file']['name'])でNo such fileで落ちる)
>>417 MySQL4.1以上ってのは適当に書いてます(;゚д゚)
環境が無いので動作確認してないってだけです。
insertとdeleteとcreate tableとdrop tableとupdateしか使ってないんで、
たぶんMySQL3.0でも大丈夫なんじゃないでしょうかw
>>419 なるほど、参考になります。
9行目はhtmlspecialcharsを削除しておきました。
7行目は特に問題ないと思うので勘弁してください。
extractという関数を知って、喜んで使っただけだと思われます(;゚д゚)
>>422 それは ライトプラン(月額125円)の話しだろ?
スタンダードプラン(月額500円)以上はPHP も MySQLも使用可能。
XREAは無料で使える
少佐どこまで行くの?(*´Д`) つーか年末なのに暇なの?(・ω・` )
428 :
nobodyさん :2005/12/31(土) 10:47:55 ID:QV55QLG6
429 :
428 :2005/12/31(土) 10:57:55 ID:???
あ、重要なことを忘れてました。 このモジュールは、まだ XML宣言・ドキュメントタイプ宣言・コメント・PI・実体参照 etc を扱うことが出来ません。。。(´・ω・`)
430 :
nobodyさん :2006/01/04(水) 16:19:48 ID:PpH7t0Dm
キーワードから関連するトラックバックURLやらpingurlやらを 自動で収集するプログラムないかな?
>>430 まじめに回答してほしいならもっとkwsk。
本気で探してるならスレ違い。
マルチだから放置汁
433 :
nobodyさん :2006/01/04(水) 22:50:08 ID:yE7kg+Cr
プロキシ遮断スクリプトとかないの? ポートスキャンとかしちゃってさ。
BBQ組み込んじゃえば?
BBQがいいよ。 $bbq = explode(".",$addr); $bbq = gethostbyname($bbq[3].".".$bbq[2].".".$bbq[1].".".$bbq[0].".niku.2ch.net"); if($bbq == "127.0.0.2"){ $bbq = 1; } if($bbq){ error("公開プロキシ規制中!"); } これでよろし。
そうそう、肉とかとうもろこしなんか焼いちゃってサ
BBQやりてー
つ Namazu っ 鮠の蒲焼き
少佐新年だよ少佐(*´Д`)アケオメ
>>439 わざわざどうも(;゚д゚)
皆さんあけましておめでとございます。
>>428 使い方がさっぱりわからん。マニュアルぐらい載せてほしい。
直リンしてもた、すまそorz
うぷえもんキタ━━━━ヽ(・∀・` )ノ━━━━ッ!!!! じっくりことこと弄ってみるよ ありがとぅ
>>444 氏
あんまいじると動かないかもw
もうよく覚えてないけど(´゚д゚`)
お、うぷえもん完成したのか どれどれ…
うぷえもんぃぃょうぷえもん
448 :
nobodyさん :2006/01/18(水) 10:07:50 ID:d+ZzOlPl
age
<? class jojo{ $damage=0; function atack(){ while(true){ echo "無駄"; $damage++; } return($damage); } }
ザ・ワールド!
451 :
nobodyさん :2006/01/21(土) 12:59:16 ID:rfPmX8eK
<?php header("Content-Type: text/html; charset=Shift_JIS"); $aryTitle = array("大吉","中吉","小吉","吉","凶"); $aryKuji = array( "大吉" => "残念、大吉を出すために運を使ってしまった", "中吉" => "ラッキー、今日はいいことありますよ♪", "小吉" => "小さな幸せ", "吉" => "つまらん一日を…", "凶" => "引き籠る"); shuffle($aryTitle); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <title>おみくじ</title> </head> <body> <h1>おみくじ</h1> <dl> <dt><?php print($aryTitle[0]; ?></dt> <dd><?php print($aryKuji[$aryTitle[0]); ?></dd> </dl> </body> </html>
>>452 > Parse error: parse error, unexpected ';' on line 20
> Parse error: parse error, unexpected ')', expecting ']' on line 21
ここはnotepad.exeじゃないぞw
>>453 スマソ訂正:
<?php
header("Content-Type: text/html; charset=Shift_JIS");
$aryTitle = array("大吉","中吉","小吉","吉","凶");
$aryKuji = array(
"大吉" => "残念、大吉を出すために運を使ってしまった",
"中吉" => "ラッキー、今日はいいことありますよ♪",
"小吉" => "小さな幸せ",
"吉" => "つまらん一日を…",
"凶" => "引き籠る");
shuffle($aryTitle);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<title>おみくじ</title>
</head>
<body>
<h1>おみくじ</h1>
<dl>
<dt><?php print($aryTitle[0]); ?></dt>
<dd><?php print($aryKuji[$aryTitle[0]]); ?></dd>
</dl>
</body>
</html>
>>454 訂正しても使えないものは使えない
自分で試してからにしてくれ
>>455 使えるよ。
使い道は無いけど。
名前に動作確認済みって書いてあるし。
454は俺も動かなかった ま、どうでもいいけどさ
頭の中でも動かなかった
配列のほうをシャッフルするのか 俺なら添え字を乱数で生成するけど
そもそもエラーで(ry
私はエラーでなかった。 需要ないけどね、このおみくじ…。
PHPよくわからないけど配列のやり方の勉強になった。 ここって初心者が書いたスクリプトもOKなんでしょ? こういう雰囲気だと出しにくいよ。
>初心者が書いた入門スクリプト、ベテランが書いたすげースクリプト。 どっちも歓迎。 まぁ叩かれても諦めずにやれば良い物が書けるようになるさ
じゃあ、俺も、、 『携帯固有番号対応ホスト抜き出し関数』 function Get_USER_HOST(){ $host = getenv("REMOTE_HOST"); $addr = getenv("REMOTE_ADDR"); if($host == "" || $host ==$addr){ $host = gethostbyaddr($addr); } if(ereg("docomo.ne.jp",$host)){ $serial = $_SERVER[HTTP_USER_AGENT]; $serial = explode("ser",$serial);$serial = $serial[1]; $serial = substr($serial, 0, 11); } if(ereg("ezweb.ne.jp",$host)){ $serial = $_SERVER[HTTP_X_UP_SUBNO]; $serial = str_replace(".ezweb.ne.jp","",$serial); } if(ereg("jp-[a-z].ne.jp",$host)){ $serial = $_SERVER[HTTP_USER_AGENT]; $serial = explode("SN",$serial);$serial = $serial[1]; $serial = substr($serial, 0, 11); } if($host == "p2.2ch.net"){ $serial = $_SERVER[HTTP_USER_AGENT]; $serial = explode("p2-client-ip: ",$serial);$serial = $serial[1]; $serial = explode(";",$serial);$serial = $serial[0]; } $USER_HOST['host'] = $host; $USER_HOST['serial'] = $serial; return $USER_HOST; }
なんとも気持ちの悪いソースだ
独学我流でやるとこうなるってことだ、、
$serial 使いすぎです><><><><><><
>>454 普通はこう
配列のkeyに日本語よくないねー
<?php
header("Content-Type: text/html; charset=Shift_JIS");
$data = array(
array( '大吉','残念、大吉を出すために運を使ってしまった'),
array( '中吉','ラッキー、今日はいいことありますよ♪'),
array( '小吉','小さな幸せ'),
array( '吉','つまらん一日を…'),
array( '凶','引き籠る')
);
$num = rand( 0, count( $data)-1);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<title>おみくじ</title>
</head>
<body>
<h1>おみくじ</h1>
<dl>
<dt><?php echo $data[$num][0]; ?></dt>
<dd><?php echo $data[$num][1]; ?></dd>
</dl>
</body>
</html>
おれなら array( array( 'fortune' => '大吉', 'comment' => '残念、大吉を出すために運を使ってしまった' ), array( ... ), ... ); ってやるな
おれなら <?php header("Content-Type: text/html; charset=Shift_JIS"); $data = array( array( '凶','引き籠る') ); $num = rand( 0, count( $data)-1); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <title>おみくじ</title> </head> <body> <h1>おみくじ</h1> <dl> <dt><?php echo $data[$num][0]; ?></dt> <dd><?php echo $data[$num][1]; ?></dd> </dl> </body> </html> ってやるな
472 :
468 :2006/01/23(月) 20:29:00 ID:???
>>470 コーディング量が増えただけ
>>471 ちょwwwかわってないww
むしろ、こういうのはタブとかコンマ区切りのテキストファイルとかでデータ作っとく方がいいよね
<?
/* テキストファイルex.txt
大吉,残念、大吉を出すために運を使ってしまった
中吉,ラッキー、今日はいいことありますよ♪
小吉,小さな幸せ
吉,つまらん一日を…
凶,引き籠る
*/
$tmp = file( 'ex.txt');
$val = '';
foreach( $tmp as $val){
$data[] = explode( ',', $val);
}
nl2br( print_r( $data));
?>
>$val=""; 不要
474 :
470 :2006/01/24(火) 09:31:49 ID:???
>>472 > むしろ、こういうのはタブとかコンマ区切りのテキストファイルとかでデータ作っとく方がいいよね
基本はそれ前提で考えてる
なんで連想配列にするかっていうと、二次元配列の添字だけ
見ても何の処理してるのか分かりにくいから
まぁこんだけのスクリプトならどうでもいいけど、分かりやすく
書く習慣はとても大事だと思っているんで
>>475 配列に入っている値を順に取り出す処理でループの外の初期化になんの
意味があると思って Google へのリンクを貼ってるのだろう
477 :
nobodyさん :2006/01/24(火) 16:41:34 ID:6HwgBAbK
479 :
477 :2006/01/24(火) 22:55:14 ID:???
>>478 神過ぎる。
ありがたく使わせて頂きます。
>>479 どういたしまして過ぎます。
1カ所だけ修正したので、DLしなおしてもらえるとうれし過ぎます。
481 :
477 :2006/01/24(火) 23:21:50 ID:???
>>480 早速DLし直させて頂きました!
ありがとうございま過ぎる。
少佐(*´Д`)´`ア´`ア
たびたびごめんちゃい。
ログの上限を超えた場合の自動削除で、ファイルを削除し忘れてますたorz
修正しときますた。
あと、
>>80 氏のより遙かにヘボいと思われます。
保守できないサイトの多いこと多いこと。
484 :
popo :2006/01/25(水) 07:39:44 ID:???
高性能テキストカウンターをつくっているんですが高機能と言ったらどんな機能が必要でしょうか?
>>484 高性能なのか高機能なのかどっちだ?
どちらにせよ、機能的にはアクセス解析で何ができるかが肝となるわけだが。
>>484 強固なロック(環境に依存しない unix windows)
今日、昨日、全部
二重ログ(トラブル時自動復帰)
ログのバックアップ(上記の自動復帰の予備)
時間指定で連続カウントしない設定可能
画像、画像連結、GD、テキスト設定可能
桁数設定可能
javascript ssi img php それぞれの呼び出しに設定可能
こんな感じでどう?
>>490 難しいというか、え?何のこと?というあれです。
そのようにしておきました。
ログデータの互換性が無くなったかもしれません。
.htaccessを追加しましたが、確認してないのでよくわかりません。
DLは同じURLからお願いします。
>>491 お先においらが頂いた ムフ♥
少佐(*´Д`)´`ア´`ア
>>491 ggggggggggggggggggggggggggggggggggggggggggj
纏めサイト運営してるんでd
>>491 logも問題ないです、少佐ありがとう。
>>492-494 適当にやったものに限って使ってもらえてうれしいです。
明日引っ越しするので、しばらく鯖の電源を切ることになります。
引っ越し先でネットが繋がったら、またよろしくお願いしますm(_ _)m
ふむ、全裸で少佐の復活待ってる
少佐のサイトへ行くとfc2の無料鯖へ繋がる。 しかも、 >リアル引っ越し中です。そのうち復活する予定です の文字。 少佐、つまりfc2へ入社すると暗に示しているんですね?
>>496 じゃあ僕も全裸で新幹線に乗りますね。
これで偶然すれ違ってもお互いに一目瞭然で安心です。
>>497 僕はfc2ちゃいます('A`)
NotFoundじゃマズいかなぁと思ったので適当に手軽なWebスペースをレンタルしただけです('A`)
ということで、PCを梱包してきます。
いてら〜 ノシ
少佐・・・どこへ・・・少佐(*´Д`)´`ア´`ア
501 :
nobodyさん :2006/01/26(木) 23:33:36 ID:P4JZCK77
姉歯物件悲惨だな
504 :
503 :2006/01/27(金) 19:16:05 ID:???
でもすごいと思う。尊敬する。
これだけでっかいプログラム組むのすごいなぁ 俺なんかfunctionすら使わないで掲示板(ぽいの)作ったこともあるよぅ。 だからオブジェクトとか言われてもピンとこない(´・ω・)
1つの処理で1関数、1つの役割で1オブジェクトって感じで作ってるな。 個人的に関数はパッと見て理解出来る数行にしときたいけど、2・3行の関数を大量に作ると見難くなるし何より名前が雑に・・英語か、英語力の無さが原因なのかァァァァァ まぁ休日に趣味っぽい感じでやってるだけだから、そんなに気を使う必要はないけど
501が何に使えるのかさっぱりわからん 誰か簡単に説明してくれ
心意気は買ってあげたい。中の人、頑張れ。
最近2chで良く聞くけど「中の人」って何?
>>509 「中の人など居ない!!」
最近て言うか、かなり前からあるだろ
.|┃ スス--ッ .|┃""ヽ、 .|┃゚ ▼) .●..|┃゚Д゚) …少佐復活まだ? _____|┃ ..|) .|┃_,,ノ _____|┃U_
class File_Io { private $filename = null; private $fp = null; const Read_Type = "r"; const Write_Type = "a"; public function __construct($fn) { $this->filename = $fn; } private function File_Open($type) { $this->fp = fopen($this->filename,$type) flock($this->fp, LOCK_EX); } private function File_Close() { fclose($this->fp); } public function File_Read() { $this->File_Open(self::Read_Type); $ret = fread($this->fp, filesize($this->filename)); $this->File_Close(); return $ret; } public function File_Write($value) { $this->File_Open(self::Write_Type); $ret = fwrite($this->fp, $value); $this->File_Close(); return $ret; } }
スルーしとけ
516 :
nobodyさん :2006/02/08(水) 16:37:51 ID:O7y2qCCz
うごかねーから直した。 ファイル操作なんだなこれ <? class File_Io { var $filename = ''; var $fp = ''; var $Read_Type = "r"; var $Write_Type = "a"; function File_Io($fn) { $this->filename = $fn; } function File_Open($type) { $this->fp = fopen($this->filename,$type); flock($this->fp, LOCK_EX); } function File_Close() { fclose($this->fp); } function File_Read() { $this->File_Open( $this->Read_Type); $ret = fread($this->fp, filesize($this->filename)); $this->File_Close(); return $ret; } function File_Write($value) { $this->File_Open( $this->Write_Type); $ret = fwrite($this->fp, $value); $this->File_Close(); return $ret; } } ?>
全然関係ないけど IOとかって「I」と「O」で別の単語だから、FileIOって書いたほうがいいんかんうぇ?
518 :
413 :2006/02/08(水) 18:21:10 ID:8f4tRzkY
519 :
nobodyさん :2006/02/08(水) 18:22:21 ID:O7y2qCCz
>>517 IOってそれぞれ何の意味があるの?
in,out?
C言語やC++言語の stdioとiostreamのioと同じ意味だよ。
522 :
518 :2006/02/08(水) 21:01:58 ID:???
そうか… File_Io->File_Write("filename"); とかやりたいってことなのね。 個人的には fileIO->write("filename"); と極力記号など打ちたくない気もするけども。
ようやくfunctionばっかりのプログラムを書くことができますた これからOOPをはじめまつ
ソース貼り付けられる場所を教えてください。。
>>518 /usr/sbin/sendmail
せめてsendmailのパスくらいは指定出来るようにしようぜ。
他にも突っ込みたいところ結構あるが。
>>530 折角だから全部教えたれ。
その方がよくなるだろうし。
>>518 i18n_mime_header_encode
i18n_convert
って何の関数?
mb_encode_mimeheaderとmb_convert_encodingのエイリアスか。 自己解決。
534 :
518 :2006/02/10(金) 20:21:39 ID:???
エラー処理まったく無いのもどうかと思うがな
少佐とかっていうコード汚すぎる
見本希望。
少佐信者降臨!
538じゃないけど、俺もそう思う。まだ1ファイルしか見てないけど。 少佐のソース、upload_check.phpの150行目。 ImageCreateFromwbmp()って関数だけど、 これってWindowsのビットマップファイル用の関数じゃないから .bmpの画像ファイル受け取っても正常に処理できるのかな? たしかWBMPって「wireless bitmap」とかだった気がする。特殊端末向けの。 この関数にwindows系のBMPファイル与えたらどうなるのか試してないけどさ。 あと、そもそもアップロードされてきたファイルの拡張子を信頼する形で ソースが書かれてるから、実際には違う形式のものとかをアップできてしまう気もする。 それから同じ処理を何度も書きすぎ。具体的には・・・ サムネイル(小)〜(大)の部分。200行近くあるけど、小も大もひとつに出来る。 それからimageCreateTrueColor()関数とImageCopyResampled()関数。 TrueColorじゃないGIF形式にも使ってるのが謎。上記二つはTrueColor向け関数。 TrueColorじゃないならimageCreate()、ImageCopyResized()あたりな気がする。 それからDB接続とかの基本的な部分はクラス化するなり関数化するなりして、 別ファイルにまとめてrequire_once()して使ったほうがいい。 文字数チェックや禁止語句チェックなんかも関数化とかして別ファイル行き。 これらはパラメータ変更するだけで何度も色んなソースで使えるから。 機能追加、修正のときにそのほうが見やすいし楽。1ファイルにしかないからそこを修正すればいい。 俺も大したことないからでかいこと言えないんだけど。 初期からこういうソースの書き方に慣れていると絶対苦労する。 でも彼はこうやって成果物を出しているから立派だと思う。 これから色々学んで成長していくのだろうから、生暖かく見守りたい。 前まで職場にいたPHP職人(経験3年以上?とかだったと思う)は、 こういうソースの書き方だったけど、ひどすぎてメンテとかできない、パフォーマンスもひどい。 時間と相談しつつ設計からやり直してどんどん書き直してるよ。
>>542 542ですけど、添削してもらうとか考えないでとりあえず造ったものを
みんなに見せたらいいんじゃないかな。
そういうスレだと思い込んでる俺がいる。
それに「100点満点のソースは実在しない」と思うよ。
とりあえず晒しとけば、アイデアはいいが設計やソースの書き方がアレだなーとか、
いい筋してるがもうひと頑張りだとかコメント付く気がする。
もしかしたらココこうしたほうがいいんじゃない?とか誰かが言ってくれるかもだし。
>>538 氏
汚くてごめんなさい自覚してますorz
>>542 氏
まさにこれ、という感じです。
wbmpについては後から気づいたんですが、
ほとんど関数化とかしてないので、めんどくさくて残してました。
config.phpの設定ではbmpは削除しておいたと思います。
サムネイルについてはもう完全に自己流でルーズリーフに書きながら考えたので、
ものすごくグチャグチャだと思います。
頭が追いつかないので、「これをこうして、こっちをこうして…」という感じで、
ひとつひとつ完結させながらやってるのが問題だと思います。
逆にminilogの方は関数使いすぎで自分でもわけわかんなくなってきました。
>>512 氏
今月から毎日18時間働いております('A`)
今は徹夜中の小休止ですorz
キタ━━━━━━( ´∀`)━━━━━━ !!
_、_ ( ,_ノ` )y━・~~~ 少佐、動けばいいんだよ動けば
549 :
その1 :2006/02/14(火) 11:26:45 ID:O2fgq8yY
自分もファイル操作用クラスを作ってみた。 長いので分割します。 ------------------------------------ <?php /** * 特定のディレクトリ内のファイルの読み書きを行うクラスです. */ class file_manager { /** * ディレクトリを表す文字列です. */ var $dir; /** * 指定されたディレクトリ内のファイルを操作する新しい file_manager を構築します. * 引数が省略された場合はカレントディレクトリ(./)を扱います. * * なお、指定されたディレクトリが見つからない場合は作成を試みます. * 作成に失敗した場合は警告を発生させます. * * @param $dir 操作対象のディレクトリ. 相対パスまたは絶対パス. ただし末尾に '/' は含めない. */ function file_manager($dir = ''){ $this->dir = (0 < strlen($dir)) ? $dir : '.'; // 指定されたディレクトリが存在しない場合は作成を試みる. if(!file_exists($this->dir)){ $success = @mkdir($this->dir); if(!$success) trigger_error('FILE_MANAGER_ERROR:('.$dir.')は利用することができません', E_USER_WARNING); } }
550 :
その2 :2006/02/14(火) 11:28:38 ID:O2fgq8yY
/** * 指定されたファイルの中身を返します. * ファイルが存在しない場合は NULL を返します. */ function read_file($filename){ $file = $this->dir.'/'.$filename; $lines = @file($file); if(!$lines) return NULL; $str = ''; foreach($lines as $line){ $str .= $line; } return $str; } /** * 指定されたファイルの中身を与えられた文字列で上書きします. * ファイルが存在しない場合は新たに作成します. * * @param $filename ファイル名 * @param $contents ファイルに書き込むデータ */ function write_file($filename, $contents){ $file = $this->dir.'/'.$filename; $fp = fopen($file, 'w'); fwrite($fp, $contents); @chmod($file, 0666); fclose($fp); }
551 :
その3 :2006/02/14(火) 11:29:52 ID:O2fgq8yY
/** * 指定されたファイルの名前を新しいファイル名に変更します. * * @param $oldfile リネーム対象のファイル名 * @param $newfile 対象のファイルの新しい名前 */ function rename_file($oldfile, $newfile){ return rename($this->dir.'/'.$oldfile, $this->dir.'/'.$newfile); } /** * 指定されたファイルを削除します. */ function delete_file($filename){ return unlink($this->dir.'/'.$filename); } /** * 指定されたファイルが存在するかどうかを調べます. * ファイルが存在する場合に TRUE を返します. */ function file_exists($filename){ return file_exists($this->dir.'/'.$filename); } } ?>
>>549 すごくいいと思う。
こういうのは無しなんだろうか
function read_file($filename){
$file = $this->dir.'/'.$filename;
$str = @file_get_contents($file);
if( $str) return $str;
else return NULL;
}
>>552 どうもです。
file_get_contents にすればもっとシンプルに出来たんですが、
PHPのバージョンが古いと対応してないので、
代替手段としてこういう実装にしました。
PHPを導入してるレンタルサーバーって、
自分の知っている限りではみんなバージョンが4系なんだけど、
その中でも4.1*だったり4.3*だったりバラバラなんですよね。
foreach($lines?as?$line){ ??$str?.=?$line; } これよりimplode使ったほうが速いよ $str = implode('', $lines);
文字化けしちまったスマソ
返り血の無い関数の場合でもtrueとか返すようにした方がいいの?
>>556 本来なら返り値が必要ない関数であっても、
処理がうまくいったら TRUE、失敗した場合は FALSE を返すみたいな実装にしたほうが、
エラー処理が簡単になる場合がある。ケースバイケースだけどね。例えば、
■before■
function hoge(){
first_process();
second_process();
third_process();
}
function first_process(){ /* 何か処理をする */ }
function second_process(){ /* 何か処理をする */ }
function third_process(){ /* 何か処理をする */ }
■after■
function hoge(){
return first_process() & second_process() & third_process();
}
function first_process(){ /* 何か処理をして、成功したら TRUE を返す */ }
function second_process(){ /* 何か処理をして、成功したら TRUE を返す */ }
function third_process(){ /* 何か処理をして、成功したら TRUE を返す */ }
//自動リンク改良版 function Auto_HyperLink_Tags($text, $target='_blank') { if (!empty($text)) { $search = "(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)|(www\.))+(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9\&%_\./-~-]*)?"; return ereg_replace( $search,"<a href=\"\\0\" target=\"".$target."\">\\0</a>", $text); }else { return FALSE; } }
559 :
ちんこ先生 ◆Qm364jaZpk :2006/02/16(木) 11:55:20 ID:YzGNHh7H
少佐のソースやばいからw お前がなにしてるかおしえてあげようか?w つーか一番笑ったのはソースSJISかよwww レベルひくwwwwwwwwwwwwwどんだけ低いの? #------------- @mysql_connect($db_host, $db_user, $db_password); @mysql_select_db($db); ここがmysqlにつないでるとこだが、普通こうかく $conn =@mysql_connect($db_host, $db_user, $db_password) or die("MySQLの接続に失敗しました。"); @mysql_select_db($db, $conn) or die("DB選択時にエラーが発生しました。"); この2行だけでも、こうやってエラー処理をかくよw しかもなんでrequireに@つけてんの?w 超馬鹿じゃんwww どんだけ低レベルwwエラー処理もしてないwww
559はEUCしか知らない低脳
このスレで完璧を求めるのはおかしいだろ まずは自分の人格のエラー処理をコーディングしてらっしゃい
>>557 ありがd
&の使い方が解りませぬ
return (first_process() === true && second_process() === true && third_process() === true)
と等価ですか?
565 :
ちんこ先生 ◆Qm364jaZpk :2006/02/16(木) 13:29:18 ID:YzGNHh7H
雑魚が傷をなめあうなよキショいからwww つーかお前ら少佐以下なんだろ?www死ねよ
しかもここ初心者スレじゃなかったしww なんだこれwww
ちんこ先生 ◆Qm364jaZpk ↑ そろそろこの池沼をNGにぶち込むか
568 :
557 :2006/02/16(木) 14:01:03 ID:???
>>564 間違えた。よく調べてみたら、& は PHP ではビット積の演算子だったわ。
C や Java と同じ感覚で書いたもんで・・・。
申し訳ない。
>>557 の & は && に置き換えてください。
意味としては、
>>564 で合ってると思います。
ただし、この場合はもしも first_process() が FALSE を返した場合、
second_process() と third_process() を処理せずに終了します。
first_process() の結果いかんに関わらずに続きの関数を実行させたい場合は
function hoge(){
$success = TRUE;
$success &= first_process();
$success &= second_process();
$success &= third_process();
return $success;
}
みたいに書いたほうがいいかな。
いやいや教えてもらえるだけ喜べよwww なんも知らないくせに少佐非難してるやつよかマシだろ
ってかまったくincludeもされてないソースで発表会されてもね。 初心者スレで書いたら?
あぼーん
> ただし、この場合はもしも first_process() が FALSE を返した場合、 > second_process() と third_process() を処理せずに終了します。 これは知らなかった。チューンできるんだー。
573 :
557 :2006/02/16(木) 14:36:26 ID:???
>>559 条件反射的に Shift_JIS に反応するのはどうなんですかね?
確かに Shift_JIS はマルチバイト文字の中に0x7F以下のコードを含む場合があるから、
文字列や正規表現に日本語を含むようなスクリプトに Shift_JIS を採用すると危険な場合があるけど
逆に言えば、そういう危険性さえなければ Shift_JIS でも全く構わないということになる。
Windows付属のエディタで編集できるっていう強みもあるしね。(まぁ利点といえばそのぐらいしかないが)
あと、言わせてもらうとそのコードもめっちゃレベル低い。
そのエラー処理は、あくまでもシステム側の都合であって、ユーザー側の立場になってない。
もしもあんたが Java をやったら、きっと、コンパイルエラーを回避するためだけの
try 〜 catch とかやるんだろうな。
当然 catch の中身が空だったり適当な System.out.println だけだったり。
(Java 知らない人には訳の分からない話で申し訳ない)
ところで、error_reporting とか set_error_handler とか trigger_error とか、知らないの?
そういうのをフル活用すれば、
@mysql_connect($db_host, $db_user, $db_password);
@mysql_select_db($db);
だけでも全然アリなんだけど。
ちんこなんてコテつける奴とは格が違うって感じだなw
リアルで相当ダメージ食らってるな>ちんこ先生 失業でもしたか?w
577 :
542 :2006/02/16(木) 18:57:01 ID:???
言うだけもあれなんで、恥ずかしいけどソース晒しとく。 俺が趣味で作って使ってるクラスの抜粋(一部改変)だけど。(PHP5系,MySQL4.1系) @は使ってないよ。error_reporting = E_ALL、display_Errors = Off、log_errors = Onで、 全部エラー用ログファイルに書き出してる。ユーザー画面には簡単なエラーメッセージ出してるだけ。 エラー時の挙動は全部Db_Error()の中で書いてる。(中まで貼ると長いので↓には書いてない) DB接続部分って普通こんな感じじゃない?正解はないけど。知識・技術共にレベル低くてごめん。 --------------------------------------------------------- private $err = true; private $errmsg = null; public function Db_Connect() { $this->dbcon = mysql_connect('HOST', 'USER', 'PASSWORD'); if ( !$this->dbcon ) { $this->err = false; $this->errmsg = "DB接続エラー"; } else { $this->dbname = 'DB_NAME'; //MySQL固有 if ( !mysql_select_db($this->dbname, $this->dbcon) ) { $this->err = false; $this->errmsg = "DB選択エラー"; } else { //文字化け対策 $this->Db_Query("set names ujis"); } } //エラー画面へごー if ( !$this->err ) { $this->Db_Error(); } } ---------------------------------------------------------- 抜粋だから分かりづらくてすんません。あと、俺は少佐非難したつもりはないぞ。エールを送ったつもり。
highlight_file ( 'Qm364jaZpk.php'); 切実に希望します。 くだらなそうだけど。
ここって自分のスクリプト晒して叩いてもらうことで スキルアップを計るスレじゃないの?
ちんこ先生氏の言ってることはもっともだと思います。
言い方はともかくとしてw
文字コードについても全然知らず、「なんとなく日本語ってsjisがよさそうじゃない?」みたいな感じで使ってました。
>>557 氏の言われるようなことは露知らず。
(何がいいんでしょうか??時と場合による?)
mysql_connectとかもおっしゃる通りです。
requireに@がついてるのは特に意味は無いんですが、関数にはほぼすべて@をつけるクセがついてます。
特に害はないですよね…?たぶん。
こうして怒られながらも、参考になることをいろいろ教えてもらえるのはありがたいです。
∧_∧ . (。・_・) 少佐はやさしいのぅ ゚し-J゚
今書いている関数の構造 foreach(){ while(){ foreach(){} foreach(){ foreach(){} } } } ま、いいか。。。
>>581 害?あるよ。エラー処理をしなくなる。
基本EUC-JPで国際化とか考えるならUTF8でって感じ。
一度、@を全部削除して、errot_reporting(E_ALL);してみれ。
多分、すごいことになるから。
もし、ならなかったら少佐は天災
つうかrequireでエラー起きたらfatal errorでスクリプト止まるから@付ける意味がわからん
>>581 >>584 「エラー処理をしない」というよりは、「エラーを通知しなくなる」と言ったほうが正しいかな。
例えば下のスクリプトを動かしてみると、エラー処理自体はきちんとしてくれるのが分かるかと。
<?php
function print_error($code, $error_message){
print($code.':'.$error_message);
}
function zero_divide(){
$x = 1 / 0;
}
set_error_handler('print_error');
@zero_divide();
?>
>>584 の言うとおり、error_reporting(E_ALL) にしておくのはすごくお勧めです。
見えないバグを発見できるし、デバッグの労力がグンと減るので。
逆に、本番で使う際には error_reporting(0) にしておかないとみっともないですが。
>577 $this->dbcon = mysql_connect('HOST', 'USER', 'PASSWORD'); if ( !$this->dbcon ) { $this->err = false; $this->errmsg = "DB接続エラー"; 俺は4使いだから5はよくしらないけど @mysql_connect しないと $this->errmsgまでいかない気がする あと $this->errつーんだから $this->err = TRUE; のがよくなくね?
>>587 @なしでもエラー処理に入りますよ。
php.iniの設定の違いだと思います。
たぶんdisplay_errors = Onにされているのではないでしょうか。
あとerrの値に関しては、確かにそうかもしれません。
ああ、Onにすると駄目なのか
OnにしてもDB接続のエラーだったらエラー吐くけど処理は止まらなかったような 設定で変えれるのかな
違うスレでやれ
>>582 自演して株を上げようと操作しているように見える。
まぁ、物は作ってるから、PHPバージョンのKENTってとこか。
>>593 てんめぇ オレの少佐を自演扱いしたら殺すぞ
少佐の人気に嫉妬してる暇があったら、さっさとてめぇのブツ晒せやボケ
この役立たずめが!
音楽評論家がCDを出さないのと似てますね 語ることだけはできるの
597 :
nobodyさん :2006/02/17(金) 21:08:59 ID:zk5HwoZg
>>594 ../⌒ ヽ
( ヽ
ヽ ノ ヽ
ゞ 、 丶
ヽ ノ \ _ _,__ -' ─ ─ ,、 _
|\_ ノ\ , '´/_ヽ_ヽv /: / ヽ`、
/⌒\ 丶 / /  ̄ヽ-、___ ,-r'  ̄ ̄ ヽ.
│ \ 人 |/⌒ヽ | ! ヽーーーーー | :::::|
/ \ / | | ! ! r ひ 、. ! :::::::|
( \ ヽ / / | ! ! ノ:::\. ! ::::::::|
( | / ) | ! (::::T::::: ! ::::::::::|
ヽ \ ヾ 丿(( ̄)/ 'i:;;; `'ー--‐‐' ::::::;;;:ノ
\ ヾ丿 ヽソ `''─ _ _. ─''´
ヽ ノ _ __/  ̄ ̄ ̄
598 :
名無しの報告 :2006/02/17(金) 21:55:46 ID:Vjg5tdKB
少佐、
>>594 に差し入れぐらい持っていってやれよな。
ま た ち ん こ か
なんかえらいことに(´゚w゚`;)
皆さんの言われるように、僕はPHPについての知識なんてミジンコほどしかありませんので、
>>594 氏のように言ってもらえるのはとてもありがたい反面、重荷にもなります。
#このスレで自演したことは無いのにそう言われたりw
僕はただの初心者ですので、「あーまたくだらんもん作ってやがるなぁ」と思ってもらえれば満足です。
しばらくは返答を求められない限り傍観者になりますので、マターリお願いします。
#応援してくれた方々、ありがとー。
好きだ少佐(*´Д`)´`ア´`ア
他のスレではあるのねw
少佐がいるから俺ガイル
もうphpKENTでいいじゃん しょぼいところも似てる
ちんこ野郎、毎日イラついてるとこみると失業でもしたのか?
もとからニート
役に立たない綺麗なコードと役に立つ汚いコードのどっちが利用者にうれしいか考えてみ
別問題ではなく現実問題だ
少佐ソースで大満足。うぷえもん大好評!!
その綺麗なコードの物自体が存在してないからな。 文句言うぐらいなら書いて見せろ。
ここに載せるにふさわしいコード→汚いコード
汚くたっていい 需要のありそうなものを見せてくれ
ツマンネ
現実問題だ
flockしてない時点で(ry
おまえら全員
>>1 を読め。くだらん議論してくれなんて書いてないだろ
そうだね で?
原因は住人があまりにソースを貼らないからだろ?
で?
イチャモンつけるやつはただ荒らしたいだけだろ 何かつくれyp
>yp MMO厨はお帰りください
ちんこがいなくなればこのスレも平和
俺も糞スクリプト晒すか
wktk
hosyu
少佐、メールでわがまま言ってもいい?
ドウゾー
☆ チン ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・)< ソースまだー? \_/⊂ ⊂_)_ \_______ / ̄ ̄ ̄ ̄ ̄ ̄ ̄/| |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| | .|/
しばらくこのスレは放置する 空気読めない厨房ウザすぎ
640 :
ちんこ先生 ◆Qm364jaZpk :2006/03/05(日) 01:26:43 ID:Ve31vcRU
じゃ、さらすかな
640 名前:あぼーん[あぼーん] 投稿日:あぼーん あぼーん
>>ちんこ よっしゃこい
>>559 携帯がSJISであることを考えた上じゃないのか
644 :
557 :2006/03/06(月) 05:15:51 ID:???
>>557 ,
>>568 を書いた者ですが、
>>568 が間違っていることが判明しました。
& はビット演算子だけでなく、論理値の AND 演算子としても使われるようです。
function hoge(){
return first_process() & second_process() & third_process();
}
で、はじめ2つの関数の返り値に関わらず third_process までちゃんと評価されます。失礼しました。
確認するくせつけような
646 :
557 :2006/03/06(月) 18:02:34 ID:DiuskzlQ
//2ch互換トリップ生成 function Make_Trip($username) { //◆を◇に置換 $username = str_replace("◆", "◇", $username); //$usernameに#が含まれていればトリップ生成 if ( ($pos = strpos($username, '#')) !== false ) { //usernameの'#'以降を$keyとする $key = substr($username, ($pos + 1)); //サーバ側文字コードがShift-JISでない場合 if ( ($srvcharset = mb_internal_encoding()) != "Shift-JIS" ) { //2ch互換トリップにするため「$keyの文字コードを」Shift-JISへ変換 mb_convert_variables("Shift-JIS", $srvcharset, $key); } //$keyから$salt生成($saltが2byteに満たないもののために'H.'を足しておく) $salt = substr($key . "H.", 1, 2); ↓つづく
//●あほくさエリア突入● //検索パターン配列(64)生成 $pattern = array(); for( $cnt=0; $cnt<128; $cnt++ ){ //「.」「/」英数字以外を検索パターンとする if ( ($cnt<46) or ($cnt>57 and $cnt<65) or ($cnt>90 and $cnt<97) or ($cnt>122) ) { //16進ASCIIコードでの検索パターン文字列を生成 $pattern[] = '/[\\x' . dechex($cnt) . ']/'; } } //置換用ベース配列 $replacetmp = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'a', 'b', 'c', 'd', 'e', 'f', '.'); $cnt2 = 0; //(検索パターンが64通りなのでその数に合わせた配列を用意) for ($cnt1=0; $cnt1<64; $cnt1++ ) { $replace[] = $replacetmp[$cnt2]; if ( $cnt2 < 13 ) { $cnt2++; } else { $cnt2 = 0; } } //●あほくさエリア突破● ↓続く
//$saltに含まれる$patternを、$replace配列内の対応する位置の文字に置換 $salt = preg_replace($pattern, $replace, $salt); //$saltに含まれる'.','/','0-9','A-Z','a-z'でないものを'.'に置換 $salt = preg_replace('/[^\.\/0-9A-Za-z]/', '.', $salt); //トリップ生成(生成される文字列は11byte) $trip = crypt($key, $salt); //名前部分切り出し(#keyを含まない部分) $name = substr($username, 0, $pos); //(名前)+(生成されたトリップの後ろから10byte)を返す $ret = $name . "◆" . substr($trip,-10); //#が含まれていない場合 } else { $ret = $username; } //戻り値は「name◆trip」または「name」 return $ret; } おわり。無駄が多いです。
なお、互換確認には あほにし えいヴぇっくす しか使ってないです。
652 :
650 :2006/03/06(月) 19:10:52 ID:???
ばかみたいにコメントがいっぱいあるのは、 初心者でもなんとなく処理内容の意味がわかるようにするためです。 もとにした2chトリップ生成ソースは $salt = substr($key.'H.', 1, 2); $salt =~ tr/\x3A-\x40\x5B-\x60\x00-\x2D\x7B-\xFF/A-Ga-f./; $salt =~ s/[^\.\/0-9A-Za-z]/\./g; $trip = substr(crypt($key, $salt), -10); の、4行です。 自分はPHP最強房なのでperlよくわかんなかったです。 なので意味の解釈を間違っているかもしれません。 そのへんはperl最強房さんが解説していただけたらとか思ってます。 くだ質で聞こうかとも思ったけど、ここで晒して叩かれたほうが早いと思ったので載せました。
>>652 コメントの重要性を理解している点は評価できるんですが、
そんなあなたには「粒度」という言葉をプレゼントします。
処理にも、大きい単位から小さい単位までいろいろあるわけで、
すべてのコメントを小さい単位に合わせて書いたら、
ソースコードの見通しが全く見えなくなって、
コメントがないのと同じくらい意味がなくなってしまうのですよ。
あと、コメントの大事なポイントは、
全体の流れの中においてその処理が持っている意味を書くこと。
その処理がどういう動作をしているかは書かなくてもいいです。
そんなことは、PHPの文法が分かる人間だったら誰でも分かるんだから
よっぽど凝っていて複雑なアルゴリズムを書くとき以外には必要ないです。
というわけで、今後はコメントの書き方を要研究すべし。
ソースの中身は面倒なので読まなかったけど、パッと見て思ったのはそんなところ。
同じく コメントが無駄すぎるね
647君のだと、この鳥作れるのかな
横レスですが
>>653 > 全体の流れの中においてその処理が持っている意味を書くこと。
> その処理がどういう動作をしているかは書かなくてもいいです。
意味と動作の具体例みたいなのを教えてください。アホですみません。
>>656 横だけど。
動作:関数の説明
意味:なぜその関数を利用するか
650の書き方は、スクリプトの解説サイトではよく見るけど、
リファレンス読まなくなって、別の使い方とか知らないままで終わるから諸刃の剣。
659 :
650 :2006/03/06(月) 20:16:22 ID:???
処理に問題がありました。やっぱり自分はよくわかってないみたいです。
perlどころかPHPも良くわかってない。
いま直し&考え中。。
>>653 > そんなことは、PHPの文法が分かる人間だったら誰でも分かるんだから
今までの流れから、このスレには「PHPの文法がわかる人間」が
そんなに多くないと解釈したうえでのコメント文です。(自分を含め)
653さんとは前提が違うようです。
しかし、わかる人間にはうざ過ぎて読むことすらして
もらえないということは良くわかりました。
普段こんなことはやってません。
これは関数なので、書くとしたら
//概要:$usernameに#が含まれていた場合にトリップを付加して返す
//引数:$username(string)
//※:「#」以降8byteまでがトリップ生成に使われる
//戻り値:「名前◆trip」または「名前」(string)
//※:tripは「0-9A-Za-z/.」の64種類中から10文字
とか関数上部に書くくらいです。
汚いもの載せてごめんなさい。
なるほどね。
>>659 の言うことも分かった。晒して損したかも(´・ω・`)
>>657 はどう見ても五十歩百歩です。本当にありがとうございました。
ただ、分からない人に対する説明だとしても、やっぱり書き方はあると思う。
例えば書き方の一貫性。「○○を××します」っていう風に、
文として完結させることをすべてのコメントで徹底するだけでもだいぶ違うし。
あと、個人的なポリシーだけど // もし○○ならば if(〜〜〜){ // ××を行う do_something(); } この書き方ってなんとなく嫌いです。昔は自分もやってたけど。 // もし○○ならば××を行う if(〜〜〜){ do_something(); } このほうが分かりやすいと思う。(コメントの文体に一貫性が出来るのとあいまって)
何行か連続する処理を説明するときにはその頭 //xxxをxxxしてxxxする 〜 〜 〜 ←空行 1行だけの説明なら同じ行に 〜//xxxする
>>663 「妹」を「押し倒」して「xxx」する
を当てはめてしまった。
てかなんで旧鯖のsalt変換表でうまいこと行くんだ・・・
666 :
650 :2006/03/07(火) 00:24:55 ID:???
>>665 古い情報だけ見てて知らなかった!教えてくれてありがとう!!
新鯖変換ので作り直します。。。
てか、新鯖のじゃうまく行かないんだが。。。 2chの中ぜんぜん知らないから今どうなってるのかわかんないなぁ
>>659 関数の説明みたいに複数行にわたるのは
/*
説明
*/
の方が好きです
コーディングスタイルを語り始めると、宗教論争になっちゃうから 程々にね。
そろそろGNUスタイル信者とか出てきそうだな
毎回横道にそれてスレが止まるな。
な。
DBに入れたデータをPHPでXMLに変換して、ついでにPHP内でXSLTスタイルシートかませて
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使うことを覚え始めて浮かれてるだけなのであんまり気にしないでください。。
きにしないよ(*´・з・)(・ε・`*)ネェ-ッ
何そのやる気無いアドレス。
turaretennnayowwwwwwwwwww
>>677 tumanewwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!!!!!!!!!!!!!!
VIPのうpろだとか信じられない
文句言うならうpロダ用意しろよ
1rK行けばいくらでもうpろだはある 自分の無知を棚に上げるな
>>682 あほか。お前らが信用できるうpロダを用意しろつってんだよ。
てきとーに選んであげたらまた文句言われるかもしれんだろ?
少しは脳みそ使え池沼。
いい加減ち○こ弄りやめて放置しろよ
687 :
646 :2006/03/13(月) 05:39:57 ID:???
どなたか、
>>646 を使ってみた方はいませんでしょうか?
今後の改良のためにレビューが欲しいです。
>>687 今、試してみましたよ。
allow_call_time_pass_referenceが Onじゃないとtime.phpでwarnningが出まくるんですね。
家の環境(4.3.11エントロピ)では、Offに設定してあったので、ちょっとたまげました。
readmeに一言書いてあると良いかも?
>>687 削除ができなかったよ〜
foreach()のエラーが出てた。
691 :
646 :2006/03/13(月) 16:11:36 ID:???
>>688 ありがとうございます。
こちらの環境でも allow_call_time_pass_reference を OFF にして動作チェックをしてみます。
>>689 よろしければエラーの記述をコピペしていただけると助かります。
>>691 俺の環境はshort_open_tagがoffなので動かない
タイトルが<?= MEMO_TITLE ?>
693 :
646 :2006/03/13(月) 17:26:13 ID:???
>>692 なるほど。XML宣言を含むXML文書を簡単に出力したい人なんかは、
やっぱり short_open_tag をOFFにしたいですよね。
short_open_tag を OFF にしても動くように修正してみます。
695 :
646 :2006/03/13(月) 19:19:55 ID:nDHgXPav
696 :
688 :2006/03/13(月) 19:33:40 ID:???
>>695 ん〜、解釈できますね。
他のとこかな、見てみよう。
↑ ごめん688じゃなく689でした。 配列がないよってえらーでしたね。たしか。
698 :
646 :2006/03/13(月) 20:21:38 ID:nDHgXPav
>>698 きれいなコードを書かれますね。勉強させていただきます。
700 :
646 :2006/03/14(火) 02:24:22 ID:???
>>699 それは、どうも。
でも、やらないほうがいい悪い癖なんかもたくさんあると思うので、
あまり鵜呑みにしないほうがいいかもです。
ここに晒した時点で、もうこれだけ不具合が発覚しているわけですし。
702 :
646 :2006/03/14(火) 03:32:55 ID:???
>>701 自分も、これだけ有益な情報を得られるとは正直思ってなかった。
同じく (゚д゚)ウマー ですよ。
perlしかわからないけど貰っておくよ!
>>700 配布サイトよりも解説サイトの方が 646氏は有名になれる希ガス。
そういうのは目指していないのかもしれないけど、コードを見ていて
そう思ったです。
あんなにコメントだらけじゃ読む気も失せる
失せていいよ。 読む人は他にいるんだから。
m9(^Д^)
世の中にはプログラムの質よりただ綺麗なコーディングに拘る奇特な方もいらっしゃる そんなことより先に技術見に付けろと言いたいが
>>705 のような口だけバカはスルー
悔しかったら何か晒してみろバーカwww
>悔しかったら何か晒してみろバーカwww スルーできてないじゃん てかバーカwwwってガキかよ。。 スルーするならアンカーつけんな
だからスルーしろって 春だなぁ・・・
おいおい「春」って・・・ 2ch初心者かよwww 頼むから「逝ってよし!」とか使わないでくれよ
714 名前: nobodyさん [sage] 投稿日:2006/03/16(木) 20:59:57 ID:??? おいおい「春」って・・・ 2ch初心者かよwww 頼むから「逝ってよし!」とか使わないでくれよ お前恥ずかしいからそろそろやめとけ
>>715 「春」だの常用しちゃって、恥かしいのはお前だろw
716 名前: nobodyさん [sage] 投稿日:2006/03/16(木) 21:11:33 ID:???
>>715 「春」だの常用しちゃって、恥かしいのはお前だろw
皿仕上げ
文末にw付けてるお前のほうが恥ずかしいよ
おいおい「春」って・・・ 2ch初心者かよwww 頼むから「逝ってよし!」とか使わないでくれよ
常用の意味が分かってないようで
まーた春厨の煽り合いか… 飽きない奴らだな
713 名前:nobodyさん[sage] 投稿日:2006/03/16(木) 20:51:07 ID:??? だからスルーしろって 春だなぁ・・・ ブチキレてやんのwwwwwwwwwwwwwwwwwwwwwwwwwwwww
711 名前:nobodyさん[sage] 投稿日:2006/03/16(木) 20:34:32 ID:??? >悔しかったら何か晒してみろバーカwww スルーできてないじゃん てかバーカwwwってガキかよ。。 スルーするならアンカーつけんな 皿仕上げ 文末にw付けてるお前のほうが恥ずかしいよ
718 名前:nobodyさん[sage] 投稿日:2006/03/16(木) 21:19:11 ID:???
>>710 =
>>712 =
>>714 =
>>716 こういうのまだ居るのか・・・
(ノ∀`) アチャー
705煽り耐性ゼロだな
705のキチガイが消えるまで無理だろ
728 :
646 :2006/03/16(木) 21:44:23 ID:???
>>705 分かりやすいコメントの書き方って難しいよね。
>>709 ぶっちゃけ、綺麗なアーキテクチャにとことんこだわるタイプです・・・。
自分はSEとかには向いてないだろうなーと思う。
納期とか守る自信ないし、やっつけ仕事的なコーディングをすることに耐えられないと思う。
飽きれて物も言えないな
>>705 ,
>>711 ,
>>713 ,
>>715 ,
>>717 ,
>>718 ,
>>720 ,
>>721 ,
>>729 >>710 ,
>>712 ,
>>714 ,
>>716 ,
>>719 ,
>>722 ,
>>723 ,
>>724 ,
>>725 ,
>>730 両者そろそろうざい
それと
>>730 煽るなら失敗はするなよ、自分をアンカーに入れて何がしたいんだ
ち○こと705は無視しろよ。
>>728 せっかくなので E_STRICT も有効にしてみては?
いろいろ表示されてますよよよ。
必死な少佐がいると聞いて飛んできますた
_, ,_ パーン ( ‘д‘) ⊂彡☆))'A`)>738
740 :
646 :2006/03/17(金) 01:31:17 ID:???
>>737 すんません。PHP5は対象外なのです・・・。
久しぶりに来たらなんか伸びてるね このメモ編集システムおもしろそう
742 :
646 :2006/03/17(金) 15:21:30 ID:???
>>741 それは、どうも。
このスクリプトって、外面的には、
初心者が勉強の一環として試しに作ってみた程度の機能しかついてないですけどねw
内面(セキュリティの面など)はそれなりのレベルまで高めてあるつもりですが。
>>742 セキュリティ重視なら表示くらいエスケープしなきゃだめじゃないっすかw
たぶんIEでしかチェックしていないんだと思いますけどFirefoxやOperaだと
削除できなくなりますよよよ。
それからPHP4で配列受けは大丈夫なんでしたっけ?
Windows版は今でも下みたいのをPOSTすると異常な動作しますけど。
$str = 'str';
for ($i = 0; $i < 10000; $i++) {
$str .= '[]';
}
$str .= '=test';
744 :
646 :2006/03/17(金) 22:49:09 ID:???
>>743 WinIE, Firefox(Win), Opera に加え、MacIE, Safari, Firefox(Mac), Konquerer(Linux) でもテストをしました。
削除できないとのことですが、よろしければそちらの環境を教えていただけますでしょうか?
出来るだけ環境に依存しない仕様にしたいので。
> セキュリティ重視なら表示くらいエスケープしなきゃだめじゃないっすかw
このスクリプトは、サーバーの管理権限を持つユーザー(サイト運営者など)のみが
データの編集を行うことを想定しているため、
タグや実体参照のエスケープはしないようにしました。
ただし、万が一悪意のあるユーザーにログインされてしまうと、
クロスサイトスクリプティングによる攻撃を受ける可能性があるため
その危険性については readme.txt 内で言明してあります。
wiki や掲示板など、不特定多数のユーザーがデータを編集できるシステムについては
当然ながらデータを適切な形に変換する処理が必要だと思います。
いや、クローズドにしてても普通はエスケープ処理するよ そんなの言い訳に逃げてちゃいかん XSS対策しておくに越したことはない
746 :
646 :2006/03/17(金) 23:08:26 ID:???
>>745 自由にタグとか使えたほうが便利なんだけどな・・・(´・ω・`)
でも、利便性よりセキュリティを取る人もいるだろうし、
今後は、データにXSS対策を施すかどうかを
設定できるようにしたほうがいいかもしれないですね。
別に全部タグをエスケープしなくてもいいじゃない 使えるタグを設定できるようにすればいい
あれじゃタグ使えないとむしろ使いにくくない? わざわざ認証つけて管理者しか使えないようにしてるんだから、 十分な気がするよ。
nucleusのソースと書き方似てる人多いね
750 :
646 :2006/03/18(土) 00:23:10 ID:???
>>749 nucleus のソースをダウンロードして中身を見てみた。
似てるのかな?w
コメントが Javadoc 形式なのは同じだと思います。
HTMLが使える使えないじゃなくて
入力されるデータによって操作できなくなるのは問題だな。
plaintext要素なんて使う奴居ないだろうけど。
>>737 PHP4.4以後の事を言ってるんだろうが
実行環境言わない奴はよく訓練されたベトコンだ。
まあ、いまのふいんきだと、気軽にショボイやつを発表するのはツライと言う事が よくわかった。
>はよく訓練されたベトコン 出たよ
754 :
646 :2006/03/19(日) 01:02:35 ID:???
>>751 あ〜。なるほど。
例えば終了タグを閉じわすれたりとかね。
故意でやることはないと思うけど、"</form>"などの文字列を登録しちゃったらアウトですよね。
自己責任、と言いたいところだけど、やっぱり将来的には
特殊文字関連の扱い方をしっかり考えていきたいところです。
少佐はいますか?
つかSSIのタグ以外はエスケープしないでも大丈夫に思えるが
757 :
743 :2006/03/19(日) 16:34:19 ID:???
>>757 > 【備考】 B90/W58/H86 です。
これはほんとうですか
W59とか58は、実際は61〜65だというのが定説です。
760 :
nobodyさん :2006/03/19(日) 18:40:58 ID:ShpQS04P
【ソース】
http://www2.nct9.ne.jp/dorayaki/bbs.zip 【プログラミング経験】 6ヶ月
【職業】 工房(2年)
【備考】
掲示板を製作していたのですが、受験勉強のため、泣く泣く開発を中断しました。
どうせいじれないソースなら、公開してみなさんの意見を聞いたほうがいいと思っ
たので公開します。
サーバの設定に依存するところが多いので、設定ファイルも一緒にダウンロードで
きるようにしました。動かしたい人はそれを使ってください。
761 :
760 :2006/03/19(日) 18:49:47 ID:???
追加です。 ・サーバルートにはbbs/publicディレクトリを指定してください。 ・bbs/php_includes/parts/conf.phpのBASE_DIRは適宜変更してください。 説明が下手ですね…
アフィリエイトでお小遣い稼ぎしてたん?w
>>759 どうもありがとう。Wの部分が改変されやすいんですね。
764 :
760 :2006/03/19(日) 18:57:18 ID:???
>>762 私ですか? 私はやってませんけど、以前兄がやってたみたいです。
googleのインデックスにそれっぽいのが残ってますね。
私も公開したスクリプトでアフィリエイトしようかとたくらんで
いたのですが、開発が面白すぎるので、もうそっちはどうでもい
い感じです。
そかそか、受験頑張れよー。
766 :
760 :2006/03/19(日) 18:59:59 ID:???
>>765 ありがとうございます。
スクリプトの評価を楽しみにしながら受験勉強がんばります!!
>>760 う〜ん、この状態だと自分専用で他人が動かしてみようと言う気分にならないような。
標準で関数が揃っているものは自動化推薦(pathとか)
動かしてないからわかんないけどエラー処理が弱そうなのでその辺も強化すべし。
全体としてはこぎれいではあるけど読んで面白いプログラムではなさそうかな。
まあ、まずはプログラムより受験だね。
>>760 工房でこれだけ書ければ立派。
受験もガンガレ!
普通の工房なら立派 情報系の工房ならまぁ普通
770 :
760 :2006/03/20(月) 15:55:01 ID:???
こらこら、遊んでないで勉強すれw 面白いものを作ろうと思ったら高校レベルの数学は必須だと思うぞ。 1例としてサイトを紹介しようと思ったけど時間の浪費になると思うのでやめとく。 とにかく今は勉強すれ。絶対損はしないから。
772 :
646 :2006/03/22(水) 01:39:04 ID:WKCyChdz
>>772 parse_url を使った方がコンパクトでよいと思うよ
>>772 parse_urlを使わないことで得られる利点を教えてプリーズ
>>773 >>774 parse_url が扱うことが出来るのはあくまでも URL (Uniform Resource Locator) なので。
機能拡張して、URI (Uniform Resource Identifier) 全般を扱えるようにしたかった。
あと、このモジュールは ABNF に厳密に対応しているんだけど(まだ一部だけ手を抜いてるけど)、
将来的には、この文法に動的に制限を加えて書式を限定できるようにすることも視野に入れてます。
(例えば、"mailto:メールアドレス" 形式だけを受け付けられるようにしたり)
このシステム自体は、uri.php のテストのために作っただけです。
>>771 私は
>>760 さんと同じ高2です。
もし良ければ、そのサイトを教えていただけませんか?
数学はVは積分法の応用、Cは統計と確率が残っていますが、まだ厳しいでしょうか?
というのも、プログラミングで遊ぶのはこの春休みまでにしてパソコンは封印し、そのかわりに今のうちに多くのことを見ておきたいと思っています。
プログラミングは1年半で、CとC#とPHPしかできません。
$this->使うのとself::使うのはどう違うん?使い分けは?
数学なんてプログラミングにいるか・・・? 自分で複雑なアルゴリズムでも作るのか
ぼく引算はできないけど足算ならできるお!
書き忘れましたがソースのダウンロード一回につき200円になりますので。
>>778 > 数学なんてプログラミングにいるか・・・?
> 自分で複雑なアルゴリズムでも作るのか
いるに決まってるだろアホ。
てめえみたいなのがいるからプログラマの単価がさがるんだよ。
氏ね
おまえらまとめてサインコサインタンジェント〜♪って歌っとけ。
その程度のレベルかよ。 ゲームプログラマですらその程度では 足りね。 くだらね。
オブジェクト指向が理解できないまま プログラミング歴6ヶ月の高校生に追い抜かれた
オブジェクト指向も数学もできない奴はこの業界にはイラン。
微分や積分をクラスを使って管理できるくらいの能力は養うべき。
ちん○は相手にするなと言ってるだろ
ここに現れる新人は潰されるということでよろしいか
>>788 底辺はお前だけ。
お前はソフトウェア工学を一生懸命勉強してきた人間に謝れ
はぁ、プログラマの実態を知らない夢見がちな青年が居るようで
ちん○は相手にするなと言ってるだろ
ソフトウェア工学(笑
>>518 このメールスクリプトもう手に入らないのかな・・
>>698 これでパスワードにxml使ってる意義って何?
単純に興味があるだけなんだけど
少佐どこ?
799 :
646 :2006/03/29(水) 22:22:44 ID:???
>>796 確かに、このシステムの場合だったら
パスワードのみが書かれたテキストファイルさえあれば十分なんだけど、
より汎用的な認証モジュールを活用したため、結果的に XML フォーマットになりました。
このモジュールが XML を扱う理由は2つあって、
まず、一番大きい理由が、自分ルールのフォーマットを作りたくなかったこと。
例えば 「ログイン名とパスワードを ":" で区切って、各ユーザー情報を改行で区切る」
みたいなものです。
自分ルールの何が嫌かと言うと、そのソースを見る人が苦労するかもしれないから。
まあ、上の例で挙げたようなルールだったら簡単に推測できるだろうけど。
その分、XML の場合はフォーマットの中にそのデータの意味を含めることが出来るので
(このモジュールのXMLの場合は、要素名に name や password という単語を使っている)
より分かりやすいフォーマットになると思ったのです。
次に、応用が簡単なフォーマットであること。
W3C から勧告されている、XML 関連の様々な技術の適用対象となるので
例えば、第三者がこのスクリプトを拡張してこのパスワードファイルを別な用途にも使いたい
なんて時に、応用が簡単になる可能性があります。
フォーマットをYAMLにしなかった理由はここにあります。
800 :
646 :2006/03/29(水) 22:27:21 ID:???
ちなみに、このシステムでこの認証モジュールを使う利点も2つあります。 まず、その他の認証システムとモジュールを共有できること。 それぞれのシステムで共通したモジュールを使うすることで、モジュールの数を少なくすることができるし、 もしもこの認証モジュールにバグが見つかって複数の認証システムに影響がおよんだ場合でも、 1つのファイルだけをアップデートすれば済みます。 あと、リファクタリングが容易なこと。 例えば、今はパスワードだけでログインするようになってるけど、 今後のバージョンアップで、ログイン名+パスワードでログインできるような仕様にして さらに複数の認証情報を登録できるようにしたい、なんてことがあっても 最小限の変更で実現できるようになります。 まあ、実際はそういう変更はしないと思うので、これは利点とはいえないけど。
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 って言われた
802 :
646 :2006/03/30(木) 15:41:19 ID:???
なんかリンク先見てもようわからんのだけど、 下のコードのように返り値を直接代入するとエラーで、上のように一旦変数に入れればOKってこと?
君には勉強が必要だ
>>803 あくまでも、駄目なのは「参照渡し」ね。
function &hoge(){
static $x = 1;
return $x;
}
function increment(&$value){
$value ++;
}
$a = hoge();
$b =& $a;
increment($b); // これはOK
increment(hoge()); // これは駄目
矢切の渡しはOK?
アリの戸渡りはOK?
矢口の渡に住んでいた事があるので、すべてOKです。
807はエロい人
渡哲也と渡瀬恒彦は兄弟
811 :
772 :2006/04/07(金) 19:27:39 ID:jJE5oi/7
813 :
811 :2006/04/07(金) 20:55:22 ID:jJE5oi/7
>>812 うっわ。なんで今まで気づかなかったんだろう・・・orz
サンクス(´・ω・`)
814 :
811 :2006/04/10(月) 03:54:11 ID:DfPzV1/O
815 :
nobodyさん :2006/04/15(土) 13:21:58 ID:yIhdR1Yt
あげ
817 :
nobodyさん :2006/04/28(金) 21:35:11 ID:H79nRM7w
確かにw
>>817 ちょっと面白くて普通に色々試してしまったw
ていうかキッズgoo自体使ったことなかった ふりがな結構おもしろいね
保守
また、とまった。
824 :
nobodyさん :2006/05/14(日) 20:36:35 ID:llDkDqp8
少佐あげ
825 :
nobodyさん :2006/05/16(火) 13:05:52 ID:qj3A4Qdi
少佐はげ
小差
少佐がいなくなって過疎ったな たまに晒されるスクリプトも誰も使わないようなものばっかだし
>>828 んと
まずメールのあて先がtrueになりそう。
それから''内に\nは書けないね。
あとは、mb_internal_encoding('SJIS');を入れた方がいいかも
コーディングは、小規模で手を抜くとこうなるかなって感じ。
500はうちの環境では出なかった。
居なくなったわけてはなく、地獄から皆さんを見てます('A`;) no-ipのアドレスが繋がらなくなっちゃったのは放置中です。 #携帯からなのでトリップあってるか微妙ですが…
>>832 少佐、望んでた会社だったんだろ?実情はどうだい?
今は話したくない。
少佐生きたよヽ(´ー`)ノ
<? class unko{ function unko(){ echo 'がちゃ。'; } function geri(){ echo 'びゃーーー。'; } function benpi(){ echo 'ぶぶ、ぶぽっ'; } function sakatoro(){ echo 'ぱくぱく'; } } ?>
837 :
nobodyさん :2006/05/31(水) 10:24:26 ID:8/NARi8p
sakatoroあげ
少佐さんのスクリプトってどれも欲しかったけど、結局1個も手に入らなかったなぁ なんかいっつも流れちゃってた
少佐のサイトに置いてあるよ(*´ー`)
841 :
ちんこ先生 ◆Qm364jaZpk :2006/06/03(土) 00:59:48 ID: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"); ?>
842 :
ちんこ先生 ◆Qm364jaZpk :2006/06/03(土) 01:03:25 ID: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();
空気読めない阿保のせいで糞スレになったな
ちんこ威勢が良かったわりには、つまんねーな
841-842が見えません!><
841-842きもい
847 :
828 :2006/06/03(土) 15:34:31 ID:???
>>829 アドバイスありがとう!
もうちょっと頑張って勉強するよ。
コーディングのスキルをあげたいので、これからもスクリプトを書いて発表すると思います。
Internal Server Errorが返されたのは php.ini の設定が悪かったからだ...orz
まずは>829のスクリプトを書き直します。
848 :
sage :2006/06/06(火) 22:48:13 ID:rgM9q6dd
>>817 のNGワードデータベースみたいなのって
ないんですか?
中の人の意向で変わり得るものだからねぇ。 そういうのはシステム設置側で公表すべきものなのだが、 gooが珍満文書を晒す姿も想像できん。 やるとすれば、キッズgooフィルタ付きのページをスクリプト側で拾ってきて、 結果を判断して貯めておくという手法が考えられるが、面倒だからやんない。
850 :
nobodyさん :2006/06/15(木) 16:00:57 ID:KcH29g6v
>>850 form.classの進化に期待します
852 :
nobodyさん :2006/06/15(木) 19:19:43 ID:KcH29g6v
マヂです 同じようなの作ろうと思ってました フレームワークの導入までは面倒なので できればフォーム定義はXMLで記述、正規表現で値チェック、 確認画面も出せたらいいな、と無責任な要望書いてみます
855 :
828 :2006/06/19(月) 23:41:37 ID:???
>>855 $_POST = mb_convert_encoding ($_POST, 'SJIS');
これ無理
この直後にvar_dump($_POST)とやってみるとどうなってるかわかると思う
あとできれば
if ($_POST)
これは
if ($_SERVER['REQUEST_METHOD'] == 'POST')
の方がいいと思う
なにかちがうの
手を抜いた書き方と丁寧な書き方の違いかな でも、マニュアルを見るとif文内での空配列はFALSE扱いになってるし $_POSTなんて定番中の定番の変数だからあまり気にせんでもいいかも
手抜きっつーか、ひねくれてる。 HTTP POST以外のリクエストで$_POSTが空になるという前提は PHPの仕様として確定しているわけではないので危険。
だな ひねくれすぎ
861 :
828 :2006/06/21(水) 08:10:00 ID:???
皆さんありがとうございます。 今日、また書き直してみたいと思います。
やっぱひねくれてるのか そうだと思ったが一応聞いただけだ
少しづつレベルうpしていく 828 に期待
結局基本に忠実が一番
クセないほうがパクリやすいしな
866 :
nobodyさん :2006/06/22(木) 18:29:15 ID:lWMamTxf
第一みやすいしな
あげちゃった。ごめんね
このスレって、自作のPHPスクリプトを評価する人と、貰っちゃう 奴とがいるんだね。
870 :
nobodyさん :2006/06/22(木) 19:00:51 ID:yWfEGe4x
PHP勉強しだして3ヶ月、 誰か課題だして、
>>872 >すみません、HDDまた飛びました。
>昨年末に買って未開封新品だったのに4日で壊れた(涙
>日曜日までには復旧させるつもりです。
全米が泣いた
>>872 >【備考】 B90/W58/H86 です。
写真アップ
876 :
nobodyさん :2006/07/25(火) 17:50:08 ID:??? BE:18620429-BRZ
保守
過疎
878 :
nobodyさん :2006/07/31(月) 23:28:47 ID:sYlQMYT3
安田成美
スリーサイズは?
882 :
879 :2006/08/10(木) 12:58:19 ID:???
>>880 スリーサイズは勘弁してください。
直した方が良い、という指摘ならありがとうございます。
>>879 別のアーカイバを使って圧縮してみました。
いかがでしょうか?
883 :
879 :2006/08/10(木) 12:59:15 ID:???
884 :
828 :2006/08/10(木) 23:53:18 ID:???
>>884 デフォルトではpostデータはエスケープされる。ということは、シングルクオーテーション(')が入力されると
どうなるか分かる?
886 :
828 :2006/08/11(金) 10:41:51 ID:???
暇な人!! PHPでMagicPacketを送信するプログラム書いてくれー 簡単でしょ〜
>>887 PHPでMagicPacketが送れるかどうかは俺には分からんが
あくまで「発表する」ためのスレであってだな、勉強の場ですよ?
とにかく「クレクレ厨」は場違いなのでどっか行け。
ググればあるし、ふつーに
890 :
nobodyさん :2006/08/19(土) 12:21:40 ID:+xxPG0V/
「ググる」禁止
じゃあ Yahoo! で「ググ」れば!
892 :
nobodyさん :2006/08/20(日) 13:20:18 ID:oyufgt9C
ふつーにインフォシークでヤフレばいいだけだろ。
893 :
nobodyさん :2006/08/20(日) 16:21:17 ID: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; } ?>
ググれヤフれと言ったやつらが何を言う
897 :
896 :2006/08/21(月) 08:45:22 ID:???
早漏れだった ('A`)
899 :
nobodyさん :2006/08/21(月) 18:37:38 ID:weaz9eFZ
中身の無いディレクトリを削除するコードについて 全てのディレクトリに手当たり次第rmdirするという実装を行ってみたのですが かなり微妙な気配です
>>901 何がどう微妙なんだか知らないが
手法として間違っているのは確かだね
904 :
nobodyさん :2006/08/24(木) 21:24:16 ID:eEaHk1qb
わかった、次スレ作ってくる
906 :
nobodyさん :2006/08/25(金) 19:13:52 ID:Mpo62NCh
早漏おおすぎw
908 :
nobodyさん :2006/09/06(水) 15:47:12 ID:isxTLeUZ
うめ
1000だったらPHP言語は廃止
早漏の巣窟と聞いて飛んできました。
911 :
nobodyさん :2006/09/08(金) 05:49:14 ID:mhEDRQgK
ソースドコー
2chってxrea拒否はもうしてないのか?
>>911 現時点ではメリットがまったくわからない。
もうひとひねりがんばって!
safemofe効いてる鯖でphpやりたくねーな
918 :
911 :2006/09/14(木) 03:37:54 ID:???
>>913 スレ内で検索は出来ます。
全体から検索はDB使わないと大変なことになりそうです(ぇ。
>>915 2chブラウザが無くても手軽に利用できるように頑張り中です。
COOKIEを使用してお気に入りとかも実装して便利にする予定。
気分しだいでは、JavaAppletを使った書き込みも考え中。
>>917 safemodeで動かないコードは怖くてかけませんヾ(;´▽`A``アセアセ
しかしつくづく2chってところはものすごい勢いで人が死ななきゃいけないところなんだな。
「死ね」って言われて自ら死ぬようなアホは居ないだろ。
おまえらが、そうやって問題発言ばっかしてるから、ぴろゆきが失踪するんだぞ。
普通に赤羽の自宅にいるんじゃね
926 :
nobodyさん :2006/10/09(月) 16:28:59 ID:5EHC+DYi
かあああそ
?>
閉じるのは邪道
閉じないのは外道
閉じないのが流行ってるの? 最近見たソースも閉じてなかった s2dao.phpだったかな?
ライブラリなど読み込まれる側のスクリプトなら閉じた後の改行やスペースで ヘッダーが送出されてしまうのを防ぐために閉じない
まさに外道
確かコーディング規約にも書いてあったな。
A.2.1. 全般 PHP コードのみからなるファイルでは、終了タグ ("?>") は決して含めてはいけません。終了タグは、PHP には必要ありません。 終了タグを省略することで、ファイルの最後にある空白文字が出力に影響することを防ぎます。
938 :
nobodyさん :2006/11/27(月) 10:49:48 ID:qZ7XTYGM
age
939 :
nobodyさん :2006/11/27(月) 19:45:44 ID:H8aC7OS5
余裕ある方がいましたらこれ作ってください 1.a.phpってファイルの4の倍数行目の後に適当な行を挿入する 2.a.phpってファイルにfor文があったらその前に任意のif文を挿入する
940 :
nobodyさん :2006/11/27(月) 20:02:50 ID:c6HTdBMZ
1.file()でa.phpを取得 2.for()で$iをカウントしつつ、1の配列を回しながら、新しい配列$new[]に入れていく 3.2の最中に$iが4の倍数なら「適当な行+現在の配列」を$new[]に入れる 4.2の最中にstrpos()でforが含まれれば、「任意のif文+現在の配列」を$new[]に入れる こんだけ教えてやったんだから、ソースは自分で書け
941 :
nobodyさん :2006/11/28(火) 16:06:35 ID:xPFIpVfi
942 :
nobodyさん :2006/12/04(月) 17:28:02 ID:HUYljM/E
かそおおおお
943 :
nobodyさん :2006/12/06(水) 16:52:05 ID:mJS2uSVi
<?php echo 'age'; ?>
944 :
◆7HKNexECl. :2006/12/21(木) 00:23:00 ID:HWxfqd8i
<?php print 'age'; ?>
<?php class ThreadEnd { function init() { print 'm9(^Д^)プギャー!!'; } } ?>
946 :
nobodyさん :2006/12/22(金) 17:54:12 ID:5anhsy1o
うめてしまえええええええ
<?php //自作スクリプトstart ?> sage <?php //自作スクリプトend ?>
<?php class Xmas { function sleep() { print ' _,,..,,,,_'; print '/ ,' 3 `ヽーっ'; print 'l ⊃ ⌒_つ'; print '`'ー---‐''''''; } } ?>
949 :
948 :2006/12/22(金) 19:29:37 ID:???
うは、エスケープ忘れたorz
<?php class Xmas { var $me; function Xmas() { die( $me); } } ?>
$thisわすれたw
うめえ
// ===================================================== // HTML文字列から日本語エンコードを取得 // ===================================================== function get_html_encode( $file_str){ eregi( 'encoding=["\']?([^">\n\']*)', $file_str, $wk_encode); if( $wk_encode[1]==''){ eregi( 'charset=["\']?([^">\n\']*)', $file_str, $wk_encode); } if( $wk_encode[1]==''){ $encoding[] = "SJIS"; $encoding[] = "JIS"; $encoding[] = "EUC-JP"; $encoding[] = "UTF-8"; $wk_encode[1] = mb_detect_encoding( $html, $encoding, true); } $site_encode = $wk_encode[1]; if( strcasecmp( 'iso-2022-jp', $site_encode) == 0){ $site_encode = "JIS"; }else if( strcasecmp( 'shift_jis', $site_encode) == 0){ $site_encode = "SJIS"; } if( $site_encode=='') $site_encode = 'auto'; return $site_encode; }
954 :
nobodyさん :2007/01/04(木) 07:43:38 ID:Yxg8P1y5
955 :
nobodyさん :2007/02/09(金) 22:39:05 ID:mYVSJcRT
age
956 :
nobodyさん :2007/03/20(火) 01:19:40 ID:M2dXvO/x
phpなんか?
努力を褒めたいのでその辺は黙ってあげることにした
owaraseyou
962 :
nobodyさん :2007/03/22(木) 23:26:15 ID:Kp29oL15
文字コードの統一とエンコードはダウンロードしたやつ使いました。
>>960 すいまそん。
ここはPHPのスレッドだったんですね。。
Perlですが、はじめての人のかんたんPerlと掲示板アンケートで覚えるPerlプログラミング
という本を参考にしますた、というかこの本を見ながら見よう見真似で作っただけです。
というか初心者にとっては掲示板作ってからが大変だ。
これをどう応用していけばいいのやら。。。
964 :
nobodyさん :2007/03/23(金) 02:14:58 ID:B/wss7py
>>963 &readparse(*form)
です。この関数の中でいったい何が行われてるのかはわかりませんが
勝手にformという連想配列が作られてその中にフォームから入力されたデータが入っちゃってる
みたいです。
そういや、ここらの理屈はあいまいだ。
やはりデコードも文字コードの処理も自分でやらないと
応用できるようにはならないのでしょうか?
965 :
nobodyさん :2007/03/23(金) 23:40:01 ID:wT+JyrUv
DBは仕事でAccessを、プログラムはVBAとVB位(しかもVer.6)しかできません。 そんな僕が一念発起してMySQLを使ったWebアプリを作ろうと思い立ちました。 当然CGIを使うことになると思い、入門書を探すと「PHP + MySQL」の本しかありません。 どうやらPerlよりPHPの方がMySQLとの親和性が高いようですが、 どうせなら有名なPerlをこの機会に覚えようと思っていただけに複雑な心境です。 PerlもPHPも素人なのですが、PHPだけ覚えればPerlなんて不要でしょうか? それとも汎用的なWEBプログラミングを覚えるためには、これとは別にPerlの勉強が必要? もしそうなら「Perl + MySQL」の本を探した方がいいんでしょうか
えっと、プログラミングとは何かとか プログラミング言語ってどんなものがあって それらはそれぞれどういう用途に使われることが多いのか ということについて調べてみるといいよ。
>>965 仕事となれば、必然的に目的に合わせた言語で、となるだろうけど、
趣味で始めるのなら、何からやってもいいと思うよ。
結局はどの言語でも、やろうと思うことは大抵出来るから。
一通りの理解が出来たら、他の言語に挑戦してみてもいいしね。
まぁ、あえて個人的な意見を言うなら、
PHP→Perl よりも Perl→PHP の方が、すんなりいくとは思う。
PHPの1関数で出来たことを実現するためにPerlで10数行書かなきゃならないこともあるからね。
最初に基礎の基礎から学ぶにはPerlからはじめた方がいいかもね。
WebDB関係の仕事で使うことが多いのは恐らくPerlよりPHPだろうな。
969 :
965 :2007/03/25(日) 12:14:14 ID:aJ0StKvr
>>967 ありがとうございます。
仕事半分、趣味半分なのでPerl入門書→PHP & MySQLの本 と
流してみようと思います。むかしC入門で挫折した経験があるので
不安ですが。。。
970 :
nobodyさん :2007/04/09(月) 11:25:37 ID:y0wSlAqB
971 :
nobodyさん :2007/04/09(月) 21:24:37 ID:9JIXZayA
>>969 心配スンナ
Cで挫折した俺がPHPもPerlも出来てる
2回ぐらい挫折すると以前の挫折した分が多少は継承されてる
PHPもPerlできればCもできそうな気がするが。 まぁポインタとかオブジェクト指向とか難敵がいるからな・・・
Cはオブジェクト指向なのか?
974 :
nobodyさん :2007/04/10(火) 15:29:07 ID:FUjP3ASn
Class Xmas{var $name; var $size = 0; var $num; function Xmas($name,$size){ $this->name = $name; $this->size = $size; $num = 3;} function Sukarno1(){ $model .= ' _,,..,,,,_<br>'; $model .= '/ ,\' 3 `ヽーっ<br>'; $model .= 'l ⊃ ⌒_つ<br>'; $model .= '`\'ー---‐\'\'\'\'\'<br>'; return $model;} function Sukarno2(){ $model .= ' _,,.......,,,,_<br>'; $model .= '/ ,\' 3 `ヽーっ<br>'; $model .= 'l ⊃ ⌒_つ<br>'; $model .= '`\'ー-----‐\'\'\'\'\'\'\'<br>'; return $model;} function namae(){return $this->name."<br>";} function size(){ if($this->size == 1){ $mes .= $this->name."<br>"; $mes .= $this->Sukarno1(); $mes .= "<br>普通の大きさですよ<br>"; }else{ $mes .= $this->name."<br>"; $mes .= $this->Sukarno2(); $mes .= "<br>ちょっと大きいですよ!<br>"; }return $mes;}} $x = new Xmas("スカルノびっち",1); echo $x->size();
975 :
nobodyさん :2007/04/18(水) 10:30:49 ID:1lP+D7FI
976 :
nobodyさん :2007/04/18(水) 10:34:01 ID:1lP+D7FI
スクリプトだけでいいので
chinchin
落とせないのにどうやって作れっつーのー
979 :
nobodyさん :2007/06/08(金) 21:25:25 ID:rGzmVhL4
age