のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,683,076人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ中学生がPHPを習得するスレ

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
51 : nobodyさん - 2006/03/04(土) 17:21:38 ID:???.net (+25,+27,+0)
頼むから次の仕事はPascalでやらしてくれーーーー
52 : nobodyさん - 2006/03/11(土) 00:43:11 ID:d1dpDqJu.net (+23,+28,-1)
うん、とりあえずJavascript覚えな。
53 : nobodyさん - 2006/03/13(月) 19:12:19 ID:???.net (+27,+29,-12)
PHPそのものの解説に関しては、オンラインマニュアルに勝る書物を見たことがない
54 : nobodyさん - 2006/03/13(月) 23:31:41 ID:W/6QOh04.net (+9,+14,+0)
紙のマニュアル欲しいな
55 : nobodyさん - 2006/03/13(月) 23:39:40 ID:u9QxZPxT.net (+24,+29,-8)
なるほど、紙を作るマニュアルか。

王子製紙の下請け工場の方ですか?
56 : nobodyさん - 2006/03/17(金) 19:02:15 ID:???.net (+27,+29,-33)
>>54
man paper

まぁ紙にしてもすぐに古くなっちまうから無駄だな。
定期的に紙にして書棚に並べるんだったら問題ないけど。
57 : nobodyさん - 2006/03/19(日) 16:34:10 ID:???.net (+146,+29,-27)
オライリーの「はじめてのPHP5」が一番参考になった。

それと、漏れがよくお世話になってるとこ。
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
58 : 57 - 2006/03/19(日) 16:37:22 ID:???.net (+0,-1,+0)
面白そうなので、57は1を応援します。
59 : 57 - 2006/03/19(日) 16:45:32 ID:???.net (+19,+24,-1)
61 : nobodyさん - 2006/03/19(日) 17:23:53 ID:???.net (-26,-14,-16)
>>60
表示だけで実害はないと思うが、XSS脆弱だな
62 : 60 - 2006/03/19(日) 17:33:30 ID:???.net (+8,+10,-18)
表示だけでXSS脆弱って、あるんですか?
勉強になりそうなので、詳しく教えてください。
63 : nobodyさん - 2006/03/20(月) 01:06:31 ID:dBFE9MmM.net (+13,+23,-11)
エスケープする必要があるな
68 : nobodyさん - 2006/03/20(月) 19:14:25 ID:???.net (-18,-30,+0)
今回はコメントで解説してみました。

<HTML><BODY>
<form method="get" action="<?php print $_SERVER['PHP_SELF']; ?>">
<input type="text" name="sahen">÷<input type="text" name="uhen">
<input type="submit" value="送信">
</form>
</BODY></HTML>

<?php
//フォームは常に表示したほうがいいかも。
//計算するたびに電源が切れる電卓が使いにくいのと同じ。
if ((! strlen($_GET['uhen'])) && (! strlen($_GET['sahen']))) {
print '右辺と左辺を入力してください。';
} elseif(!preg_match('/^[0-9]+$/',$_GET['sahen'].$_GET['uhen'])){
print '入力は半角数字で。';
}elseif(($_GET['sahen'] % $_GET['uhen'] !== 0) && ($_GET['sahen'] > $_GET['uhen'])){
//左辺が右辺より小さい場合に、ここを実行すると変な答えになるので、
//条件をちょっと厳しくして、左辺が右辺より小さい場合はここをスルー。
$amari_answer = $_GET['sahen'] % $_GET['uhen'];
$answer = $_GET['sahen'] / $_GET['uhen'];
$answer = (int)$answer;
echo "答えは、{$answer} あまり {$amari_answer} です。";
//これは漏れのこだわりでしかないんだけど、二重引用符で変数を展開す
//るときには{}で変数を囲んで明示的に展開するようにすると読みやすく
//なる
}else{
$answer = $_GET['sahen'] / $_GET['uhen'];
echo "答えは、{$answer} です";
}
?>
69 : nobodyさん - 2006/03/20(月) 21:10:41 ID:???.net (+29,+29,-14)
どうでもいい事だが、「左辺」と「右辺」の使い方が間違っている。
70 : nobodyさん - 2006/03/20(月) 21:16:21 ID:jTYd4CQi.net (+24,+29,-30)
おれPerlつかう人だけどさ、

PHPってきもいね。

記法が。

入るだの抜けるだのありえないんですが…いや聞き流してくださってかまわないっす。

