X



中学生がPHPを習得するスレ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
垢版 |
2006/02/12(日) 21:22:54ID:6w/Lcw3V
中学生ですが、PHPを習得したく思います。
最初は何を学べばいいですか?

本を紹介してくれてもいいです。
そのままレッスンしてくれてもいいです。
0004nobodyさん
垢版 |
2006/02/13(月) 09:34:49ID:???
まず、本屋へ行って堂々とエロ本を買ってくるところから。
0005nobodyさん
垢版 |
2006/02/13(月) 10:08:21ID:???
空気読めない中学生は、外で遊んできなさい。
0006nobodyさん
垢版 |
2006/02/15(水) 16:31:37ID:???
みんなはどこで覚えたの
独学?
0008nobodyさん
垢版 |
2006/02/18(土) 22:01:40ID:???
とにかく掲示板とかカウンターとか、何でも作ってみる。
ネットにはその手のサンプルスクリプトが転がっているが、PHPのではなく、PerlやRubyの
サンプルについての解説やらコメントやらを見ながらやると、いい感じで上達するぞ。
0009nobodyさん
垢版 |
2006/02/21(火) 08:07:28ID:BpqbdwCK
>8そういった、完全解説つきサイト(orスクリプト)を
教えてほしい。 ただしPHP以外
0012nobodyさん
垢版 |
2006/02/21(火) 18:06:09ID:???
中学生が、なんでPHP覚えるの?てところが激しく疑問
0013nobodyさん
垢版 |
2006/02/21(火) 22:33:40ID:BpqbdwCK
プログラミングが理解できないろうから、なでしこやっとけ。

HTMLは余裕。
英語さえできれば、普通に使える。
0014nobodyさん
垢版 |
2006/02/22(水) 01:03:01ID:???
まず何を作りたいかが決まってないと
何も進まない。
0016nobodyさん
垢版 |
2006/02/22(水) 16:31:41ID:???
氏ね
糞スレあげんじゃねえよカス
0017nobodyさん
垢版 |
2006/02/22(水) 18:19:13ID:???
PHPなんてどうでもいいから中学生のうちにオナニーを覚えて出来る限りセックスしまくれ。
0018nobodyさん
垢版 |
2006/02/23(木) 00:41:35ID:???
中学生と中学生は犯罪じゃないけど、
俺と中学生は犯罪だもんなぁ…。
0020nobodyさん
垢版 |
2006/02/23(木) 07:17:10ID:???
PHPはHTMLに埋め込むことが多いらしい
<html><body>
<?php
echo "Hello, World!";
?>
</body></html>
0021nobodyさん
垢版 |
2006/02/24(金) 01:02:47ID:???
>>20
<head>〜</head>
がない時点で失格。
0022nobodyさん
垢版 |
2006/02/24(金) 01:16:16ID:???
headは強制じゃないだろ?
それよりtitleが無い方が駄目。
0024nobodyさん
垢版 |
2006/02/24(金) 10:19:27ID:???
>>20
<html>より先に文字列を出力しているのでOUT!
0025nobodyさん
垢版 |
2006/02/24(金) 13:12:00ID:???
>>24
DOCTYPEを否定する人が現れました。
0026nobodyさん
垢版 |
2006/02/24(金) 13:17:09ID:???
>>25
DOCTYPE宣言は、「出力文字列」じゃ無い罠
0027nobodyさん
垢版 |
2006/02/24(金) 13:20:41ID:???
PHPの「出力文字列」ってことかな?
どっちにしろ、こんな話題で引っ張るなw
0029nobodyさん
垢版 |
2006/02/24(金) 18:09:30ID:???
引っ張らなくていいから放置しとけよ
00301
垢版 |
2006/02/25(土) 01:23:14ID:8e7piQwZ
HTMLとCSSは完璧に覚えました。
掲示板とフォームメールをつくってみたい。
00321
垢版 |
2006/02/25(土) 10:49:17ID:8e7piQwZ
>30
プログラミングというものがいまひとつ理解できません。
0034nobodyさん
垢版 |
2006/02/25(土) 22:21:49ID:???
>>31
へぇ、完璧に? 本当に? 本当に完璧なんだな?
0035nobodyさん
垢版 |
2006/02/26(日) 08:15:57ID:???
HTMLとCSSて完璧に覚えて何か意味あるのか?本見ながら作れれば十分じゃね?
0036nobodyさん
垢版 |
2006/02/26(日) 11:52:32ID:???
>>35
というか、「完璧」に覚えられる種類のものじゃない。
1のいう「完璧」がどの程度のものかは判らんが。
0037nobodyさん
垢版 |
2006/02/26(日) 18:31:33ID:???
ものを知らないヤツに限って「完璧に覚えました」とか簡単に言いがちだってのは、
本当だったんだな・・・。
もしかして>>1って本当に厨房なのか?!!
00381
垢版 |
2006/02/26(日) 18:37:01ID:???
名欄に1と書けば>>1の発言だと信じてしまう
純真無垢な童貞が集うスレはここですか?
0039nobodyさん
垢版 |
2006/02/26(日) 18:39:19ID:???
はいはい。そうだねそうだね
00401
垢版 |
2006/02/27(月) 00:45:54ID:???
Javascriptから覚えたほうがいいですか?
0041nobodyさん
垢版 |
2006/02/27(月) 02:45:35ID:???
いい時代になったもんだ。
俺が中学生の頃はコンピュータなんて何が出来る物体なのかもわからなかったな。
パソコンでゲームしている奴がいたけど神かと思った。
>1自分がやってて楽しいと思うことをやってればいい。
勉強なんて何からやればいいなんて事はない。
何が書いてあるかわからないものでも、わかりそうな
小さな事を繰り返し積み重ねて行くことで次第に理解できるようになっているものだ。
言っておくとすれば、HTMLだとかJavascriptだとかそんな物は覚える価値すらないものだ。

