Merge pull request #8 from radiocontrolled/0004872
[atutor.git] / confirm.php
1 <?php
2 /************************************************************************/
3 /* ATutor                                                                                                                               */
4 /************************************************************************/
5 /* Copyright (c) 2002-2010                                              */
6 /* Inclusive Design Institute                                           */
7 /* http://atutor.ca                                                     */
8 /* This program is free software. You can redistribute it and/or        */
9 /* modify it under the terms of the GNU General Public License          */
10 /* as published by the Free Software Foundation.                        */
11 /************************************************************************/
12 // $Id$
13
14 $_user_location = 'public';
15
16 define('AT_INCLUDE_PATH', 'include/');
17 require(AT_INCLUDE_PATH.'vitals.inc.php');
18
19 if (isset($_POST['cancel'])) {
20         $msg->addFeedback('CANCELLED');
21         header('Location: '.$_base_href.'login.php');
22         exit;
23 }
24
25 if (isset($_GET['e'], $_GET['id'], $_GET['m'])) {
26         $id = intval($_GET['id']);
27         $m  = $_GET['m'];
28         $e  = $addslashes($_GET['e']);
29
30         $sql    = "SELECT creation_date FROM ".TABLE_PREFIX."members WHERE member_id=$id";
31         $result = mysql_query($sql, $db);
32         if ($row = mysql_fetch_assoc($result)) {
33                 $code = substr(md5($e . $row['creation_date'] . $id), 0, 10);
34
35                 if ($code == $m) {
36                         $sql = "UPDATE ".TABLE_PREFIX."members SET email='$e', last_login=NOW(), creation_date=creation_date WHERE member_id=$id";
37                         $result = mysql_query($sql, $db);
38
39                         $msg->addFeedback('CONFIRM_GOOD');
40
41                         header('Location: '.$_base_href.'users/index.php');
42                         exit;
43                 } else {
44                         $msg->addError('CONFIRM_BAD');
45                 }
46         } else {
47                 $msg->addError('CONFIRM_BAD');
48         }
49
50 } else if (isset($_GET['id'], $_GET['m'])) {
51         $id = intval($_GET['id']);
52         $m  = $_GET['m'];
53
54         $sql    = "SELECT email, creation_date FROM ".TABLE_PREFIX."members WHERE member_id=$id AND status=".AT_STATUS_UNCONFIRMED;
55         $result = mysql_query($sql, $db);
56         if ($row = mysql_fetch_assoc($result)) {
57                 $code = substr(md5($row['email'] . $row['creation_date'] . $id), 0, 10);
58
59                 if ($code == $m) {
60                         if (defined('AUTO_APPROVE_INSTRUCTORS') && AUTO_APPROVE_INSTRUCTORS) {
61                                 $sql = "UPDATE ".TABLE_PREFIX."members SET status=".AT_STATUS_INSTRUCTOR.", creation_date=creation_date, last_login=NOW() WHERE member_id=$id";
62                         } else {
63                                 $sql = "UPDATE ".TABLE_PREFIX."members SET status=".AT_STATUS_STUDENT.", creation_date=creation_date, last_login=NOW() WHERE member_id=$id";
64                         }
65                         $result = mysql_query($sql, $db);
66
67                         if (isset($_REQUEST["en_id"]) && $_REQUEST["en_id"] <> "")
68                         {
69                                 $msg->addFeedback('CONFIRM_GOOD');
70
71                                 $member_id      = $id;
72                                 require (AT_INCLUDE_PATH.'html/auto_enroll_courses.inc.php');
73                                 unset($_SESSION['valid_user']);
74                                 unset($_SESSION['member_id']);
75                                 
76                                 $table_title="
77                                 <div class=\"row\">
78                                         <h3>" . _AT('auto_enrolled_msg'). "<br /></h3>
79                                 </div>";
80                 
81                                 require(AT_INCLUDE_PATH.'header.inc.php');
82                                 echo "<div class=\"input-form\">";
83                                 require(AT_INCLUDE_PATH.'html/auto_enroll_list_courses.inc.php');
84                                 echo '<p style="text-align:center"><a href="'. $_SERVER['PHP_SELF'] . '?auto_login=1&member_id='. $id .'">' . _AT("go_to_my_start_page") . '</a></p>';
85                                 echo "</div>";
86                                 require(AT_INCLUDE_PATH.'footer.inc.php');
87                                 exit;
88                         }
89                         else
90                         {
91                                 $msg->addFeedback('CONFIRM_GOOD');
92                                 
93                                 // enable auto login student into "my start page"
94                                 $_REQUEST["auto_login"] = 1;
95                                 $_REQUEST["member_id"] = $id;
96                         }
97                 } else {
98                         $msg->addError('CONFIRM_BAD');
99                 }
100         } else {
101                 $msg->addError('CONFIRM_BAD');
102         }
103 } else if (isset($_POST['submit'])) {
104         $_POST['email'] = $addslashes($_POST['email']);
105
106         $sql    = "SELECT member_id, email, creation_date, status FROM ".TABLE_PREFIX."members WHERE email='$_POST[email]'";
107         $result = mysql_query($sql, $db);
108
109         if ($row = mysql_fetch_assoc($result)) {
110
111                 if ($row['status'] == AT_STATUS_UNCONFIRMED) {
112                         $code = substr(md5($row['email'] . $row['creation_date']. $row['member_id']), 0, 10);
113                         
114                         if ($_POST["en_id"] <> "")
115                                 $confirmation_link = $_base_href . 'confirm.php?id='.$row['member_id'].SEP.'m='.$code.'&en_id='.$_POST["en_id"];
116                         else
117                                 $confirmation_link = $_base_href . 'confirm.php?id='.$row['member_id'].SEP.'m='.$code;
118
119                         /* send the email confirmation message: */
120                         require(AT_INCLUDE_PATH . 'classes/phpmailer/atutormailer.class.php');
121                         $mail = new ATutorMailer();
122
123                         $mail->From     = $_config['contact_email'];
124                         $mail->AddAddress($row['email']);
125                         $mail->Subject = SITE_NAME . ': ' . _AT('email_confirmation_subject');
126                         $mail->Body    = _AT('email_confirmation_message', $_base_href, $confirmation_link)."\n\n";
127                         $mail->Send();
128
129                         $msg->addFeedback('CONFIRMATION_SENT');
130                 } else {
131                         $msg->addFeedback('ACCOUNT_CONFIRMED');
132                 }
133
134                 header('Location: '.$_base_href.'login.php');
135                 exit;
136         } else {
137                 $msg->addError('EMAIL_NOT_FOUND');
138         }
139 }
140
141 if (isset($_REQUEST['auto_login']))
142 {
143         
144         $sql = "SELECT M.member_id, M.login, M.preferences, M.language FROM ".TABLE_PREFIX."members M WHERE M.member_id=".$_REQUEST["member_id"];
145         $result = mysql_query($sql, $db);
146         if ($row = mysql_fetch_assoc($result)) 
147         {
148                 $_SESSION['valid_user'] = true;
149                 $_SESSION['member_id']  = $_REQUEST["member_id"];
150                 $_SESSION['course_id']  = 0;
151                 $_SESSION['login']              = $row[login];
152                 if ($row['preferences'] == "")
153                         assign_session_prefs(unserialize(stripslashes($_config["pref_defaults"])), 1);
154                 else
155                         assign_session_prefs(unserialize(stripslashes($row['preferences'])), 1);
156                 $_SESSION['is_guest']   = 0;
157                 $_SESSION['lang']               = $row[lang];
158                 session_write_close();
159
160                 header('Location: '.AT_BASE_HREF.'bounce.php?course='.$_POST['course']);
161                 exit;
162         }
163 }
164
165 require(AT_INCLUDE_PATH.'header.inc.php'); 
166
167 $savant->display('confirm.tmpl.php');
168
169 require(AT_INCLUDE_PATH.'footer.inc.php'); 
170 ?>