
こんにちわ ある参考書をみながらスクリプトを打ち込んでいるのですがFORM(touroku.html)で登録ボタンを押すと(touroku.php)にpostで送信されデータベース処理をした結果(登録完了)と表示されるはずなのですが何も表示されません。参考書ではhttp://touroku.htmlからhttp://touroku.phpに移動しているのですけど自分のはC:\www\touroku.htmlからC:\www\touroku.phpに移動しています。このあたりが何か関係あるのでしょうか?サーバーはANHTTPDを使用しています。なにか設定が間違っているのでしょうか?スクリプトは以下の様です。
<html>
<body>
<?php
if(!$con=mysql_connect("localhost,"mysql","****")){
echo"接続エラー";
exit;
}
if (!mysql_select_db("****",$con)){
echo"データベース選択エラー";
exit;
}
$sql = "insert into ****_tbl(name,age) values('$nm',$age)";
//sqlを実行
if(!$res=mysql_query($sql)){
echo "Sql実行時エラー";
exit;
}
mysql_close($con);
echo "登録完了";
?>
</body>
</html>
No.6ベストアンサー
- 回答日時:
補足です。
> このスクリプトは参考書付属のCDからコピーしたものだからsql文は間違ってないと思います
参考書がすべて正しいとは限りません
チェックに抜けがあり、動かない場合もあります。
しかしほとんどの場合動かないときはコピーミスであったり、書き換えるときに余計な文字を消してしまったりすることが多いです。
>ただ参考書にはセキュリティー上の問題で$nmで参照できない場合は$val=$http_post_vars["nm"]で参照できると書いてあるのですが...
これはPHP3とかのころの話です。
現在は
$_POST['nm'] とするのが標準となっています。
下位互換性のために使えますが。
本当に分からないときはまた最初から作り直せばすんなり動く場合もあります。
No.5
- 回答日時:
No3.の方が4行目あたりでエラーが出ていると言っていますよね。
if(!$con=mysql_connect("localhost,"mysql","****")){
うーん、よく見ると「"」が5個しかないような…。
あと途中でエラーになった場合「exit」してしまうと
最後の「</body>」や「</html>」まで辿り着かないと思います。

No.4
- 回答日時:
>Sql実行時エラーが出てしまいます
>テーブル名も間違っていないし全く解りません
エラーが出るからにはsql文が間違っているのでしょう。
$sql をmysqlに渡す前にprintしてみてください。
また、mysql_error() というmysqlからのエラー内容を返す関数があったはずですが。
phpマニュアルに、mysqlとの通信関数がいっぱい載ってますよ。
http://www.php.net/manual/ja/
参考URL:http://www.php.net/manual/ja/
この回答への補足
ありがとうございます
このスクリプトは参考書付属のCDからコピーしたものだからsql文は間違ってないと思います
ただ参考書にはセキュリティー上の問題で$nmで参照できない場合は$val=$http_post_vars["nm"]で参照できると書いてあるのですが...$nmが参照出来てないのでしょうか?その場合$sql = "insert into ****_tbl(name,age) values('$nm',$age)";はどの様に変更すれば良いのでしょうか?
No.3
- 回答日時:
>ブラウザのURLに
http://localhost/touroku.phpと打ち込むと>Parse error: parse error in c:\php\touroku.php on line 4
英語を読みましょう。
c:\php\touroku.php の 4行目辺りでエラーが起きています。
要するに記述ミスです。
ページを表示できない場合はどこかにミス(バグ)があるためだと思われます。
この回答への補足
ありがとうございます
皆様の回答を参考にして途中まで解決したのですが
Sql実行時エラーが出てしまいます
テーブル名も間違っていないし全く解りません
ご指導お願いします
No.2
- 回答日時:
PHPの動作環境は整っていますか?とりあえずPHPが動作する仕組みを理解しないといけないようですね。
PHPでWEBページを表示させようとする場合、(表現は不適切かも知れませんが)WEBサーバーがPHPを起動します。apache、IIS、PWSなどという名前のやつですね。ですのでまず最初にPHPをインストールして、WEBサーバーからPHPが動くように設定をしないといけません。参考書にはこのあたりの事は書かれていませんか?
そしてスクリプトのテストですが、ブラウザに「C:\www~」と打ち込んでも、それはローカルのファイルを単にブラウザで表示させようとしているだけで、PHPは起動してくれません。WEBサーバーに対してリクエストしないといけません。これがhttp://~というリクエストです。スクリプトを打ち込んでいる自分のマシンにPHPの設定があるのなら、恐らくhttp://localhost/~です。
設定が済んだらいきなりスクリプトを打ち込む前にmoon nightさんが指摘されてるように<?phpinfo()?>の1行だけを書いたスクリプトを任意の名前.phpで作って、それをhttp://localhost/スクリプト名で表示させてみましょう。設定が正常に出来ていればWEBサーバーやPHPのインストール状況などが表示されるはずです。もし表示できないようでしたら、スクリプト以前に設定をもう一度確認しましょう。
No.1
- 回答日時:
>C:\www\touroku.htmlからC:\www\touroku.phpに移動しています。
C\:からのアドレスではPHPは動きません。
http://からのアドレスにしてください。
http://localhost/で自分のローカルアドレス(ANHTTPDで指定したルートアドレス)が表示されるはずです。
また、PHPを最初テストするときは打ち込みミスやその他の要因が多大に関係してくるので、
<?php phpinfo() ?>
とだけ記述したのもでテストをしてみましょうね。
この回答への補足
ありがとうございます
PHPの動作テストは完了しています。
ANHTTPDも動作しています。
動作環境はANHTTPD PHP4.3.11 MYSQL4.0.24
フォームは以下のスクリプトです
<html>
<body>
<form action="touroku.php" method="post">
名前:<input type="text" name="nm">
年齢:<input type="text" name="age">
<input type="submit" name="exec" value="登録">
</form>
</body>
</html>
登録ボタンを押すとPHPの処理によってtouroku.php
のスクリプトが自動的に処理されるのではないのですか?
ブラウザのURLにhttp://localhost/touroku.phpと打ち込むと
Parse error: parse error in c:\php\touroku.php on line 4
と表示されますhttp://localhost/test.php(<?phpinfo();?>)
では正常に動作しています
touroku.html及びtouroku.phpはhttpd.exeが置いてあるフォルダにありますtest.phpはphp.exeが置いてあるフォルダに格納してあるのでtouroku.phpもこのフォルダに入れて登録ボタンを押してみたらページを表示できませんとでます???
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
フォームで戻った際に入力済み...
-
SplFileObject を利用したとき...
-
csvファイルについて教えて下さ...
-
PHP8でWarning:Undefined varia...
-
PHPSpreadsheetによる書き出し...
-
PHPの変わった閉じタグの必要性...
-
セッション関数を使わずにファ...
-
composerをインストールしたい...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クラスファイルでエラーが出て...
-
mysql_queryでのdelimiterの設...
-
mysql_real_escape_stringについて
-
php mysqlの文字化け(レンタル...
-
PHPからmySQLへINSERT文の実行
-
mysqlがインストールされている...
-
MySQLカラム名は日本語と英数字...
-
ODP.NETのバージョン確認
-
副問合せにLIKE文を使う方法は...
-
SQLのVARCHARとVARCHAR2の違い
-
エクセルで連勤チェックをした...
-
ERROR 1045 (28000) (using pas...
-
旧filemakerで和暦(令和など)...
-
列数が多いと結果が行単位に改...
-
Usage: \\.<filename> | sourc...
-
VBAで変数内に保持された二次配...
-
INT型は金額の型に使用するべき...
-
like句を使って日本語を検索す...
-
mysqlへのインポート処理がうま...
-
テーブル作成でエラーが出てき...
おすすめ情報