電子書籍の厳選無料作品が豊富!

http://oshiete1.goo.ne.jp/qa1156379.html
こちらの方が質問しているものと同じ様なことなのですが、
簡単に構造を説明します。

a.php ->データを入力 b.phpを呼び出す
b.php ->与えられたデータの入力チェック c.phpを呼び出す
c.php ->データをDBに登録後、a.phpを表示

このとき、a.phpで登録ボタンを押すと、白紙が帰ってきてしまいます。
b.phpは呼び出しているようなのですが、b.php内のinclude_once("c.php");
で止まってしまっているように見えます。

アドバイスをお願いします。

A 回答 (2件)

お礼と補足で混乱しているようですが・・・・。

お礼だとサブミット先のURLがb.phpで、補足だとinclude_onceでb.phpを指定とあります。この両者は全くの別物です。良く分からないので、以下の回答が的外れだったらゴメンナサイ。

おそらくinclude_once関数の意味というか、PHPのようなサーバサイドスクリプトがどのように動作するのかを誤解している為、このような疑問が出てくるのだと思います。(誰でもひっかかる部分なのでお気に召されずに!)

include_onceの用途は色々ありますが、一般的な使い方は色々なページから使いたい汎用の関数とかを別ファイルにしておき、それをスクリプト中から読み込む場合に使います。

つまり、一般的な使い方ではa.php→b.php→c.phpと進んでいくページで、a.php内でb.phpを読み込んだり、その逆をしたりする必要は全く無いです。a.php、b.php、c.phpで共通の関数を使いたい場合、それをlib.phpとかにしておき、書くファイルからincludeする訳です。

まだPHP初めてまもないと思いますので、その段階では、これ以外の使い方はしないものだと理解してください。ソースを見て無いのでなんともいえませんが、include_onceの理解が間違っているために、間違った使い方をしているだけだと思います。

a.phpでデータを入力しb.phpへ渡すにはa.phpのHTMLのFORMタグで
 <form action="b.php" method="POST">
等と指定すればOKです。サブミットボタンが押されたらb.phpが呼び出されます。ここらへんの仕組みはサーバーサイドスクリプトの最初歩ですので、マニュアル本等で勉強されると良いと思います。
    • good
    • 0
この回答へのお礼

だんだん分かってきました。
いろいろと試して、理解を深めたいと思います。
ありがとうございました。

お礼日時:2007/01/31 11:24

ちょっと質問文が読み取れなかったので補足をお願いしたいのですが、


a.phpでデータを入力するフォームのサブミット先URLはどこですか?(a.php?それともb.php?)

質問文にあるような事を私がやるならinclude_onceは使わないような気がするのですが・・・・。include_once(file)は『fileの内容をココにコピペせよ』って関数ですし、この場合どういう用途を想定して使っているのかをよろしければ教えてください。

この回答への補足

ありがとうございます。
include_onceで呼び出しているのはb.phpです。

私、PHPは初めてでテキストを買って試しに作っているだけです。
特にinclude_onceにしている意味は、それしかよく分からないからです。

もし、他にいい方法があるのであれば、
伝授していただきたいです。

補足日時:2007/01/30 14:14
    • good
    • 0
この回答へのお礼

補足の部分ちょっと間違えていました。
サブミット先のURLが b.phpになります。
include_onceで呼び出しているわけではありませんでした。
失礼しました。

お礼日時:2007/01/30 14:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!