
学校のPHPの課題でPHPmyadminを使ってユーザー情報の登録画面を作っています。プログラムは大体できたのですがうまく動いてくれません。自分の作ったプログラムのどこが間違っているか教えていただけないでしょうか?
できればどのように直したらいいか教えていただけたらと思います。
↓が作ったプログラムです。
<?php
$host = "localhost";
if (!$conn = mysql_connect($host,"root","admin")){
die("データベース接続エラー.<br />");
}
mysql_select_db("kisop", $conn);
$name = mysql_real_escape_string($_POST['name']);
$postal_code = mysql_real_escape_string($_POST['postal_code']);
$state = mysql_real_escape_string($_POST['state']);
$city = mysql_real_escape_string($_POST['city']);
$street = mysql_real_escape_string($_POST['street']);
if ($name == ""){
exit ("名前が入力されていません");
}
$sql = "INSERT INTO user_table(name,postal_code,state,city,street) VALUES('$name', '$postal_code', '$state', '$city' ,'$street')";
mysql_query($sql, $conn) or die("登録できませんでした");
print("登録しました。<a href=\"user.php\">user.php</a>で確認してください。");
?>
<html>
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
</head>
<body>
<table width="100%">
<tr><td align="center"><h1>ユーザ情報登録</h1></td></tr>
</table>
<table width="100%">
<tr>
<td valign="top">
<form action="user.php" method="post">
<table border align="center">
<tr><td>名 前</td><td><input type=\"text\" name=\"name\"></td>
<tr><td>郵便番号</td><td><input type="text" name="postal_code"></td></tr>
<tr><td>都道府県</td><td><input type="text" name="state"></td></tr>
<tr><td>市 町 村</td><td><input type="text" name="city"></td></tr>
<tr><td>番 地</td><td><input type="text" name="street"></td></tr>
<tr><td colspan="4" align="center"><input type="submit" value="登録"></td></tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
phpmyadminにはkisopというデータベースを作りuser_tableというテーブルを作りました。user_tableにはname postal_code state city streetという項目を作りました
No.4ベストアンサー
- 回答日時:
#1です。
> user_tableには、id, name, postal_code, state, city, street, write_flg, admin_flgという項目があるのですが、write_flgとadmin_flgがintで他がvarcharです。
テーブルに関しては、細かいツッコミはあるものの、動作に関しては問題ないと思われます。
> うまく動いてくれません。
具体的な状況説明がないので、もう放置しようかと思いましたが、
乗りかかった船なので、実際に動かしてみました。
最初のアクセスで、いきなり「名前が入力されていません」で、exitされました。
そりゃそうです。最初のアクセスなんですから。
これに気がつかない俺もどうなんだって話ですが。
これぐらいのスクリプト書けるのであれば、説明だけで十分だと思いますので、
ここら辺の処理を$_POSTがあった場合のみ実行するようにしてください。
No.3
- 回答日時:
#1です。
> user_tableの'種別'のところをおっしゃているのでしょうか?
はい。
phpMyAdminだと、テーブルの構造の種別のところになりますね。
int とか varchar とか です。
この回答への補足
user_tableには、id, name, postal_code, state, city, street, write_flg, admin_flgという項目があるのですが、write_flgとadmin_flgがintで他がvarcharです。
補足日時:2010/02/09 15:38No.1
- 回答日時:
> 学校のPHPの課題で
うは~。。最近って学校でPHP教えてるのね。。。とい俺の感想は置いときます。
いぁ、まぁ、専門学校とかなんでしょうけど、俺の時代は情報処理科すらなかったもんですからね。。。
んー、で、見た感じなんですけど、特におかしげなトコはないように思いました。
特に 検証とかもしてないんで よく分かりませんけどね。
ただ、サニタイズもしっかり押さえてるのは、ちゃんとしてるなと思いました。
> プログラムは大体できたのですがうまく動いてくれません。
具体的に どう動いてくれないんでしょう?
このデータベースに対してadminってユーザー作ってないとすれば、
多分、分かる形でエラー出てると思いますし。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数条件での検索について教え...
-
phpで掲示板を作りたい
-
Flaskでサーバー立ち上げに関して
-
php、sqlite3にデーター追加で...
-
アップロードファイル名の文字化け
-
ボタンをクリックでPHP文を実行
-
フォームにダブルクォーテーシ...
-
フォームのPOST情報が渡らない?
-
検索時の選択内容を保持する方法
-
PHPでURLにジャンプするには?
-
HTMLで前の画面に戻る時、入力...
-
テキストリンクをPOST送信したい
-
フォームの状態やGETのURLは保...
-
セレクトしたときに全て初期状...
-
mysqlからのコンボボックスにつ...
-
HTMLのリンクをクリックするこ...
-
ショッピングカートの精算
-
laravelを利用してコントロール...
-
アマゾンのような評価の星を選...
-
ラジオボタンをsessionで使いたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
$_SESSIONに渡した後はそのまま...
-
Flaskでサーバー立ち上げに関して
-
テキストボックスの値を取得したい
-
php+mysqlでの重複チェックにつ...
-
POSTの項目に追加
-
ファイル名を変更してアップロ...
-
VBA で、スペースを含むファイ...
-
php、sqlite3にデーター追加で...
-
name属性が全角の場合・・・
-
PHP5でsimple_xml_load_fileす...
-
PHP等を用いて在庫数を表示・管...
-
Smartyのforeachのnameに変数を...
-
sqlite文字列を格納、出力
-
CakePHP テーブル名カラム名の...
-
scanfでの読み込み文字数制限
-
Fortranでのファイル名操作につ...
-
トレイトの変数の扱い方
-
あるカラム内の最初の一文字と...
-
DB接続やInsertでのエラーを画...
-
PHPでのエラー(unexpected T_S...
おすすめ情報