1read 100read
2012年6月WebProg378: 中学生がPHPを習得するスレ (262) TOP カテ一覧 スレ一覧 2ch元 削除依頼
実力主義のCGIスクリプトは? (286)
Apache2.x 【新鯖入荷しました】 (635)
1chスクリプト改造(改良)スレ パートA (368)
一番汚いコードでHello Worldを書いたやつが勝ち (212)
正規表現道場 (961)
正規表現道場 (961)

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


1 :06/02/12 〜 最終レス :09/10/01
中学生ですが、PHPを習得したく思います。
最初は何を学べばいいですか?
本を紹介してくれてもいいです。
そのままレッスンしてくれてもいいです。

2 :
機械語

3 :
終了

4 :
まず、本屋へ行って堂々とエロ本を買ってくるところから。

5 :
空気読めない中学生は、外で遊んできなさい。

6 :
みんなはどこで覚えたの
独学?

7 :
>>6
>>5
−−終了−−

8 :
とにかく掲示板とかカウンターとか、何でも作ってみる。
ネットにはその手のサンプルスクリプトが転がっているが、PHPのではなく、PerlやRubyの
サンプルについての解説やらコメントやらを見ながらやると、いい感じで上達するぞ。

9 :
>8そういった、完全解説つきサイト(orスクリプト)を
教えてほしい。 ただしPHP以外

10 :
終了

11 :
echo "HTML";

12 :
中学生が、なんでPHP覚えるの?てところが激しく疑問

13 :
プログラミングが理解できないろうから、なでしこやっとけ。
HTMLは余裕。
英語さえできれば、普通に使える。

14 :
まず何を作りたいかが決まってないと
何も進まない。

15 :
>>1
"Hello World"

16 :

糞スレあげんじゃねえよカス

17 :
PHPなんてどうでもいいから中学生のうちにーを覚えて出来る限りしまくれ。

18 :
中学生と中学生は犯罪じゃないけど、
俺と中学生は犯罪だもんなぁ…。

19 :
ょぅι″ょ

20 :
PHPはHTMLに埋め込むことが多いらしい
<html><body>
<?php
echo "Hello, World!";
?>
</body></html>

21 :
>>20
<head>〜</head>
がない時点で失格。

22 :
headは強制じゃないだろ?
それよりtitleが無い方が駄目。

23 :
バカ丸出しだな

24 :
>>20
<html>より先に文字列を出力しているのでOUT!

25 :
>>24
DOCTYPEを否定する人が現れました。

26 :
>>25
DOCTYPE宣言は、「出力文字列」じゃ無い罠

27 :
PHPの「出力文字列」ってことかな?
どっちにしろ、こんな話題で引っ張るなw

28 :
>>27
他に何で引っ張れと?w

29 :
引っ張らなくていいから放置しとけよ

30 :
HTMLとCSSは完璧に覚えました。
掲示板とフォームメールをつくってみたい。

31 :
>>30
おう、がんばれよ





で、PHPは?

32 :
>30
プログラミングというものがいまひとつ理解できません。

33 :
TCP/IPからやっとけ

34 :
>>31
へぇ、完璧に? 本当に? 本当に完璧なんだな?

35 :
HTMLとCSSて完璧に覚えて何か意味あるのか?本見ながら作れれば十分じゃね?

36 :
>>35
というか、「完璧」に覚えられる種類のものじゃない。
1のいう「完璧」がどの程度のものかは判らんが。

37 :
ものを知らないヤツに限って「完璧に覚えました」とか簡単に言いがちだってのは、
本当だったんだな・・・。
もしかして>>1って本当に厨房なのか?!!

38 :
名欄に1と書けば>>1の発言だと信じてしまう
純真無垢なが集うスレはここですか?

39 :
はいはい。そうだねそうだね

40 :
Javascriptから覚えたほうがいいですか?

