/*****************************************************
 * ログイン関連
 * Copyright(C) 2001 A-tak, Japan
 *
 *   @since   2001.05.14
 *   @author  A-tak
 *
 ****************************************************/
package net.dynodns.atak.login;

import java.io.*;
import java.util.*;
import java.text.*;
import java.sql.*;
import net.dynodns.atak.web.*;
import net.dynodns.atak.db.*;

/**
 * ユーザー登録クラス
 * データベースの接続からユーザー登録まで行う
 * Copyright(C) 2001 A-tak, Japan
 *
 *   @see       LangChange, DbAccess
 *   @version   1.0
 *   @since     2001.05.14
 *   @author    A-tak
 */
public class UserEnterBean {
        DbAccess db = new DbAccess();
        StringReplace sr = new StringReplace();
        LangChange lc = new LangChange();


        //コンストラクタ
        public UserEnterBean() {
        }

/**
 * ユーザーの新規登録
 * フォームから各種データを読みとり登録のチェック
 * 実際の登録までを行う。Unicodeの変換は行わないので先にやっておく
 *      @param          String name                     名前
 *      @param          String email            E-mail
 *      @param          String url                      URL
 *      @param          String word                     一言
 *      @param          String pass                     パスワード
 *      @return         boolean                         登録成功、失敗(既登録)
 *      @throws         SQLException            アクセス失敗など
 */
        public boolean entery(String name, String email, String url, String word, String uid, String pass)
          throws ClassNotFoundException, SQLException {
                //データベースとの接続
                db.dbConnect("webdb");
                
                //日付の取得
                java.util.Date date = new java.util.Date();
                String tstamp = DateFormat.getDateTimeInstance().format(date);

                //特殊文字の変換
                name = sr.convInput(name);
                email = sr.convInput(email);
                url = sr.convInput(url);
                word = sr.convInput(word);
                uid = sr.convInput(uid);
                pass = sr.convInput(pass);
                
                String query;
                
                //既にユーザーが登録されているか検索
                query = "select * from userdata where uid=\'"+uid+"\'";
                ResultSet crs = db.getRecord(query);
                if (crs.next()) return false;   //既に登録済みの物を発見
                crs.close();
                
                //データベースにユーザーを追加します
                //データの登録
                query = "insert into userdata(name, mail, url, word, uid, pass, tstamp)" +
                                "values(\'" + name + "\',\'" + email + "\'" +
                                ",\'" + url + "\',\'" + word + "\',\'" +uid + "\',\'" + pass + "\',\'" + tstamp + "\')";
                int numOfUpdate = db.setRecord(query);
                
                if(numOfUpdate == 0){
                        return false;
                }else{
                        return true;
                }
        }
}