(ちら裏)
そりゃPerlも十分きもいけどさ。
71 : nobodyさん - 2006/03/20(月) 21:23:40 ID:???.net (-8,-6,-21)
Perl書くやつできれいなコード見たことない。
KENTを代表として。
73 : 68 - 2006/03/20(月) 21:36:58 ID:???.net (+47,+29,-15)
>>69
うん。そうなんだよ。確かにそうなんだけどさ…
スレの趣旨を重視して、そこはニュアンスだけにしときませんか…
74 : nobodyさん - 2006/03/20(月) 21:40:19 ID:???.net (-19,-30,-64)
>>69
被除数(わられるかず)と除数(わるかず)だよな。

>>68

| }elseif(($_GET['sahen'] % $_GET['uhen'] !== 0) && ($_GET['sahen'] > $_GET['uhen'])){

剰余の前に除数と被除数の0チェックをしたいところ。
75 : nobodyさん - 2006/03/20(月) 21:46:21 ID:???.net (+38,+29,-13)
>>73
こんなところで、ゆとり教育してどうする。
PHPとは関係なくても間違いは正してやらにゃ。
厨房相手ならなおのこと。
76 : 57 - 2006/03/20(月) 21:47:37 ID:???.net (+23,+29,-11)
>>74
1を応援しますとか言いながら、自分の無能さを痛感したため
一時退却します。
誰か、引き続きよろしく。
77 : 73 - 2006/03/20(月) 21:49:36 ID:???.net (+33,+29,-9)
>>75
すみません。漏れもゆとり教育を受けたので、ゆとり教育に
甘んじているのです。
78 : nobodyさん - 2006/03/20(月) 22:03:09 ID:???.net (-16,-30,+0)
>>76 帰るな。
ところで、>>74を読んでこうしてみたがどうか?
<?PHP
if ( $_GET['uhen'] ) {
$dividend = $_GET['sahen'] ;
$divisor = $_GET['uhen'] ;
} else {
$dividend = 0 ; $divisor = 0 ;
} ?>
<HTML><BODY>
<form method="get" action="<?php print $_SERVER['PHP_SELF']; ?>">
<input type="text" name="sahen" value ='<?PHP echo $dividend ?>'>÷<input type="text" name="uhen" value ='<?PHP echo $divisor ?>'>
<input type="submit" value="送信">
</form>
</BODY></HTML>
<?php
if ( (!strlen($dividend)) && (!strlen($divisor)) ){
echo '被除数(わられるかず)と除数(わるかず)を入力してください。';
} elseif ( !preg_match('/^[0-9]+$/',$dividend.$divisor) ){
echo '入力は半角数字で。';
} elseif ( ($dividend != 0) && ($divisor != 0) ) {
$amari_answer = $dividend % $divisor;
$answer = (int)($dividend / $divisor) ;
echo "答えは、{$answer}" ;
if( $amari_answer ) {
echo " あまり {$amari_answer} です。";
}
} else {
echo "0の割り算キタコレ!!" ;
}
?>
79 : nobodyさん - 2006/03/20(月) 22:05:29 ID:???.net (+20,+29,+0)
>>78
ダメ。
最初の一回目がキタコレになっちゃうよ。
80 : 57 - 2006/03/20(月) 22:09:46 ID:???.net (+39,+29,-79)
>>78
ただ今、戻りました。
簡潔で、わかりやすくなってますね。それとinputにテキストが入っ
てるのが細かい工夫でいいかんじです。
蛇足ですが、2chは空白を削除しちゃうので、ソースの掲載には不向
きですね。対応する括弧がわからない…
81 : 57 - 2006/03/20(月) 22:15:28 ID:???.net (-19,-30,-84)
>>79
$dividend = 'なんか入れてね' ; $divisor = 'なんかいれてね' ;
てのはどう?

ちなみに最初のif分岐は
$dividend = isset($_GET['sahen']) ? $_GET['sahen'] : 'なんか入れて' ;
$divisor = isset($_GET['uhen']) ? $_GET['uhen'] : 'なんか入れて' ;
でもいける。
82 : nobodyさん - 2006/03/20(月) 22:15:55 ID:???.net (-26,-30,-34)
>>79
そか
じゃ、さきっちょのところをこれでごまかすのはどうかw
$dividend = $divisor = '' ;
if ( $_GET['uhen'] && $_GET['sahen'] ) {
$dividend = $_GET['sahen'] ;
$divisor = $_GET['uhen'] ;
}

>>80
お帰りなさい。俺はオナニーでもして寝ます。おやしみー
83 : nobodyさん - 2006/03/20(月) 22:17:56 ID:???.net (+19,+29,+1)
>>81
じゃ、それで。
84 : 80 - 2006/03/20(月) 22:18:08 ID:???.net (+11,+21,+1)
>>82
おやしみー
85 : 1 - 2006/03/20(月) 23:00:16 ID:???.net (+32,+30,-60)
右辺、左辺の使い方は間違っているのはもう確信犯なんですが、
それに変わる正しい言葉がみつからなかったんで・・・。

だんだん精密なプログラムになってきましたね。
やはりプログラミングは、>>64のような柱から、後で精密にしていくもんなんでしょうね。

今日はゆとり世代の私につきあってくれてありがとうございました。>>57>>58-64
87 : nobodyさん - 2006/03/20(月) 23:16:35 ID:???.net (+13,+12,-14)
>>59
手っ取り早くならXAMPPかな。
88 : nobodyさん - 2006/03/20(月) 23:25:23 ID:???.net (-9,+29,-52)
なんか興味深いスレだwww

たとえ>>1が釣りでも、池沼春厨でも、
おれはこのスレに常駐するとしよう。

糞春厨が新学期には掲示板を作れるようになるのをみさせてもらおう。
それは無理か
90 : nobodyさん - 2006/03/20(月) 23:30:38 ID:???.net (-26,-30,-67)
>>86
それだと、小数点の計算ははねられちゃう。
> elseif ( !preg_match('/^[0-9]+$/',$dividend.$divisor) ){

        ↓

elseif ( !is_numeric($dividend) || !is_numeric($divisor) ){

ってのはどうだ?
91 : nobodyさん - 2006/03/20(月) 23:34:24 ID:???.net (+24,+29,-15)
>>90
剰余を出力するんだから、小数点の考慮は不要では?

さっそく仕様の問題が出てきたかwww
92 : nobodyさん - 2006/03/20(月) 23:35:32 ID:???.net (+36,+30,-66)
たがが割り算計算でも、チェックするとなるとムズいな。
>>1よ、チェックを怠るな…

ただ、>>1の最初の割り算スクリプトについてだが、
ちゃんと(int)を使っているあたりがよい。
また、余り出力のアイディアも悪くないので、
鍛えればかなり優秀なプログラマーになる悪寒。

やばい、仕事場が>>1によって失われそうで本当に悪寒が…
93 : nobodyさん - 2006/03/20(月) 23:51:21 ID:???.net (+23,+25,-3)
>>92
あるあ・・・ねーよwww。
94 : nobodyさん - 2006/03/20(月) 23:56:49 ID:???.net (-23,-30,+0)
じゃ、割り算まとめ(rev.1)
<?PHP
$dividend = $_GET['sahen'] ? $_GET['sahen'] : '数字を入力' ;
$divisor = $_GET['uhen'] ? $_GET['uhen'] : '数字を入力' ;
?>
<HTML><BODY>
<form method="get" action="<?php print $_SERVER['PHP_SELF']; ?>">
<input type="text" name="sahen" style="text-align:right;" value ='<?PHP echo $dividend ?>'>÷<input type="text" name="uhen" style="text-align:right;" value ='<?PHP echo $divisor ?>'>
<input type="submit" value="送信">
</form>
</BODY></HTML>
<?php
if ( (!strlen($dividend)) && (!strlen($divisor)) ) {
echo '被除数(わられるかず)と除数(わるかず)を入力してください。';
} elseif ( !preg_match('/^[0-9]+$/',$dividend.$divisor) ) {
echo '入力は半角数字で。';
} elseif ( ($dividend != 0) && ($divisor != 0) ) {
$amari_answer = $dividend % $divisor ;
$answer = (int)($dividend / $divisor) ;
printf( "答えは、%d %s です。", $answer, $amari_answer ? "あまり {$amari_answer}":'' ) ;
} else {
echo '0の割り算キタコレ!!' ;
}
?>
<!-- 入力のチェックはJavascriptでやりたいが。 -->
95 : nobodyさん - 2006/03/21(火) 00:34:06 ID:???.net (+26,+29,-20)
>>94
まぁいいんだが、まとめは>>1にやらせろよ。
じゃなきゃ、結局フーーンで終わっちゃうヨカン
96 : 57 - 2006/03/21(火) 00:42:43 ID:???.net (-17,-30,+0)
割り算(改良型)
・少数可
・不自然な最初の警告文非表示

<?PHP
$submit_check = isset($_GET['dividend']) ? $_GET['dividend'] : 0 ;
$dividend = isset($_GET['dividend']) ? $_GET['dividend'] : '数字を入力' ;
$divisor = isset($_GET['divisor']) ? $_GET['divisor'] : '数字を入力' ;
?>
<HTML><BODY><form method="get" action="<?php print $_SERVER['PHP_SELF']; ?>">
<input type="text" name="dividend" style="text-align:right;" value ='<?PHP echo $dividend ?>'>÷<input type="text" name="divisor" style="text-align:right;" value ='<?PHP echo $divisor ?>'>
<input type="hidden" name="submit_check" value="1"><input type="submit" value="送信">
</form></BODY></HTML>
<?php
if ($submit_check) {
if ( (!strlen($dividend)) && (!strlen($divisor)) ) {
echo '被除数(わられるかず)と除数(わるかず)を入力してください。';
} elseif ( !preg_match('/^[0-9]+(?:\.[0-9]+)$/',$dividend.$divisor) ) {
echo '入力は半角数字で。';
} elseif ( ($dividend != 0) && ($divisor != 0) ) {
$amari_answer = $dividend % $divisor ;
$answer = (int)($dividend / $divisor) ;
printf( "答えは、%d %s です。", $answer, $amari_answer ? "あまり {$amari_answer}":'' ) ;
} else {
echo '0の割り算キタコレ!!' ;
}
}
?>
97 : 96 - 2006/03/21(火) 00:44:15 ID:???.net (-27,-30,-72)
誤)$submit_check = isset($_GET['dividend']) ? $_GET['dividend'] : 0 ;
正)$submit_check = isset($_GET['submit_check']) ? $_GET['submit_check'] : 0 ;
98 : 57 - 2006/03/21(火) 00:53:30 ID:???.net (-27,-30,-105)
しまった。
$dividend = isset($_GET['dividend']) ? $_GET['dividend'] : '数字を入力' ;
$divisor = isset($_GET['divisor']) ? $_GET['divisor'] : '数字を入力' ;
により、下の式は常にtrueだ!!
if ( (!strlen($dividend)) && (!strlen($divisor)) )
99 : 57 - 2006/03/21(火) 01:26:27 ID:???.net (-27,-30,+0)
もう限界…
<?php
class Calc {
private static $sc; static $dividend; static $divisor; private static $amari_answer; private static $answer;
private static $error = array();

public function __construct() {
self::$sc = isset($_GET['submit_check']) ? $_GET['submit_check'] : NULL ;
self::$dividend = isset($_GET['dividend']) ? $_GET['dividend'] : NULL ;
self::$divisor = isset($_GET['divisor']) ? $_GET['divisor'] : NULL ;
}

public function Validate() {
if (! strlen(self::$dividend)) {self::$error[] = '被除数を入力してください。';}
if (! strlen(self::$divisor)) {self::$error[] = '除数を入力してください。';}
if ( (!preg_match('/^[0-9]+(?:\.[0-9]+)$/', self::$dividend.self::$divisor)) && (strlen(self::$dividend)) && (strlen(self::$divisor)) ) {
self::$error[] = '入力は半角数字で。';}
if ((! self::$error) && (self::$dividend != 0) && (self::$divisor != 0) ) {
self::$amari_answer = self::$dividend % self::$divisor ; self::$answer = (int)(self::$dividend / self::$divisor) ;}
}

public function showResult() {
if (self::$error && self::$sc) {print "</ul>\n";
foreach (self::$error as $key => $value) {print "<li>$value</li>\n";}print "</ul>\n";
} elseif ((! self::$error) && self::$sc) {
printf( "答えは、%d %s です。", self::$answer, self::$amari_answer ? "あまり " . self::$amari_answer : '' );
}
}
}
?>
100 : 57 - 2006/03/21(火) 01:29:35 ID:???.net (-27,-30,-288)
再び。
誤)preg_match('/^[0-9]+(?:\.[0-9]+)$/'
正)preg_match('/^[0-9]+(?:\.[0-9]+)?$/'

続き
<?php
$Calc = new Calc();
$Calc->Validate();
$Calc->showResult();
?>
<HTML><BODY>
<form method="get" action="<?php print $_SERVER['PHP_SELF']; ?>">
<input type="text" name="dividend" style="text-align:right;" value ='<?PHP echo Calc::$dividend; ?>'>÷<input type="text" name="divisor" style="text-align:right;" value ='<?PHP echo Calc::$divisor ?>'>
<input type="hidden" name="submit_check" value="1">
<input type="submit" value="送信">
</form>
</BODY></HTML>
←前へ 1 2 3 4 5 6 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について