PHPでユーザー登録画面を作成しています。
こんばんは。
初めて質問させていただきます。
PHP、JavaScriptの初心者です。
現在、会社の研修でPHPとJavaScriptを用いてユーザー登録画面を作成しています。
そこで、必須項目の未入力をJavaScriptでチェックしエラーメッセージを表示しています。
その入力されたデータをindex.phpのuser_tというデータベースのテーブルにINSERT文でID・名前・パスワード・性別を登録したいのですが、INSERT文の用い方がいまいち理解できず、上手く動きません。
どなたか、ご教授願います。
以下、HTMLを除いた登録画面のソースです。
<html>
<head>
<title>ユーザ登録画面</title>
<script type="text/javascript">
</head>
<body>
<?php
// データベース接続
$dbcon = pg_connect("dbname=" user=postgres password=");
if (!$dbcon) {
die("<hr>pg_connect 失敗<hr>");
}
//元の登録情報をそのまま持ってくる
if(!empty($_GET['update_user_id'])){
$result = pg_query($dbcon,"SELECT * FROM TM_USER WHERE user_id='".$_GET['update_user_id']."'");
$row = pg_fetch_assoc($result);
$new_user_id = $row['user_id'];
$new_name = $row['name'];
$new_password = $row['password'];
$new_tel = $row['tel'];
$new_mail = $row['mail'];
$new_gender = $row['gender'];
}
?>
<script type="text/javascript">
function chkHissu(frm){
// 必須入力のname属性
var hissu=Array("user_id","name","password","gender");
// アラート表示用
var hissu_nm = Array("ユーザID","ユーザ名","パスワード","性別");
// 必須入力の数
var len=hissu.length;
var hasError = false;
var isFocused = false;
var errorMsg = "";
for(i=0; i<len; i++){
var obj=frm.elements[hissu[i]];
// テキストボックス or テキストエリアが入力されているか調べる
if(obj.type=="text" || obj.type=="textarea"){
if(obj.value==""){
// 未入力のエレメントにフォーカスを当てる
hasError = true;
if (!isFocused) {
frm.elements[hissu[i]].focus();
isFocused = true;
}
// エラーメッセージ
if(errorMsg != "") {
errorMsg += "<br>";
}
errorMsg += hissu_nm[i] + "が未入力です。";
}
}else{
// 性別がチェックされているか調べる
var chk = 0;
for(var j=0; j<obj.length; j++){
// チェックされていたらchkフラグをプラス
if(obj[j].checked) chk++;
}
if (chk == 0) {
hasError = true;
if(errorMsg != "") {
errorMsg += "<br>";
}
errorMsg += "性別が未入力です。";
}
}
}
// エラーメッセージを指定の場所に表示
if(hasError){
var msg = document.getElementById("msg");
msg.innerHTML = errorMsg;
return false;
}
// エラーじゃない場合indexに遷移
else{
document.userForm.action='maintenance.php';
document.userForm.submit();
}
}
</script>
以下、index.phpという検索機能やuser_tというテーブルを表示している画面、HTMLを除いたソースです。
<html>
<head>
<title>研修テスト</title>
<script type="text/javascript">
<!--
// 削除リンク押下時にダイアログ表示
</head>
<body>
<?php
// データベースへの接続
$dbcon = pg_connect("dbname= user=postgres password=");
if (!$dbcon) {
die("<hr>pg_connect 失敗<hr>");
}
<// SQL の生成
$sql = "";
$where = "";
// ユーザ名が空白でない場合
if(!empty($_POST['input_user_name'])){
$where .= " WHERE NAME like '%".$_POST['input_user_nam_user_name'])){
$where .= " WHERE NAME like '%".$_POST['input_user_name']."%'" ;
}
// ユーザIDが空白でない場合
if(!empty($_POST['input_user_id'])){
if(empty($where)){
// $where が空の場合は、WHEREを追加
$where .=" WHERE ";
}
else{
// $where が空でない場合は、追加するためにANDを追加
$where .= " AND ";
}
$where .= " USER_ID = '".$_POST['input_user_id']."'";
}
// 性別が空白でない場合
if(!empty($_POST['input_gender'])){
if(empty($where)){
// $where が空の場合は、WHEREを追加
$where .= " WHERE ";
}
else{
// $where が空でない場合は、追加するためにANDを追加
$where .= " AND ";
}
$where .= " GENDER = '".$_POST['input_gender']."'" ;
}
// ソート条件の追加
$sql .= "SELECT USER_ID,NAME,PASSWORD,TEL,MAIL,GENDER FROM TM_USER ".$where.' ORDER BY USER_ID';
// Queryの実行
$result = pg_query ($dbcon, $sql);
if (!$result) {
pg_last_error($dbcon);
die( "pg_query SELECT 失敗<hr>");
}
:
宜しくお願い致します。
補足
ご回答有難うございました。しかし最初から全角カタカナ入力にしています。今も再度挑戦しましたが入力しているのに氏名(カタカナ)入力して下さいとメッセイジが出て次に進めません。 メールで問い合わせるアドレスを教えて頂ければ有難いです。