41 :
いい時代になったもんだ。
俺が中学生の頃はコンピュータなんて何が出来る物体なのかもわからなかったな。
パソコンでゲームしている奴がいたけど神かと思った。
>1自分がやってて楽しいと思うことをやってればいい。
勉強なんて何からやればいいなんて事はない。
何が書いてあるかわからないものでも、わかりそうな
小さな事を繰り返し積み重ねて行くことで次第に理解できるようになっているものだ。
言っておくとすれば、HTMLだとかJavascriptだとかそんな物は覚える価値すらないものだ。
あとな、この板にいるおじちゃん達はオマイさんが優秀なPHPプログラマー(wになって
自分たちの仕事の価値が下がってしまうのをおそれている心の狭い人たちばかりだからな。
すこしは気をつかってやってくれ。

42 :
>>41
23点

43 :
>>41の懐古を読んで、店頭でFM-7とかにグラフィックデータとか打ち込んでた奴等を思い出した。
俺も歳とったな…

44 :
なんだよ。HTMLの仕様も読めないのにPHP習うってか?ww
どうせMLでくだらない質問して作るしかできないからやめとけ。
外で遊んできたほうがずっとマシ

45 :
>>44
MLで騒いでくれればヲチスレの人たちが喜ぶかも知れない。

46 :
>>45
ノシ

47 :
まあ、応援する義務も無いけど
(・・・・・本当に無いかな;)
止めろ止めろ言わなくてもいいでしょ。
>>1
本屋で好きなだけ立ち読みして気に入ったものを買えば良い。
つうか本当に何かアドバイスが欲しいなら2chで質問とかするなw

48 :
>>47
ネタだから大丈夫だろw

49 :
Javaスクリプトか…

50 :
釣られすぎ

51 :
頼むから次の仕事はPascalでやらしてくれーーーー

52 :
うん、とりあえずJavascript覚えな。

53 :
PHPそのものの解説に関しては、オンラインマニュアルに勝る書物を見たことがない

54 :
紙のマニュアル欲しいな

55 :
なるほど、紙を作るマニュアルか。
王子製紙の下請け工場の方ですか?

56 :
>>54
man paper
まぁ紙にしてもすぐに古くなっちまうから無駄だな。
定期的に紙にして書棚に並べるんだったら問題ないけど。

57 :
オライリーの「はじめてのPHP5」が一番参考になった。
それと、漏れがよくお世話になってるとこ。
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/

58 :
面白そうなので、57は1を応援します。

59 :
まずは、環境作りから。
http://allabout.co.jp/career/database/closeup/CU20040928A/

60 :
次は、フォーム処理が一番勉強になると思う。
<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>

61 :
>>60
表示だけで実害はないと思うが、XSS脆弱だな

62 :
表示だけでXSS脆弱って、あるんですか?
勉強になりそうなので、詳しく教えてください。

63 :
エスケープする必要があるな

64 :
>>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 です。";
}
?>
どうでしょうか?

65 :
>>64
うーm、HTMLを出力するためにPHPモードをぬけているのはワザあり
でグッジョブ!
それでは、早速ポイント解説に。
・empty()関数は値が0の場合にもfalseを返します。つまり、uhen=0, sahen=0
の場合、式としてはオケィでも、計算をしてもらえなくなります。こういうとき
にはstrlen()あたりがおすすめです。
・遊び心たっぷりのユーザにも対応できるように、入力が数字かどうかを確か
めるといいかも。
if (! preg_match('/^[0-9]$/', $_GET[sahen] . $_GET[uhen])) {
print '入力は半角数字でね';
}
みたいに。

66 :
>>65
誤) '/^[0-9]$/'
正) '/^[0-9]+$/'

67 :
>>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 です";
}
}
?>

68 :
今回はコメントで解説してみました。
<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 :
どうでもいい事だが、「左辺」と「右辺」の使い方が間違っている。

70 :
おれPerlつかう人だけどさ、
PHPってきもいね。
記法が。
入るだの抜けるだのありえないんですが…いや聞き流してくださってかまわないっす。
(ちら裏)
そりゃPerlも十分きもいけどさ。

71 :
Perl書くやつできれいなコード見たことない。
KENTを代表として。

72 :
PerlのKENT
PHPのLet's

73 :
>>69
うん。そうなんだよ。確かにそうなんだけどさ…
スレの趣旨を重視して、そこはニュアンスだけにしときませんか…

74 :
>>69
被除数(わられるかず)と除数(わるかず)だよな。
>>68
| }elseif(($_GET['sahen'] % $_GET['uhen'] !== 0) && ($_GET['sahen'] > $_GET['uhen'])){
剰余の前に除数と被除数の0チェックをしたいところ。

75 :
>>73
こんなところで、ゆとり教育してどうする。
PHPとは関係なくても間違いは正してやらにゃ。
厨房相手ならなおのこと。

76 :
>>74
1を応援しますとか言いながら、自分の無能さを痛感したため
一時退却します。
誰か、引き続きよろしく。

77 :
>>75
すみません。漏れもゆとり教育を受けたので、ゆとり教育に
甘んじているのです。

78 :
>>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 :
>>78
ダメ。
最初の一回目がキタコレになっちゃうよ。

80 :
>>78
ただ今、戻りました。
簡潔で、わかりやすくなってますね。それとinputにテキストが入っ
てるのが細かい工夫でいいかんじです。
蛇足ですが、2chは空白を削除しちゃうので、ソースの掲載には不向
きですね。対応する括弧がわからない…

81 :
>>79
$dividend = 'なんか入れてね' ; $divisor = 'なんかいれてね' ;
てのはどう?
ちなみに最初のif分岐は
$dividend = isset($_GET['sahen']) ? $_GET['sahen'] : 'なんか入れて' ;
$divisor = isset($_GET['uhen']) ? $_GET['uhen'] : 'なんか入れて' ;
でもいける。

82 :
>>79
そか
じゃ、さきっちょのところをこれでごまかすのはどうかw
$dividend = $divisor = '' ;
if ( $_GET['uhen'] && $_GET['sahen'] ) {
$dividend = $_GET['sahen'] ;
$divisor = $_GET['uhen'] ;
}
>>80
お帰りなさい。俺はーでもして寝ます。おやしみー

83 :
>>81
じゃ、それで。

84 :
>>82
おやしみー

85 :
右辺、左辺の使い方は間違っているのはもう確信犯なんですが、
それに変わる正しい言葉がみつからなかったんで・・・。
だんだん精密なプログラムになってきましたね。
やはりプログラミングは、>>64のような柱から、後で精密にしていくもんなんでしょうね。
今日はゆとり世代の私につきあってくれてありがとうございました。>>57>>58-64

86 :
割り算、まとめ。
<?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の割り算キタコレ!!" ;
}
?>