あとな、この板にいるおじちゃん達はオマイさんが優秀なPHPプログラマー(wになって
自分たちの仕事の価値が下がってしまうのをおそれている心の狭い人たちばかりだからな。
すこしは気をつかってやってくれ。
0043nobodyさん
垢版 |
2006/02/27(月) 10:15:55ID:???
>>41の懐古を読んで、店頭でFM-7とかにグラフィックデータとか打ち込んでた奴等を思い出した。
俺も歳とったな…
0044nobodyさん
垢版 |
2006/02/27(月) 11:41:16ID:???
なんだよ。HTMLの仕様も読めないのにPHP習うってか?ww
どうせMLでくだらない質問して作るしかできないからやめとけ。
外で遊んできたほうがずっとマシ
0045nobodyさん
垢版 |
2006/02/27(月) 13:40:14ID:???
>>44
MLで騒いでくれればヲチスレの人たちが喜ぶかも知れない。
0047nobodyさん
垢版 |
2006/02/27(月) 15:26:51ID:???
まあ、応援する義務も無いけど
(・・・・・本当に無いかな;)
止めろ止めろ言わなくてもいいでしょ。

>>1
本屋で好きなだけ立ち読みして気に入ったものを買えば良い。
つうか本当に何かアドバイスが欲しいなら2chで質問とかするなw
0049nobodyさん
垢版 |
2006/03/03(金) 23:04:31ID:cbpphxKh
Javaスクリプトか…
0051nobodyさん
垢版 |
2006/03/04(土) 17:21:38ID:???
頼むから次の仕事はPascalでやらしてくれーーーー
0052nobodyさん
垢版 |
2006/03/11(土) 00:43:11ID:d1dpDqJu
うん、とりあえずJavascript覚えな。
0053nobodyさん
垢版 |
2006/03/13(月) 19:12:19ID:???
PHPそのものの解説に関しては、オンラインマニュアルに勝る書物を見たことがない
0054nobodyさん
垢版 |
2006/03/13(月) 23:31:41ID:W/6QOh04
紙のマニュアル欲しいな
0055nobodyさん
垢版 |
2006/03/13(月) 23:39:40ID:u9QxZPxT
なるほど、紙を作るマニュアルか。

王子製紙の下請け工場の方ですか?
0056nobodyさん
垢版 |
2006/03/17(金) 19:02:15ID:???
>>54
man paper

まぁ紙にしてもすぐに古くなっちまうから無駄だな。
定期的に紙にして書棚に並べるんだったら問題ないけど。
005857
垢版 |
2006/03/19(日) 16:37:22ID:???
面白そうなので、57は1を応援します。
0060nobodyさん
垢版 |
2006/03/19(日) 17:08:11ID:ShpQS04P
次は、フォーム処理が一番勉強になると思う。

<html>
<head>
<title>form.php</title>
</head>
<body>
<?php
$_POST['post'] = isset($_POST['post']) ? $_POST['post'] : NULL;
if ($_POST['post']) {
print '<div>送信を確認しました。 送信内容は ' . $_POST['post'] . ' です。</div>';
}
?>
<form method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">
<label for="post">送信内容</label><input type="text" name="post" id="post" />
<input type="submit" />
</form>
</body>
</html>
0061nobodyさん
垢版 |
2006/03/19(日) 17:23:53ID:???
>>60
表示だけで実害はないと思うが、XSS脆弱だな
006260
垢版 |
2006/03/19(日) 17:33:30ID:???
表示だけでXSS脆弱って、あるんですか?
勉強になりそうなので、詳しく教えてください。
0063nobodyさん
垢版 |
2006/03/20(月) 01:06:31ID:dBFE9MmM
エスケープする必要があるな
00641
垢版 |
2006/03/20(月) 10:00:12ID:???
>>60を参考にして、足し算マシーンを作ってみました。

<? if(empty($_GET)){ ?>
<HTML>
<HEAD><title>足し算スクリプト</title></HEAD>
<BODY>
<form method="get" action="test.php" />
<input type="text" name="sahen">+<input type="text" name="uhen" />
<input type="submit" value="送信" />
</form>
</BODY>
</HTML>

<?php }else{
$answer = $_GET[sahen]+$_GET[uhen];
echo "答えは $answer です。";
}
?>

どうでしょうか?
006557
垢版 |
2006/03/20(月) 14:28:55ID:???
>>64
うーm、HTMLを出力するためにPHPモードをぬけているのはワザあり
でグッジョブ!

それでは、早速ポイント解説に。
・empty()関数は値が0の場合にもfalseを返します。つまり、uhen=0, sahen=0
の場合、式としてはオケィでも、計算をしてもらえなくなります。こういうとき
にはstrlen()あたりがおすすめです。
・遊び心たっぷりのユーザにも対応できるように、入力が数字かどうかを確か
めるといいかも。

if (! preg_match('/^[0-9]$/', $_GET[sahen] . $_GET[uhen])) {
print '入力は半角数字でね';
}
みたいに。
006665
垢版 |
2006/03/20(月) 14:32:35ID:???
>>65
誤) '/^[0-9]$/'
正) '/^[0-9]+$/'
0067nobodyさん
垢版 |
2006/03/20(月) 16:10:46ID:eSmM++Vt
>>65ありがとうございます。
>>65-66を参考にして割り算スクリプトを作りました。

