元スレくだすれPHP(超初心者用)6
php覧 / PC版 /みんなの評価 : ○
601 = :
ぐぁ…すいません、改行制限と戦ってるうちに書き換わってましたが、body→textです。
toだけ書き換えればメール本文は届くことは確認しました。
602 = :
そのメルモっていうサービスは
・Content-Transfer-Encoding: base64 を食ってくれるの?
・envelope from と From が違っても受け取ってくれるの?
という辺りが気になった。
605 = :
php.iniは複数あるからどれを見てるか・・
606 = :
>>604
php.ini を変えるたびに再起動しました。
何度やってもだめなので OS も 4~5 回再起動しました。
でもだめですた・・・
>>605
そう思って、extension_dir や include_dir を適当なやつにしてみて、
エラーになるところまで確認しました。
向き先は間違っていないと思います・・・orz
608 = :
ありがとうございます。なるほど…
エンコード方法考えてまた試して見ます。
609 = :
>>607
phpinfo() には interbase の出力はありません。
単純に dll が読み込めていないんだと思います。
でも、なぜ読み込めないのかが分かりません。。
610 = :
>>609
phpinfo()の出力結果で、Loaded Configuration Fileはどこになってる?
自分が呼んでほしいところになってる?
問題なければ、次にコマンドラインから
php -m -c (php.iniへのフルパス)
を実行したらどうなる?
エラー出る?出ない?
interbaseの拡張モジュールは表示される?
これらの結果がどうなるか教えて
611 :
OS:WinXP-Pro(SP2) ブラウザ:FieFox3.0.11
Apache:2.2.9,PHP:5.2.6
書籍の動作が再現できません。下記コード(抜粋)は
の表示になりますが、上のtext1フォームに入力してボタンを押しても「」内に表示されません。
※同じくPOSTも駄目です。
コード(専ブラでこのコード自体が実行されるのでJPG化しました)
フォームに入力した文字列はFireFoxのURLバーに追記されるだけです。
どこが間違っているのでしょうか? (IEでも駄目でした)
612 = :
>>611
そのバーに出てるアドレス(追記前)を書いてみましょう。
613 = :
>>611
(1)アパッチ起動してる?
(2)urlにはlocalhostって入力してる?
phpファイルをダブクリでは動かないよ
614 = :
どうも。
>>612
file:///C:/php5/hajimete_php5/07-03_01.php?text1=~
です(『~』が追記部分)
>>613
アパッチは起動してますが、「urlにはlocalhostって入力してる?」の意味が分かりません。
PHPはプログラム選択で起動させています。
615 = :
>>614
ブラウザを開いて、
URL欄に、
localhost
って入れないとダメなのよ。
616 = :
URLとWebサーバーのメカニズムを勉強しよう。
まず、URLの記述。 file:// で始まるURLは、HTTPによる
通信を伴わないファイル本体の参照だよ。つまり、Explorer
でファイルを開くのと同じこと。だからソースが表示される。
http:// で始まるURLは、HTTPというプロトコルを通して、
通信先のWebサーバーに接続、それ以降の記述によって、
得るデータは、Webサーバーの処理の任せるということなんだ。
http://www.yahoo.co.jp:8080/movie/
~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~
① ② ③
①がプロトコル。 ②がホスト名(:がついてるとポート番号指定)
③以降は、Webサーバー側が勝手に解釈する。
上のレスで localhost 、というのは、同じマシンの中のApacheを
参照するときのホスト名だよ。なので、まずはhttp://localhost
と書かないと、Webサーバー経由のアクセスにならない。
それから、PHPのメカニズム。
url で、xxxx.php で終わるものをApacheが受け取ると、Apache
は、自分が参照できるPHPファイルを開き、PHPで処理してから
ブラウザに結果を渡すんだ。なので、ソースとは違う表現になる。
1) 自分のコンピュータで正しくApacheが構成されているか確認
しよう。(http;//localhost:xxx/で確認できる)
2)問題なかったら再度、自分の設置したPHPファイルをApache
経由で見ることができるか確認しよう。
問題の解決の糸口はここからだ。 たぶん。
617 = :
>>615-616
早速のレス有難うございます。
出来ました。<?php phpinfo(); ?> は
http://localhost/hajimete_php5/phpinfo.php で実行できています。
これから、http://localhost/hajimete_php5/07-03_01.php
とするとOKでした。
なお、本には、「URLにlocalhostを含めましょう」とは一行も書いていません。
プンプン(怒
618 = :
>>617
前提知識を書いてないのは確かに親切じゃないけど、
http と、http サーバーのメカニズムはWebプログラム
をするなら前提として知っておく必要があると思うぞ。
619 = :
書いてないわけないだろ。なんていう書籍?
620 = :
>>617
どの本?
621 = :
>>619
はじめてのPHPプログラミング基本編 5.3対応 (TECHNICAL MASTER)
です。
localhostに関しては、スクリーンショット図内のURL欄に小さく印刷しているだけです。
622 = :
amazonでも説明不足っていう評価だね
624 = :
第一章に
01-01 PHPの世界へようこそ [PHPって?]
01-02 PHPが動作する環境を準備しよう [PHPのインストールと設定]
01-03 PHPの動作確認 [PHPの動作確認]
とあるけど俺の幻覚なんだろうか。
627 = :
>>626
関係ないけど、最近の尼はすごいな!
感動した。
628 = :
>>611
だめだぜ。
ちゃんとした本を買わないと。
今すぐそんな本を捨てて
新しい本とマニュアルを読みなさい。
後秀和さんの本はあんまりよくないから
629 = :
>>628
Tim、乙
630 = :
PHPの本読みまくってたら、
ついに読む本がなくなってきた。
25冊は読んだ。
631 = :
自分で本を書け
632 = :
自分で本を書くのってどうやるのかな?
はじめに出版社に話をするの?
633 = :
PHPのプロの方ですか?
634 = :
最近始めた初心者です。
ネットを頼りに独学でやってるのですが、行き詰ってしまいました。
2つ質問させて下さい。
1.formからの入力内容をtxtファイルに書き込む時、ファイルの先頭に追加書き込みする方法を教えて下さい。
2.for文の中で同一の名前の末尾に連番を加えた変数名を作る方法を教えて下さい。$hensu1、$hensu2みたいな感じです。
1に関しては、今はtxtファイルを開くときに、
$fp = fopen($data_file, "a");
としているので、ファイルの最後に追加書き込みされてしまいます。
ファイルを開いた後に
rewind($fp);
と記述してみましたが、意味は無かったみたいです。
2に関しては、
for($i=1; !feof($fp); $i++) {//ファイル最後まで読み込む
$fline = fgets($fp);//1行読み込む
//3パターンどれか当たれ!
$hensu.$i = explode(",",$fline);
$hensu[i] = explode(",",$fline);
$hensu[$i] = explode(",",$fline);
}
上の3パターンを試してみましたがダメでした。
すいませんが、ご教授お願いします。
635 = :
>>634
1)$data_fileの中身を別ファイルなりメモリ上なりに退避させて、
新規でform内容を書き込んでから、退避しておいたデータを追記する。
2)$hensu1 = '1だよ';
$i = '1';
$hensumei = "hensu".$i;
echo $$hensumei;
636 = :
>>635さん
ありがとうございます。
なるほど!1の考え方は思いつきませんでした。
後で試してみます。
2なんですけど、すいません、私の説明がよくなかったですね。
ご教授頂いた方法をforに組み込むと、$hensumeiの中身が「1だよ」~「5だよ」
と増やせそうですね。
ですが今回やりたいのは、「変数名」の番号を増やしたいんです。
例えば、ループ後に記述された
echo("変数1の中身=". $hensu1 ."<br />\n");
echo("変数2の中身=". $hensu2 ."<br />\n");
echo("変数3の中身=". $hensu3 ."<br />\n");
の結果が、
変数1の中身=犬
変数2の中身=猫
変数3の中身=鳥
といった答えになるようにしたいです。
せっかくご教授頂いたのに、申し訳ありません。
でもそのやり方は、何か別の機会に使わせてもらおうと思います。
637 = :
>>634
よく見てご覧。
$iを増やすと、$$hensumeiが「$hensu1」「$hensu2」「$hensu3」に変わっていくんだよ。
638 = :
なんで3行目ダブルクオーテーション?
639 = :
>>638
ははは・・・
最初は
$hensumei = "hensu{$i}";
って書こうとしたんだけど、混乱させると思って書き直した。
その名残だわ。
小さいことは気にしない、それ♪
640 = :
>>635さん
出来た!出来ましたよ!
すごい!ありがとうございます!
お礼が遅くなってしまい、申し訳ありません。
分かりやすい書き方も助かりました。
正直、639の書き方でしたら、まだ理解出来てなかったかもしれません。
まぁ実際には何回か実験→失敗を繰り返してしまいましたが、
仕組みもなんとなく理解して来ました。
それにしてもPHPは楽しいですね。
手品やパズルみたい。
解き方が分かれば、なるほど~って納得するけど、解き方を見つけるのが難しい。
先週末もそうだったんですが、今週末も家にこもりっきりになりそうです。
641 = :
>>640
なあなあ君、初心者だろ?
それ、「可変変数」っていうんだけど初心者が使うもんじゃないよ。
ある程度慣れた人がちょっと技巧的に書く時に使うの。
配列使っとくのがおすすめだよ。
642 = :
解決したのでもう結構です
643 = :
>>642 = >>640?
こういう eval 系処理は初心者に絶対覚えさせたくないよな・・・
>>641 にあるように、配列を使え。java も c++ もできない糞プログラマになるぞ。
いや、PHP 以外、と言ったほうが正しいか。
専用のロジックを使え。たいていの場合、そっちのほうが高速だ。
644 = :
行く末を心配する程の有望な新人でない限り、ほっとくのが吉。
645 = :
初歩的なことだと思うのですが教えて下さい
変数iに<form method="POST" action="toiawase3.php">を
代入したいのですが
<?php
$i='<form method="POST" action="toiawase3.php">';
echo $i;
?>
とやると空白しか入ってくれません
どなたか入れ方を教えて下さい
647 = :
642は私じゃないですよ。
そんな自己中じゃないですw
あれから、635さんに教わったやり方で、変数名を連番化する事は出来たのですが、今度はその変数を表示させる部分でつまづきました。
上手く言葉で表せないので、ソース載せます。
for($i=1; !feof($fp); $i++){//$$の実験
$fline = fgets($fp);//1行読み込む
$hensumei = "hensu".$i;
$$hensumei = explode(",",$fline);
}
echo "㌦㌦の実験=". $hensu2[0] ."<br />\n";
この書き方ですと、$hensu2[0] は期待通りに表示されますが、本当は最後のechoでの$hensu「2」の部分を変数化して、例えば
$hensu.$i[0]
みたいな感じにしたかったのです。
色々試しましたが、残念ながら上手くいきませんでした。
というより、$$の仕組みがよく理解出来てないみたい…。
648 = :
(つづき)
そこで皆さんがおっしゃっている、配列でのやり方を考えました。
そしたら、そもそもの仕様が間違っていた事に気付いてしまいました。
今回やりたいのは、テキストの上から順に1行読みとった内容を「,」で区切り、
それをその順番のまま表示させるというものですので、以下のソースで対応出来ました。
for($i=1; !feof($fp); $i++){//配列での実験
$fline = fgets($fp);
list($naka1,$naka2,$naka3) = explode(",",$fline);
echo "配列での実験 中身1=". $naka1 ."<br />\n";
echo "配列での実験 中身2=". $naka2 ."<br />\n";
echo "配列での実験 中身3=". $naka3 ."<br />\n";
}
もちろん$$を使ったやり方でも出来るのでしょうが、私にはまだ早かったみたいです。
それにしても、解決方法にも、色々なやり方があるんですね。
配列を使った方法に気付けたのも、みなさんのおかげです。
ありがとうございました!
そして今日もPHPが楽しい!
649 = :
>645
ブラウザに出力した時点で、それはタグと見なされます。
650 = :
while (!feof($fp)) {
$fline = fgets($fp);
$naka = explode(",",$fline);
foreach ($naka as $i => $value) {
echo "配列での実験 中身{$i}={$value}<br />\n";
}
}
みんなの評価 : ○
類似してるかもしれないスレッド
- くだすれPHP(超初心者用)4 (1001) - [97%] - 2008/11/21 17:19 ○
- くだすれPHP(超初心者用)3 (1001) - [97%] - 2008/6/8 6:35 ☆
- くだすれPHP(超初心者用)5 (1001) - [97%] - 2009/3/9 16:02 ○
- さっさとPHP5.0.6出せよ糞Zend (80) - [31%] - 2019/5/9 7:45
トップメニューへ / →のくす牧場書庫について