<commit_before><?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Signup extends CI_Controller {

	public function index() {
		$this->load->view('header');
		$this->load->view('signup');
		$this->load->view('footer');
	}
		
	public function validation() {
		$this->load->library("form_validation");
		$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
		
		//検証ルールの設定
		$this->form_validation->set_rules("userID", "ユーザID", "alpha_numeric|min_length[4]|callback_username_check");
		$this->form_validation->set_rules("password", "<PASSWORD>", "<PASSWORD>]");
		$this->form_validation->set_rules("email", "メールアドレス", "valid_email|required|callback_mail_check");
		
		//エラーメッセージの設定
		$this->form_validation->set_message("alpha_numeric", "%s は半角英数字で入力してください。");
		$this->form_validation->set_message("min_length", "%s は4文字以上で入力してください。");
		$this->form_validation->set_message("required", "%s を入力してください。");
		$this->form_validation->set_message("valid_email", "有効なメールアドレスを入力してください。");
		
		//正しい場合はメールを送信
		if ($this->form_validation->run()) {
			//ランダムキーを生成する
			$key = md5(uniqid());
			
			//Emailライブラリを読み込む。メールタイプをHTMLに設定（デフォルトはテキストです）
			$this->load->library("email", array("mailtype"=>"html"));
			$this->load->model("model_users");
			$this->email->from("<EMAIL>", "Haxeon2");//送信元の情報
			$this->email->to($this->input->post("email"));	//送信先の設定
			$this->email->subject("【Haxeon】アカウントの認証");	//タイトルの設定
			
			//メッセージの本文
			$message = "<p>仮登録が完了しました。</p>";
			// 各ユーザーにランダムキーをパーマリンクに含むURLを送信する
			$message .= "<p><a href=' ".base_url(). "resister_user/$key'>こちらをクリックして、会員登録を完了してください。</a></p>";
			$this->email->message($message);
			//メール送信
			if($this->email->send()){
				echo "Message has been sent.";
			}else {
				echo "Coulsn't send the message.";
			}
		} else {
            $this->index();
        }
	}
	
	//既存のユーザIDとの重複チェック
	public function username_check($str) {
		$this->load->model("model_users");<commit_msg>サインアップ処理の仮登録処理を実装<commit_after><?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Signup extends CI_Controller {

	public function index() {
		$this->load->view('header');
		$this->load->view('signup');
		$this->load->view('footer');
	}
		
	public function validation() {
		$this->load->library("form_validation");
		$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
		
		//検証ルールの設定
		$this->form_validation->set_rules("userID", "ユーザID", "alpha_numeric|min_length[4]|callback_username_check");
		$this->form_validation->set_rules("password", "<PASSWORD>", "<PASSWORD>]");
		$this->form_validation->set_rules("email", "メールアドレス", "valid_email|required|callback_mail_check");
		
		//エラーメッセージの設定
		$this->form_validation->set_message("alpha_numeric", "%s は半角英数字で入力してください。");
		$this->form_validation->set_message("min_length", "%s は4文字以上で入力してください。");
		$this->form_validation->set_message("required", "%s を入力してください。");
		$this->form_validation->set_message("valid_email", "有効なメールアドレスを入力してください。");
		
		//正しい場合はメールを送信
		if ($this->form_validation->run()) {
			//認証キーの生成
			$key = md5(uniqid());
			
			//Emailライブラリを読み込む。メールタイプをHTMLに設定（デフォルトはテキストです）
			$this->load->library("email", array("mailtype" => "html"));
			$this->email->from("<EMAIL>", "Haxeon2");	//送信元の情報
			$this->email->to($this->input->post("email"));	//送信先の設定
			$this->email->subject("【Haxeon】アカウントの認証");	//タイトルの設定
			
			//メッセージの本文
			$message = "仮登録が完了しました。";
			$message .= "<h1><a href=' ".base_url(). "signup/register/$key'>こちら</h1>をクリックして、会員登録を完了してください。</a>";
			$this->email->message($message);
			
			$this->load->model("model_users");
			
			//仮登録用データベースへの登録が完了した場合
			if ($this->model_users->add_tmp_user($key)) {
				//メール送信
				if($this->email->send()){
					echo "登録用メールが送信されました。";
				}else {
					echo "登録用メールの送信に失敗しました。お手数ですがやり直して下さい。";
					$this->index();
				}
			} else {
				$this->index();
			}
		} else {
            $this->index();
        }
	}
	
	//メールに記載されたURLの認証
	public function register($key) {
		$this->load->model("model_users");
		$this->model_users->add_user($key);
	}
	
	//既存のユーザIDとの重複チェック
	public function username_check($str) {
		$this->load->model("model_users");
{'fraction_non_alphanumeric': 0.20864168059202673, 'fraction_numerical': 0.0023872045834328003, 'mean_word_length': 4.763411279229711, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 123, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3848497', 'n_tokens_mistral': 2028, 'n_tokens_neox': 1880, 'n_words': 192}