<? if(empty($_GET)){ ?>

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

<? }else{
if(!preg_match('/^[0-9]+$/',$_GET[sahen].$_GET[uhen])){
echo "入力は半角数字で。";

}elseif($_GET[sahen] % $_GET[uhen]!==0){

$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 です";
}
}
?>
0068nobodyさん
垢版 |
2006/03/20(月) 19:14:25ID:???
今回はコメントで解説してみました。

<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} です";
}
?>
0069nobodyさん
垢版 |
2006/03/20(月) 21:10:41ID:???
どうでもいい事だが、「左辺」と「右辺」の使い方が間違っている。
0070nobodyさん
垢版 |
2006/03/20(月) 21:16:21ID:jTYd4CQi
おれPerlつかう人だけどさ、

PHPってきもいね。

記法が。

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

(ちら裏)
そりゃPerlも十分きもいけどさ。
0071nobodyさん
垢版 |
2006/03/20(月) 21:23:40ID:???
Perl書くやつできれいなコード見たことない。
KENTを代表として。
007368
垢版 |
2006/03/20(月) 21:36:58ID:???
>>69
うん。そうなんだよ。確かにそうなんだけどさ…
スレの趣旨を重視して、そこはニュアンスだけにしときませんか…
0074nobodyさん
垢版 |
2006/03/20(月) 21:40:19ID:???
>>69
被除数(わられるかず)と除数(わるかず)だよな。

>>68

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

