リビジョン 8b8631af

差分を見る:

app/Controller/AppController.php
50 50
            'logoutRedirect' => array(
51 51
                'controller' => 'users',
52 52
                'action' => 'login',
53
                'home'
54 53
            ),
55 54
            'authenticate' => array(
56 55
				'Form' => array(
app/Controller/UsersController.php
10 10

  
11 11
	public $layout = 'procedure';
12 12
	public $name = 'users';
13
	public $uses = array('User');
13 14

  
14 15
    public function beforeFilter() {
15 16
        parent::beforeFilter();
16
        $this->Auth->allow('register','activate','confirm','sent');
17
        $this->Auth->allow('register','activate','confirm','sent','login');
17 18
    }
18 19

  
19 20
/**
......
88 89
		$this->set('register',$this->Session->read('register'));
89 90
		$name = $this->Session->read('register.User.login_id');
90 91
		$mail = $this->Session->read('register.User.email');
91
        // ユーザアクティベート(本登録)用URLの作成
92
        // ユーザアクティベート(本登録)用URLの作成 DSはスラッシュの意味
92 93
        $url = 
93 94
            DS . 'users' .          // コントローラ
94 95
            DS . 'activate' .                       // アクション
......
102 103
		$Email->emailFormat('text');
103 104
		$Email->template('user_register');
104 105
		$Email->viewVars(array('name'=>$name,'comment'=>$comment));
105
		$Email->from($mail);
106
		$Email->to('hasegawa@i-hearts.jp');
106
		$Email->from('hasegawa@i-hearts.jp');
107
		$Email->to($mail);
107 108
		$Email->subject('[PICT CODE]問い合わせ');
108 109
		$Email->send();
109 110
	    }
app/Model/User.php
19 19
 */
20 20
	public $validate = array(
21 21
		'login_id' => array(
22
			'notBlank' => array(
23 22
				'rule' => array('notBlank'),
24
				//'message' => 'Your custom message here',
25
				//'allowEmpty' => false,
26
				//'required' => false,
27
				//'last' => false, // Stop validation after this rule
28
				//'on' => 'create', // Limit validation to 'create' or 'update' operations
23
                'message' => 'この項目は入力必須です'
29 24
			),
30
		),
31 25
        'email' => array(
26
        	array(
27
				'rule' => array('notBlank'),
28
                'message' => 'メールアドレスを入力してください'
29
            ),
32 30
            // メールアドレスであること。
33
            'validEmail' => array( 'rule' => array( 'email', true), 'message' => 'アドレスを入力して下さい'),
31
            'isEmail' => array( 
32
				'rule' => 'Email',
33
            	'message' => '正しいメールアドレスを入力してください'
34
            ),
35
            array(
36
                'rule' => 'DuplicateEmailCheck', 
37
                'message' => 'このメールアドレスは既に登録されています'
38
            ), 
34 39
            // 一意性チェック
35 40
            // 'emailExists' => array( 'rule' => 'isUnique', 'message' => '既に登録されています'),
36 41
        ),
37 42
        'password' => array(
38
             // パスワード・確認用パスワードの一致
39
             'match' => array( 'rule' => array( 'confirmPassword', 'password_confirm'), 'message' => '一致しません'),
43
            array(
44
				'rule' => array('notBlank'),
45
                'message' => 'パスワードを入力してください'
46
            ), 
47
            array(
48
                'rule' => array('minLength', 8), 
49
                'message' => 'パスワードは8文字以上入力してください', 
50
            ),
51
            array(
52
                'rule' => 'passwordConfirm', 
53
                'message' => 'パスワードが一致していません'
54
            ), 
55
        ),
56
        'password_confirm' => array(
57
            array(
58
				'rule' => array('notBlank'),
59
                'message' => 'パスワード(確認)を入力してください'
60
            ), 
40 61
        ),
41
		// 'password' => array(
42
		// 	'notBlank' => array(
43
		// 		'rule' => array('notBlank'),
44
		// 		//'message' => 'Your custom message here',
45
		// 		//'allowEmpty' => false,
46
		// 		//'required' => false,
47
		// 		//'last' => false, // Stop validation after this rule
48
		// 		//'on' => 'create', // Limit validation to 'create' or 'update' operations
49
		// 	),
50
		// ),
51 62
		'status' => array(
52 63
			'numeric' => array(
53 64
				'rule' => array('numeric'),
......
61 72
	);
62 73

  
63 74

  
75
	public function DuplicateEmailCheck(){
76
		$query = array('conditions' => array('User.email' => $this->data['User']['email'],'User.status' => 1));
77
		$num = $this->find('count',$query);
78
		//$this->log($recodes);
79
		//var_dump($num);
80
		//exit;
81
		if($num > 0){
82
            return false;	//登録済み		
83
		} else{
84
            return true;	//未登録	
85
		}
86
	}
64 87

  
65
    public function confirmPassword( $field, $password_confirm) {
66
        if ($field['password'] === $this->data[$this->name][$password_confirm]) {
88
    public function passwordConfirm($check){
89
        //2つのパスワードフィールドが一致する事を確認する
90
        if($this->data['User']['password'] === $this->data['User']['password_confirm']){
67 91
            // パスワードハッシュ化
68
            $this->data[$this->name]['password'] = Security::hash( $plain, 'sha512', true);
92
            $this->data[$this->name]['password'] = Security::hash( $password, 'sha512', true);
69 93
            return true;
94
        }else{
95
            return false;
70 96
        }
97

  
71 98
    }
72 99

  
100

  
73 101
	public function getActivationHash() {
74 102
	    // ユーザIDの有無確認
75 103
	    if (!isset($this->id)) {
app/View/Layouts/procedure.ctp
44 44
	<header>
45 45
		<a href="/top/index"><img class="header_button left" type="button" src="/img/btn_header_004.png" alt=""></a>
46 46
		<img class="center" src="/img/header_title.png" alt="Pict Code">
47
		<a href=""><img class="header_button right" type="button" src="/img/btn_header_014.png" alt=""></a>
47
		<a href="/users/logout"><img class="header_button right" type="button" src="/img/btn_header_014.png" alt=""></a>
48 48
	</header>
49 49

  
50 50

  
app/View/users/activate.ctp
13 13
				<section>
14 14
				<h3>登録が完了しました!</h3>
15 15
				<p>この度は、PictCodeにご登録いただき誠にありがとうございます。<br>PictCodeは、これからIT技術を担っていくお子様達に、プログラミングを楽しんでもらうと同時に、プログラムを組む上で必要な「計画性」と「組織性」、そして「想像力」を育むツールでもあります。プログラミングにおいて、この無限大の可能性を持つツールを用いる事で、お子様の想像力を最大限に発揮させ、さらには世界を代表するような逸材に育てていきましょう!</p>
16
				</section>
17

  
18

  
19
			<?php 
20
    echo $this->Session->flash();
21
    echo $this->Html->link( 'ログイン画面へ', '/users/login');
22
?>	
16
				</section>	
23 17
			</div>
24 18
				<section class="button_area01">
25
					<a href="index.html"><p class="button btn_top02"></p></a>
19
					<a href="/top/index"><p class="button btn_top02"></p></a>
26 20
				</section>
27 21
		</article>
28 22
	</main>
app/View/users/confirm.ctp
25 25
				</section>
26 26
			</div>
27 27
				<section class="button_area01">
28
					<a href="register.html"><p class="button btn_alter01"></p></a>
28
					<a href="javascript:history.back();"><p class="button btn_alter01"></p></a>
29 29
					<a href="/users/sent"><p class="button btn_register"></p></a>
30 30
				</section>
31 31
		</article>
app/View/users/login.ctp
8 8
            <p class="">ほぞんデータを かんりするためには、ニックネームと パスワードを 入力して ログインする ひつようが あります。 入力に まちがいがないように 注意してください。</p>
9 9
            <?php echo $this->Form->create('User',array(
10 10
                                        'div' => false,
11
                                        'type'=>'post',
11
                                        'novalidate' => true,
12
                                        'inputDefaults' => array(
13
                                            'before'  => '<dt>',
14
                                            'between' => '</dt><dd>',
15
                                            'after' => '</dd>',
16
                                            'div' => false
17
                                            )
12 18
                                        )); ?>
13 19
                <fieldset>
14 20
                    <section>
15 21
                    <dl>
16 22
                            <?php
17
                                echo 
18
                                '<dt><label for="">ニックネーム</label></dt>
19
                                <dd>';
20
                                echo $this->Form->text('login_id',
23
                                echo $this->Form->input('login_id',
21 24
                                    array( 'type' => 'text',
25
                                            'label' => 'ニックネーム',
22 26
                                            'placeholder'=>'ニックネーム'
23 27
                                        ));
24
                                echo 
25
                                '</dd>
26
                                <dt><label for="">パスワード</label></dt>
27
                                <dd>';
28
                                echo $this->Form->text('password',
28
                                echo $this->Form->input('password',
29 29
                                    array( 'placeholder'=>'パスワード',
30
                                            'label' => 'パスワード',
30 31
                                            'maxlength' => '50',
31 32
                                            'type' => 'password'
32 33
                                        ));
33
                                echo 
34
                                '</dd>';
35 34
                            ?>
36 35
                        </dl>
37 36
                    </section>
38
                </fieldset>
39
                <?php  $this->Form->submit('送信する',array('class'=>'btn btn-info')); ?>
40
                <?php  $this->Form->end(); ?>
41
                
42
                    <?php echo $this->Flash->render('auth'); ?>
43
                
37
                </fieldset>   
38
                <?php  echo $this->Session->flash(); ?>             
44 39
                <section>
45 40
                    <p>ニックネームや パスワードを 忘れたばあいには お父さんや お母さんに 相談して、<br><a href="reminder.html"><span class="link_reminder">コチラ</span></a>を クリックして パスワードを 再はっこうしてもらってね!</p>
46 41
                </section>
47 42
                <section class="button_area01">
48 43
                    <a href="/top/index"><p class="button btn_back02"></p></a>
49
                    <a href="login_top"><p class="button btn_login"></p></a>
44
                <?php  echo $this->Form->submit('',array('class'=>'button btn_check01')); ?>
45
                <?php  echo $this->Form->end(); ?>
50 46
                </section>
51 47
        </article>
52 48
    </main>
app/View/users/register.ctp
13 13
			<div id="contents">
14 14
			<?php echo $this->Form->create('User',array(
15 15
										'div' => false,
16
										'type'=>'post',
17
										//action'=>'register',
16
										'novalidate' => true,
17
										'inputDefaults' => array(
18
									        'before'  => '<dt>',
19
									        'between' => '</dt><dd>',
20
									        'after' => '</dd>',
21
									        'div' => false
22
									        )
18 23
										)); ?>
19 24
				<fieldset>
20 25
					<section>
21 26
						<dl>
22 27
							<?php
23
								echo 
24
								'<dt><label for="">ニックネーム</label></dt>
25
								<dd>';
26
								echo $this->Form->text('login_id',
28
								echo $this->Form->input('login_id',
27 29
									array( 'type' => 'text',
30
											'label' => 'ニックネーム',
28 31
											'placeholder'=>'ニックネーム'
29 32
										));
30
								echo 
31
								'</dd>
32
								<dt><label for="">パスワード</label></dt>
33
								<dd>';
34
								echo $this->Form->text('password',
33
								echo $this->Form->input('password',
35 34
									array( 'placeholder'=>'パスワード',
35
											'label' => 'パスワード',
36 36
											'maxlength' => '50',
37 37
											'type' => 'password'
38 38
										));
39
								echo 
40
								'</dd>
41
								<dt><label for="">パスワード(確認用)</label></dt>
42
								<dd>';
43
								 echo $this->Form->text('password_confirm',
39
								 echo $this->Form->input('password_confirm',
44 40
								  	array( 'placeholder'=>'パスワード(確認用)',
41
											'label' => 'パスワード(確認用)',
45 42
								  		 'maxlength' => '50', 
46 43
								  		  'type' => 'password'
47 44
								  		));
48
								 echo
49
								'</dd>
50
								<dt><label for="">メールアドレス</label></dt>
51
								<dd>';
52
								echo $this->Form->text( 'email', array('placeholder'=>'メールアドレス',
45
								echo $this->Form->input( 'email',
46
									array('placeholder'=>'メールアドレス',
47
											'label' => 'メールアドレス',
53 48
											'maxlength' => '255',
54 49
								 			'type' => 'email'));
55 50

  
56 51

  
57
								 $this->Form->input('user_flg',1);
58
								 $this->Form->input('status',1);
52
								echo $this->Form->input('user_flg',
53
								 	array(	'type' => 'hidden',
54
										 	'value' => 0,	
55
								 		));
56
								echo $this->Form->input('status',
57
								 	array(	'type' => 'hidden',
58
										 	'value' => 0,	
59
								 		));
59 60
							?>
60 61
						</dl>
61 62
					</section>
62 63
				</fieldset>
63
				<?php  $this->Form->submit('送信する',array('class'=>'btn btn-info')); ?>
64
				<?php  $this->Form->end(); ?>
65
			<?php //echo $this->Form->end(__('Submit')); ?>
66
			<?php //echo $this->Form->end('Register'); ?>
67
			<?php //echo $this->Form->end(); ?>
68 64
			</div>
69 65
				<section class="button_area01">
70 66
					<a href="javascript:history.back();">
71 67
						<p class="button btn_back01"></p>
72 68
					</a>
73
					<a href="/users/confirm">
69
				<?php  echo $this->Form->submit('',array('class'=>'button btn_check01')); ?>
70
				<?php  echo $this->Form->end(); ?>
71
<!-- 					<a href="/users/confirm">
74 72
						<p class="button btn_check01"></p>
75 73
					</a>
76
				</section>
74
 -->				</section>
77 75
		</article>
78 76
	</main>
79 77

  
app/webroot/css/main.css
570 570
  font-size: 24px;
571 571
}
572 572

  
573
article.register dl dd span{
574
	margin:0px 0 0 120px;
575
  	font-size: 14px;
576
}
577

  
573 578
article.register dl dd p {
574 579
	margin:9px 0 0 0px;
575 580
  padding: 3px 0 3px 120px;
......
603 608
	border: 1px solid #1abc9c;
604 609
}
605 610

  
611
div.submit input {
612
    border: none;
613
}
614

  
615

  
606 616

  
607 617
/* Contact Form */
608 618

  
......
966 976
article.admin section.save_data ul li a:hover {
967 977
	display: block;
968 978
	box-shadow:none;
969
}
979
}

他の形式にエクスポート: Unified diff