学校の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.1
- 回答日時:
> 学校のPHPの課題で
うは~。。最近って学校でPHP教えてるのね。。。とい俺の感想は置いときます。
いぁ、まぁ、専門学校とかなんでしょうけど、俺の時代は情報処理科すらなかったもんですからね。。。
んー、で、見た感じなんですけど、特におかしげなトコはないように思いました。
特に 検証とかもしてないんで よく分かりませんけどね。
ただ、サニタイズもしっかり押さえてるのは、ちゃんとしてるなと思いました。
> プログラムは大体できたのですがうまく動いてくれません。
具体的に どう動いてくれないんでしょう?
このデータベースに対してadminってユーザー作ってないとすれば、
多分、分かる形でエラー出てると思いますし。
No.2
- 回答日時:
#1です。
ふと思ったんですけど、フィールドの型はあってますか?
string を int型に 入れようとしてたりすると、エラー出さずに DBにも その項目だけ 入らないはずです。
この回答への補足
すみません。初歩的な質問で申し訳ないのですがフィールドの型ってのはphpmyadminに作ったuser_tableの'種別'のところをおっしゃているのでしょうか?
補足日時:2010/02/09 12:24No.4ベストアンサー
- 回答日時:
#1です。
> user_tableには、id, name, postal_code, state, city, street, write_flg, admin_flgという項目があるのですが、write_flgとadmin_flgがintで他がvarcharです。
テーブルに関しては、細かいツッコミはあるものの、動作に関しては問題ないと思われます。
> うまく動いてくれません。
具体的な状況説明がないので、もう放置しようかと思いましたが、
乗りかかった船なので、実際に動かしてみました。
最初のアクセスで、いきなり「名前が入力されていません」で、exitされました。
そりゃそうです。最初のアクセスなんですから。
これに気がつかない俺もどうなんだって話ですが。
これぐらいのスクリプト書けるのであれば、説明だけで十分だと思いますので、
ここら辺の処理を$_POSTがあった場合のみ実行するようにしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpでショッピングカート機能を...
-
VBA で、スペースを含むファイ...
-
PHPで入力フォームでデータを確...
-
Fortranでのファイル名操作につ...
-
if文のなかで
-
$a = ( $b == $c ) ? $d、 この...
-
phpのカウンタのリセット方法
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPで画像の渡しが上手く行きま...
-
複数行のデータ一括更新に関して
-
POSTデータのNAME属性をVALUEに...
-
PHPでPCのローカル時刻は取得出...
-
POSTの値を配列として受け取っ...
-
IEで、フォームにたとえば
-
チェックボックスを用い、MySQL...
-
PHPでURLにジャンプするには?
-
フォームの途中で追加するには
-
POSTを使わずに値を渡す方法
-
フォームで作った送信ボタンが...
-
検索時の選択内容を保持する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複を防ぐ記述について教えて...
-
VBA で、スペースを含むファイ...
-
PHPで入力フォームでデータを確...
-
Flaskでサーバー立ち上げに関して
-
phpで変数を使ってcopyできない
-
ファイル名を変更してアップロ...
-
PHPからHTMLへの変数の受け...
-
$_SESSIONに渡した後はそのまま...
-
テキストボックスの値を取得したい
-
openCVのトラックバーについて
-
scanfでの読み込み文字数制限
-
アップロードファイル名の文字化け
-
PHP MySql 画像を取得
-
Fortranでのファイル名操作につ...
-
ポインタ配列をfscanfで読み込...
-
UPDATEできない
-
WordのIDataObject::GetData呼...
-
C# 同じ処理をまとめたい
-
POSTの項目に追加
-
イタリア人がCatherineと聞いた...
おすすめ情報