剰余の前に除数と被除数の0チェックをしたいところ。
0075nobodyさん
垢版 |
2006/03/20(月) 21:46:21ID:???
>>73
こんなところで、ゆとり教育してどうする。
PHPとは関係なくても間違いは正してやらにゃ。
厨房相手ならなおのこと。
007657
垢版 |
2006/03/20(月) 21:47:37ID:???
>>74
1を応援しますとか言いながら、自分の無能さを痛感したため
一時退却します。
誰か、引き続きよろしく。
007773
垢版 |
2006/03/20(月) 21:49:36ID:???
>>75
すみません。漏れもゆとり教育を受けたので、ゆとり教育に
甘んじているのです。
0078nobodyさん
垢版 |
2006/03/20(月) 22:03:09ID:???
>>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の割り算キタコレ!!" ;
}
?>
0079nobodyさん
垢版 |
2006/03/20(月) 22:05:29ID:???
>>78
ダメ。
最初の一回目がキタコレになっちゃうよ。
008057
垢版 |
2006/03/20(月) 22:09:46ID:???
>>78
ただ今、戻りました。
簡潔で、わかりやすくなってますね。それとinputにテキストが入っ
てるのが細かい工夫でいいかんじです。
蛇足ですが、2chは空白を削除しちゃうので、ソースの掲載には不向
きですね。対応する括弧がわからない…
008157
垢版 |
2006/03/20(月) 22:15:28ID:???
>>79
$dividend = 'なんか入れてね' ; $divisor = 'なんかいれてね' ;
てのはどう?

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

>>80
お帰りなさい。俺はオナニーでもして寝ます。おやしみー
008480
垢版 |
2006/03/20(月) 22:18:08ID:???
>>82
おやしみー
00851 ◆J0d1mE8o22
垢版 |
2006/03/20(月) 23:00:16ID:???
右辺、左辺の使い方は間違っているのはもう確信犯なんですが、
それに変わる正しい言葉がみつからなかったんで・・・。

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

今日はゆとり世代の私につきあってくれてありがとうございました。>>57>>58-64
0086nobodyさん
垢版 |
2006/03/20(月) 23:12:34ID:???
割り算、まとめ。
<?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) ;
echo "答えは、{$answer} " ;
if( $amari_answer ) {
echo "あまり {$amari_answer} " ;
}
echo "です。" ;
} else {
echo "0の割り算キタコレ!!" ;
}
?>
0088nobodyさん
垢版 |
2006/03/20(月) 23:25:23ID:???
なんか興味深いスレだwww

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

糞春厨が新学期には掲示板を作れるようになるのをみさせてもらおう。
それは無理か
0089nobodyさん
垢版 |
2006/03/20(月) 23:27:43ID:???
>>86
答えを出力するところが冗長。

printf( "答えは、%d %s です。", $answer, $amari_answer ? "あまり {$amari_answer}":'' ) ;

一行ですむね。
0090nobodyさん
垢版 |
2006/03/20(月) 23:30:38ID:???
>>86
それだと、小数点の計算ははねられちゃう。
> elseif ( !preg_match('/^[0-9]+$/',$dividend.$divisor) ){

        ↓

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

ってのはどうだ?
0091nobodyさん
垢版 |
2006/03/20(月) 23:34:24ID:???
>>90
剰余を出力するんだから、小数点の考慮は不要では?

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

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

やばい、仕事場が>>1によって失われそうで本当に悪寒が…
0094nobodyさん
垢版 |
2006/03/20(月) 23:56:49ID:???
じゃ、割り算まとめ(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でやりたいが。 -->
0095nobodyさん
垢版 |
2006/03/21(火) 00:34:06ID:???
>>94
まぁいいんだが、まとめは>>1にやらせろよ。
じゃなきゃ、結局フーーンで終わっちゃうヨカン
009657
垢版 |
2006/03/21(火) 00:42:43ID:???
割り算(改良型)
・少数可
・不自然な最初の警告文非表示

<?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の割り算キタコレ!!' ;
}
}
?>
009796
垢版 |
2006/03/21(火) 00:44:15ID:???
誤)$submit_check = isset($_GET['dividend']) ? $_GET['dividend'] : 0 ;
正)$submit_check = isset($_GET['submit_check']) ? $_GET['submit_check'] : 0 ;
009857
垢版 |
2006/03/21(火) 00:53:30ID:???
しまった。
$dividend = isset($_GET['dividend']) ? $_GET['dividend'] : '数字を入力' ;
$divisor = isset($_GET['divisor']) ? $_GET['divisor'] : '数字を入力' ;
により、下の式は常にtrueだ!!
if ( (!strlen($dividend)) && (!strlen($divisor)) )
009957
垢版 |
2006/03/21(火) 01:26:27ID:???
もう限界…
<?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 : '' );
}
}
}
?>
010057
垢版 |
2006/03/21(火) 01:29:35ID:???
再び。
誤)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>
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況