<?php
// +----------------------------------------------------------------------+
// | PHP version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2005 Snapshot Inc.                                |
// +----------------------------------------------------------------------+
// | License                                                              |
// | GNU General Public License                                           |
// +----------------------------------------------------------------------+
// | Authors: Mai Kawasaki                                                |
// +----------------------------------------------------------------------+
//
// $Id: InputAction.class.php,v 1.1 2005/06/20 09:31:25 snapshot Exp $
//
// Description:
// 2005/05/18
//

/** 
*	InputAction.class.php
*	Mai Kawasaki
*	2005/05/18
*/
require_once(OPT_DIR.'u-learning/config.php');
require_once(OPT_DIR.'u-learning/action/StudentAction.class.php');
require_once(OPT_DIR.'u-learning/data/Admin.class.php');
require_once(OPT_DIR.'u-learning/data/Student.class.php');
require_once(OPT_DIR.'u-learning/data/SubjectStudent.class.php');
require_once(OPT_DIR.'u-learning/lib/TemplateUtils.class.php');

/** 
*	InputAction
*/

class InputAction extends StudentAction {
    function execute (&$controller, &$request, &$user) {
	
		// ブラウザの判別
		$type = $this->getUserAgentType();
		$request->setAttribute('type', $type);
		
		$aid = $request->getParameter('aid');
		$DB = $request->getAttribute('DB');
		
		// 教員情報取得
		$request->setAttribute('admin', new Admin($aid, $DB));
		
		// 科目を取得
    	$admin = new Admin($aid, $DB);
    	$subjects = $admin->getUsableSubjects($DB);

		if($request->getParameter('entry') ) {
		
		
			$uid = $request->getParameter('uid');
			$pass = $request->getParameter('pass');
			$pass2 = $request->getParameter('pass2');
			$mail = $request->getParameter('mail');
			$name = $request->getParameter('name');
			$number = $request->getParameter('number');
			$year = $request->getParameter('year');

			$subjects_user = $request->getParameter('subject');

			$error = "";
			//　入力チェック
			// 1個でも入力漏れがあったらエラー
			if( trim($uid) == '' || trim($pass) == '' || trim($pass2) == '' || trim($mail) == '' || 
			 						trim($name) =='' || trim($number) == '' || trim($year) == ''){	
				$error .= "全ての項目を入力してください。 \n";
			}			
			// ユーザID
			if ( !(ereg("[0-9]+", $uid)) || strlen($uid) > 6){
				$error .= "IDは6桁までの数字にしてください。 \n";			
			}
			// ID重複チェック
			$sql = "select * from user_info where uid = '".$uid."'";
			// DB接続
	        $array = $DB->GetRow($sql);
			
	        if( count($array) > 0 ) {
				$error .= "入力したIDは、すでに使用されています。 \n";			
	        } 
			// パスワード
			if ( !(ereg("[0-9]+", $pass)) || strlen($pass) > 6 || strlen($pass) < 4){
				$error .= "パスワードは4桁から6桁までの数字にしてください。 \n";
			}
			// パスワード1と2の比較
			if ( $pass != $pass2 ){
				$error .= "確認のパスワードが違います。 \n";			
			}
			// メールアドレス
			if (!ereg(".+@.+\..+", $mail) ){
				$error .= "メールアドレスが不正です。 \n";			
			}
				
			// ユーザ仮登録処理
			if($error == ""){
				// 文字コード変換
				$new_name = mb_convert_encoding($name,"EUC-JP","auto");
				$new_number = mb_convert_encoding($number,"EUC-JP","auto");
				$new_year = mb_convert_encoding($year,"EUC-JP","auto");

				// DB登録(ユーザ情報)
				/*
				$info_sql = "insert into user_info (aid, uid, pass, mail, name, number, year) values ('".
							$aid."','".$uid."','".$pass."','".$mail."','".$new_name."','".$new_number."','".$new_year."')";
				$info_exe = $DB->Execute($info_sql);			
				*/
				$student = new Student();
				$student->setDB($DB);
				$student->aid = $aid;
				$student->uid = $uid;
				$student->pass = $pass;
				$student->mail = $mail;
				$student->name = $new_name;
				$student->number = $new_number;
				$student->year = $new_year;
				$info_exe = $student->insert();
				
				// 登録失敗
				if(!$info_exe) {

					$error .= "ユーザ登録に失敗しました。 \n";

				// 登録成功
				}else {
				
					$subject_user = new SubjectStudent();
					$subject_user->aid = $aid;
					$subject_user->uid = $uid;
					
					foreach ($subjects_user as $sid) {
						$subject_user->sid = $sid;
						$subject_user->insert($DB);
													
					}				
					
					// 本登録案内メール送信
					mb_internal_encoding('SJIS');
					
					$from = $aid;        //from
					$subject = "[Uラーニング]仮登録完了";  //サブジェクト
					$message = "※このメールアドレスは送信用です。\n返信はできません。\n\n";
					$message .= "仮登録が完了しました。\n以下のアドレスにアクセスすると本登録を完了します。\n\n";
					//$path = USER_REG_URL."?aid=".$aid."&uid=".$uid."&pass=".$pass;
					$path = TemplateUtils::userURL('Entry', 'Regist', array('aid'=>$aid, 'uid'=>$uid, 'pass'=>$pass));

					// ヘッダ
					$head  = "From: $from".MAIL_DOMAIN."\n";		//From
					$head .= "X-Mailer: PHP/".phpversion()."\n";
					$head .= "MIME-version: 1.0\n";	//MIMEヘッダ
					$head .= "Content-Type: text/plain; charset=iso-2022-jp\n";
					$head .= "Content-Transfer-Encoding: 7bit\n";
					
					// 本文
					$body = $name."さん\n\n".$message.$path;
					// メール送信
					mb_send_mail($mail, $subject, $body, $head);
					
	        		$user->setAuthenticated(true);	
				    // 管理者IDをセット
			        $user->setAttribute('aid', $aid);
					$controller->forward('Entry', 'Pre');		
					return VIEW_NONE;					
				}
			
			}
			// 変数をリクエストにセット
	        $request->setAttribute('error', $error);
	        $request->setAttribute('aid', $aid);
	        $request->setAttribute('uid', $uid);
	        $request->setAttribute('pass', $pass);
	        $request->setAttribute('pass2', $pass2);
	        $request->setAttribute('mail', $mail);
	        $request->setAttribute('name', $name);
	        $request->setAttribute('number', $number);
	        $request->setAttribute('year', $year);
	        $request->setAttribute('subjects', $subjects);
	        $request->setAttribute('subjects_user', $subjects_user);

			return VIEW_ERROR;
		}
		
        $request->setAttribute('subjects', $subjects);
        $request->setAttribute('aid', $aid);
		return VIEW_INPUT;
    }

	
}

?>