87 :
>>59
手っ取り早くならXAMPPかな。

88 :
なんか興味深いスレだwww
たとえ>>1が釣りでも、池沼春厨でも、
おれはこのスレに常駐するとしよう。
糞春厨が新学期には掲示板を作れるようになるのをみさせてもらおう。
それは無理か

89 :
>>86
答えを出力するところが冗長。
printf( "答えは、%d %s です。", $answer, $amari_answer ? "あまり {$amari_answer}":'' ) ;
一行ですむね。

90 :
>>86
それだと、小数点の計算ははねられちゃう。
> elseif ( !preg_match('/^[0-9]+$/',$dividend.$divisor) ){
        ↓
elseif ( !is_numeric($dividend) || !is_numeric($divisor) ){
ってのはどうだ?

91 :
>>90
剰余を出力するんだから、小数点の考慮は不要では?
さっそく仕様の問題が出てきたかwww

92 :
たがが割り算計算でも、チェックするとなるとムズいな。
>>1よ、チェックを怠るな…
ただ、>>1の最初の割り算スクリプトについてだが、
ちゃんと(int)を使っているあたりがよい。
また、余り出力のアイディアも悪くないので、
鍛えればかなり優秀なプログラマーになる悪寒。
やばい、仕事場が>>1によって失われそうで本当に悪寒が…

93 :
>>92
あるあ・・・ねーよwww。

94 :
じゃ、割り算まとめ(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 :
>>94
まぁいいんだが、まとめは>>1にやらせろよ。
じゃなきゃ、結局フーーンで終わっちゃうヨカン

96 :
割り算(改良型)
・少数可
・不自然な最初の警告文非表示
<?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 :
誤)$submit_check = isset($_GET['dividend']) ? $_GET['dividend'] : 0 ;
正)$submit_check = isset($_GET['submit_check']) ? $_GET['submit_check'] : 0 ;

98 :
しまった。
$dividend = isset($_GET['dividend']) ? $_GET['dividend'] : '数字を入力' ;
$divisor = isset($_GET['divisor']) ? $_GET['divisor'] : '数字を入力' ;
により、下の式は常にtrueだ!!
if ( (!strlen($dividend)) && (!strlen($divisor)) )

99 :
もう限界…
<?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 : '' );
}
}
}
?>

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
■CGIは死滅。これからは.NETできまり■ (359)
MySQL vs PostgreSQL (379)
1chスクリプト改造(改良)スレ パートA (368)
【PHP】Yii Framework (955)
PHPとJAVAさぶれっと (316)
【激速】mod_perl SpeedyCGI FastCGI【激速】 (849)
--log9.info------------------
ブラウブリッツ秋田 part24 (638)
【J1】定点観測してみよう!!のスレ その175【J2】 (527)
シーズン移行は結局どうなの?秋春制議論スレPart62 (575)
サカ敵視の関西メディア 78 (356)
∧/\∧ カターレ富山 part99 ∧/\∧ (556)
※キショーちゃん欲しい?ん? 新潟隔離アル毘スレ30※ (353)
大分トリニータユーススレッド8 (941)
∬∬∬ ザスパ草津 湯めぐり206湯目 ∬∬∬ (851)
【昇鶴】 グルージャ盛岡 part22 【鳴尾体制始動】 (458)
Jリーグの今後を考える その101 (442)
大分第二勢力HOYO AC ELAN大分 (855)
移籍・レンタル・戦力外「ら」スレpart3603 (1001)
京都と湘南と仙台の降格が何時決まるのか (421)
IDにVが入ってる人をひたすらバカにするスレ Part53 (746)
【柏のBeast(獣)】 増嶋竜也15 【馬車馬DF】 (911)
そろそろみんなが忘れてそうな些細なこと6 (703)
--log55.com------------------
Matchbox Twenty マッチボックス・トゥエンティ
【PSB】PET SHOP BOYS ペットショップボーイズ 19
Nothing but thieves 1
ショーン・メンデス Shawn Mendes
【洋楽歌姫】CELINE DION/セリーヌ・ディオン Part 6【お蝶夫人】
洋楽ファンの所有するラジカセ、MD
やしきたかじんに捧げる洋楽
行方不明のマレーシア航空機に捧げる洋楽