$logStr = ""; $log_file = ROOT_DIR . '/browsing/paypal/' . PAYPAL_IPN_LOG; $logFd = fopen($log_file, "a"); $fpx = fopen($log_file, 'a'); $debug = 1; if ($debug == 1) { fwrite($fpx, "INIZIO processo IPN\n"); fwrite($fpx, "Prima di init \n"); } $today_date = today_dateFN(); $providerId = DataValidator::is_uinteger($_REQUEST['provider']); $courseId = DataValidator::is_uinteger($_REQUEST['course']); $instanceId = DataValidator::is_uinteger($_REQUEST['instance']); $studentId = DataValidator::is_uinteger($_REQUEST['student']); $testerInfoAr = $common_dh->get_tester_info_from_id($providerId, 'AMA_FETCH_ASSOC'); $buyerObj = read_user($studentId); if (is_object($buyerObj) && !AMA_dataHandler::isError($buyerObj)) { if (!AMA_Common_DataHandler::isError($testerInfoAr)) { $provider_name = $testerInfoAr[1]; $tester = $testerInfoAr[10]; $tester_dh = AMA_DataHandler::instance(MultiPort::getDSN($tester)); $currentTesterId = $newTesterId; $GLOBALS['dh'] = $tester_dh; $dh = $tester_dh; // id dello studente if (!isset($instanceId)) { $instanceId = $sess_id_user; // ?????? } /* * Instance Object
function find_selected_user() { global $user; if (isset($_GET["user"])) { /* search db for specified record */ $user = read_user($_GET["user"]); if (!$user) { /* record not found */ redirect_to("manage_users.php"); } } else { /* $_GET was not set */ redirect_to("manage_users.php"); } }
<?php $test = sha1("{$_POST['notification_type']}&{$_POST['operation_id']}&{$_POST['amount']}&{$_POST['currency']}&{$_POST['datetime']}&{$_POST['sender']}&{$_POST['codepro']}&j73SGzafSu8hfaYgXQvA3aqI&{$_POST['label']}"); //$handle = fopen ("1.txt", "a"); //fwrite ($handle, "$_POST[notification_type]&$_POST[operation_id]&$_POST[amount]&$_POST[currency]&$_POST[datetime]&$_POST[sender]&$_POST[codepro]&j73SGzafSu8hfaYgXQvA3aqI&$_POST[label]\n"); if ($_POST["sha1_hash"] == $test) { //fwrite ($handle, "+\n"); if (substr($_POST[label], 0, 7) == "stirka.") { //fwrite ($handle, "+\n"); $uid = substr($_POST[label], 7) * 1; if ($uid > 0) { //fwrite ($handle, "+\n"); date_default_timezone_set("Europe/Moscow"); $___time = time(); //подключение include "includes/kernel.php"; db_connect(); if (read_user("userID", $uid)) { //fwrite ($handle, "+\n"); user_pay($uid, floor($_POST[withdraw_amount] * 1) * 100, $_POST[notification_type] == "p2p-incoming" ? "јвтоматическое пополнение через яндекс.деньги" : "јвтоматическое пополнение с банковской карты", -1); } } } } ?> 1
} if (!isset($_REQUEST['status'])) { if (isset($_REQUEST['msg'])) { $status = $_REQUEST['msg']; $msg = $_REQUEST['msg']; } else { $status = translateFN("navigazione"); } } else { $status = $_REQUEST['status']; } // $is_istance_active = ... ?; /** * get User object */ $userObj = read_user($sess_id_user); if (ADA_Error::isError($userObj)) { $userObj->handleError(); } // FIXME: messages and agenda will be handled by class MultiPort // $user_messages = $userObj->get_messagesFN($sess_id_user); // $user_agenda = $userObj->get_agendaFN($sess_id_user); $testers_dataAr = MultiPort::getTestersPointersAndIds(); $user_messagesAr = MultiPort::getUserMessages($userObj); $user_messages = CommunicationModuleHtmlLib::getMessagesAsTable($user_messagesAr, $testers_dataAr); $user_agendaAr = MultiPort::getUserAgenda($userObj); $user_agenda = CommunicationModuleHtmlLib::getAgendaAsTable($user_agendaAr, $testers_dataAr); $user_eventsAr = MultiPort::getUserEventsNotRead($userObj); $user_events = CommunicationModuleHtmlLib::getEventsAsTable($userObj, $user_eventsAr, $testers_dataAr); /*$user_eventsAr = MultiPort::getUserEvents($userObj); $user_events = CommunicationModuleHtmlLib::getEventsAsTable($userObj, $user_eventsAr, $testers_dataAr);
$_POST[room] = ceil($_POST[room] * 1); $_POST[gr] = mysql_real_escape_string(htmlspecialchars($_POST[gr], ENT_COMPAT | ENT_HTML401, 'cp1251')); $_POST[email] = mysql_real_escape_string(htmlspecialchars($_POST[email], ENT_COMPAT | ENT_HTML401, 'cp1251')); $_POST[phone] = mysql_real_escape_string(htmlspecialchars($_POST[phone], ENT_COMPAT | ENT_HTML401, 'cp1251')); $_POST[card] = mysql_real_escape_string(strtolower(htmlspecialchars($_POST[card], ENT_COMPAT | ENT_HTML401, 'cp1251'))); $errors = "&fio=" . urlencode($_POST[fio]) . "&login="******"&room=" . urlencode($_POST[room]) . "&gr=" . urlencode($_POST[gr]) . "&email=" . urlencode($_POST[email]) . "&phone=" . urlencode($_POST[phone]) . "&card=" . urlencode($_POST[card]); /*if ($_POST[card]){ $card = read_code_card($_POST[card], 1); if (!$card) redirect("index.php?page=login®=1&error=7".$errors); }else redirect("index.php?page=login®=1&error=7&1".$errors);*/ if ($_POST[login] && $_POST[pass]) { if (strlen($_POST[pass]) > 5) { if ($_POST[pass] === $_POST[pass2]) { if (preg_match("/^([0-9]{3})|(асп[0-9]{2})\$/", $_POST[gr]) !== false) { if ($_POST[room] > 0 && $_POST[room] < 450) { $user = read_user("login", $_POST[login]); if (!$user) { add_user($_POST[login], $_POST[pass], $_POST[email], $_POST[phone], $_POST[gr], $_POST[room], $_POST[fio], $card); redirect("index.php?page=login®=2"); } else { redirect("index.php?page=login®=1&error=6" . $errors); } } else { redirect("index.php?page=login®=1&error=5" . $errors); } } else { redirect("index.php?page=login®=1&error=4" . $errors); } } else { redirect("index.php?page=login®=1&error=3" . $errors); }
if ($pay[amount] < 0) { $amountcolor = "red"; } else { $amountcolor = "green"; } $uname = ""; if (strpos($pay[descr], "Оплата кванта времени ") !== false) { $m = array(); preg_match("/Оплата кванта времени с ([0-9]+) по ([0-9]+)/", $pay[descr], $m); $pay[descr] = "Оплата кванта времени с " . date("d.m.Y H:i:s", $m[1]) . " по " . date("d.m.Y H:i:s", $m[2]) . ""; } else { if ($pay[adminID] == -1) { $uname = "Яндекс.деньги"; } elseif (strpos($pay[descr], "Оплата СМС") !== false) { $uname = "СМС"; } else { $u = read_user("userID", $pay[adminID]); $uname = $u[fio]; } } $t = ""; if ($pay["time"] == "0000-00-00 00:00:00") { $pay["time"] = ""; } echo "<tr>\n\t<td>{$pay['merchantID']}</td>\n\t<td style='color:{$amountcolor};'>" . $pay[amount] * 0.01 . "</td>\n\t<td>{$pay['descr']}</td>\n\t<td>{$uname}</td>\n\t<td>{$pay['time']}</td>\n\t</tr>"; } } else { echo "Пополнений баланса не было!"; } echo "</center>"; echo show_footer();
<?php echo show_header(); if (!$user[perm]) { die(redirect_js("index.php")); } echo "<span class='name'>Изменение карты пользователя</span><br>"; if ($_GET[userID]) { if ($u = read_user('userID', $_GET[userID] * 1)) { if ($_GET[error]) { switch ($_GET[error]) { case -1: $error = "Неверный код!"; break; case 1: $error = "OK!"; break; } } echo "<center><div id='errortxt' class='error'>{$error}</div>\n\t\t\t\t<form id='form_edit' action='action.php?action=edit_user_card' method=POST>\n\t\t\t\t<table>\n\t\t\t\t<tr><td>userID</td><td>{$u['userID']}</td></tr>\n\t\t\t\t<tr><td>Логин</td><td>{$u['login']}</td></tr>\n\t\t\t\t<tr><td>ФИО</td><td>{$u['fio']}</td></tr>\n\t\t\t\t<tr><td>Код доступа</td><td> <input id='new_code' name='new_code'></td></tr>\n\t\t\t\t</table>\n\t\t\t\t<input type=submit value='Изменить'>\n\t\t\t\t<input type=hidden name=userID value='{$u['userID']}'>\n\t\t\t\t</form>\n\t\t\t\t"; } else { echo "Произошла какая-то ошибка! Попробуйте снова! <br><a href='?page=users'>Назад</a>"; } } else { echo "Произошла какая-то ошибка! Попробуйте снова! <br><a href='?page=users'>Назад</a>"; }
$loclist = array(); foreach ($default_locales as $dl) { $loclist[] = '/^' . substr($dl, 0, 2) . '$/'; } $locale = preg_replace($loclist, $default_locales, $locale); // Finally, setlocale setlocale(LC_MESSAGES, $locale); bindtextdomain(TEXT_DOMAIN, $directory); bind_textdomain_codeset(TEXT_DOMAIN, 'UTF-8'); textdomain(TEXT_DOMAIN); // Generate an (reasonably) unique identifier for the session $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; if (!isset($_REQUEST['l0id']) && $action == 'remember' && isset($_SESSION['l0id'])) { $l0id = $_SESSION['l0id']; unset($_SESSION['l0id']); $text = read_user(); // removes the file } if (!isset($l0id) || strlen($l0id) == 0) { $l0id = isset($_REQUEST['l0id']) && preg_match('/^\\d{1,10}$/', $_REQUEST['l0id']) ? $_REQUEST['l0id'] : mt_rand(1000, 9999999); } // Check logged in user $user = isset($_SESSION['osm_user']) ? $_SESSION['osm_user'] : false; $loggedin = isset($_SESSION['osm_token']); // Read edited data if (!isset($text) || !$text) { $text = isset($_REQUEST['data']) ? $_REQUEST['data'] : ''; } // Generate $basedata and $userdata arrays $error = false; $messages = array();
* */ require '../../config.php'; require_once './hide_moodle.php'; require_once './locallib.php'; require_once './contact_form.php'; require_obu_login(); $home = new moodle_url('/local/obu_application/'); $url = $home . 'contact.php'; $PAGE->set_title($CFG->pageheading . ': ' . get_string('contactdetails', 'local_obu_application')); // HTTPS is required in this page when $CFG->loginhttps enabled $PAGE->https_required(); $PAGE->set_url($url); $message = ''; $counties = get_counties(); $parameters = ['user' => read_user($USER->id), 'applicant' => read_applicant($USER->id, false), 'counties' => $counties]; $mform = new contact_form(null, $parameters); if ($mform->is_cancelled()) { redirect($home); } else { if ($mform_data = $mform->get_data()) { if ($mform_data->submitbutton == get_string('save', 'local_obu_application')) { $mform_data->county = $counties[$mform_data->domicile_code]; write_user($USER->id, $mform_data); write_contact_details($USER->id, $mform_data); } redirect($home); } } echo $OUTPUT->header(); if ($message) {
<?php if (!$user[perm]) { die(redirect_js("index.php")); } $_POST[fio] = mysql_real_escape_string(htmlspecialchars($_POST[fio], ENT_COMPAT | ENT_HTML401, 'cp1251')); $_POST[login] = mysql_real_escape_string(htmlspecialchars($_POST[login], ENT_COMPAT | ENT_HTML401, 'cp1251')); $_POST[room] = ceil($_POST[room] * 1); $_POST[gr] = mysql_real_escape_string(htmlspecialchars($_POST[gr], ENT_COMPAT | ENT_HTML401, 'cp1251')); $_POST[email] = mysql_real_escape_string(htmlspecialchars($_POST[email], ENT_COMPAT | ENT_HTML401, 'cp1251')); $_POST[phone] = mysql_real_escape_string(htmlspecialchars($_POST[phone], ENT_COMPAT | ENT_HTML401, 'cp1251')); $_POST[card] *= 1; //($_POST[card][0]*1).(substr($_POST[card], 1)*1); $_POST[userID] *= 1; if ($u = read_user("login", $_POST[login])) { if ($u[userID] != $_POST[userID]) { redirect("index.php?page=edit_user&userID={$_POST['userID']}&error=1"); die; } } $ok = edit_user($_POST[userID], $_POST[login], $_POST[pass], $_POST[email], $_POST[phone], $_POST[gr], $_POST[room], $_POST[fio], $_POST[active] * 1, 1 * $_POST[perm], $_POST[card]); redirect("index.php?page=edit_user&userID={$_POST['userID']}&error=2");
function parameter_controlFN($neededObjAr = array(), $allowedUsersAr = array()) { $invalid_session = FALSE; $invalid_user = FALSE; $invalid_node = FALSE; $invalid_course = FALSE; $invalid_course_instance = FALSE; $invalid_user_level = FALSE; $guest_user_not_allowed = FALSE; /* * ADA common data handler */ $common_dh = isset($GLOBALS['common_dh']) ? $GLOBALS['common_dh'] : null; if (!$common_dh instanceof AMA_Common_DataHandler) { $common_dh = AMA_Common_DataHandler::instance(); $GLOBALS['common_dh'] = $common_dh; } /* * User object: always load a user */ $sess_id_user = isset($_SESSION['sess_id_user']) ? (int) $_SESSION['sess_id_user'] : 0; $sess_userObj = read_user($sess_id_user); if (ADA_Error::isError($sess_userObj)) { $sess_userObj->handleError(); } $_SESSION['sess_id_user'] = $sess_id_user; if ($sess_userObj instanceof ADAGenericUser) { $_SESSION['sess_userObj'] = $sess_userObj; /* * Check if this user is allowed to access the current module */ if (!in_array($sess_userObj->getType(), $allowedUsersAr)) { header('Location: ' . $sess_userObj->getHomePage()); exit; } } else { unset($_SESSION['sess_userObj']); $invalid_user = TRUE; } $id_profile = $sess_userObj->getType(); /* * Get needed object for this user from $neededObjAr */ if (is_array($neededObjAr) && isset($neededObjAr[$id_profile]) && is_array($neededObjAr[$id_profile])) { $thisUserNeededObjAr = $neededObjAr[$id_profile]; } else { $thisUserNeededObjAr = array(); } /* * * 'default_tester' AL MOMENTO VIENE RICHIESTO SOLO DA USER.php * QUI ABBIAMO NECESSITA' DI CANCELLARE LA VARIABILE DI SESSIONE * sess_id_course. * Gia' che ci siamo facciamo unset anche di sess_id_node * e di sess_id_course_instance * * Tester selection: * * se ho richiesto la connessione al database del tester di default, * controllo che il tipo di utente sia ADAUser (al momento e' l'unico ad * avere questa necessita'). * * se non ho richiesto la connessione al tester di default, allora verifico * se l'utente e' di tipo ADAUser, e ottengo la connessione al database * tester appropriato. */ if (in_array('default_tester', $thisUserNeededObjAr) && $id_profile == AMA_TYPE_STUDENT) { $_SESSION['sess_selected_tester'] = NULL; unset($_SESSION['sess_id_course']); unset($_SESSION['sess_id_course_instance']); unset($_SESSION['sess_id_node']); } else { if ($id_profile == AMA_TYPE_STUDENT) { if (isset($_REQUEST['id_course'])) { $id_course = DataValidator::is_uinteger($_REQUEST['id_course']); } else { $id_course = false; } if (isset($_SESSION['sess_id_course'])) { $sess_id_course = DataValidator::is_uinteger($_SESSION['sess_id_course']); } else { $sess_id_course = false; } if (isset($_REQUEST['id_node'])) { $req_id_node = DataValidator::validate_node_id($_REQUEST['id_node']); } else { $req_id_node = false; } if ($id_course === FALSE && $sess_id_course === FALSE && $req_id_node !== FALSE) { $id_course = substr($req_id_node, 0, strpos($req_id_node, '_')); } if ($id_course !== FALSE && $id_course !== $sess_id_course) { $tester_infoAr = $common_dh->get_tester_info_from_id_course($id_course); if (AMA_Common_DataHandler::isError($tester_infoAr)) { $selected_tester = NULL; } else { $selected_tester = $tester_infoAr['puntatore']; } $_SESSION['sess_selected_tester'] = $selected_tester; } } } /* * ADA tester data handler * Data validation on $sess_selected_tester is performed by MultiPort::getDSN() */ /** * giorgio 12/ago/2013 * set selected tester if it's not a multiprovider environment */ if (!MULTIPROVIDER && isset($GLOBALS['user_provider'])) { $sess_selected_tester = $GLOBALS['user_provider']; } else { $sess_selected_tester = isset($_SESSION['sess_selected_tester']) ? $_SESSION['sess_selected_tester'] : null; } //$dh = AMA_DataHandler::instance(MultiPort::getDSN($sess_selected_tester)); $sess_selected_tester_dsn = MultiPort::getDSN($sess_selected_tester); $_SESSION['sess_selected_tester_dsn'] = $sess_selected_tester_dsn; $dh = new AMA_DataHandler($sess_selected_tester_dsn); $GLOBALS['dh'] = $dh; if (empty($GLOBALS['sess_id'])) { $invalid_session = TRUE; } /* * Node object */ // TODO: portare in sessione $nodeObj? if (in_array('node', $thisUserNeededObjAr)) { $id_node = isset($_REQUEST['id_node']) ? DataValidator::validate_node_id($_REQUEST['id_node']) : false; $sess_id_node = isset($_SESSION['sess_id_node']) ? DataValidator::validate_node_id($_SESSION['sess_id_node']) : false; if ($id_node !== FALSE) { $dataHa = $dh->get_node_info($id_node); if (AMA_DataHandler::isError($dataHa) || !is_array($dataHa)) { $invalid_node = TRUE; } else { $_SESSION['sess_id_node'] = $id_node; } } elseif ($sess_id_node !== FALSE) { $dataHa = $dh->get_node_info($sess_id_node); if (AMA_DataHandler::isError($dataHa) || !is_array($dataHa)) { $invalid_node = TRUE; } else { $_SESSION['sess_id_node'] = $sess_id_node; } } else { $invalid_node = TRUE; } /** * @author giorgio 18/mag/2015 * * Could be that a non-student has request a node from * the default tester in a multiprovider environment * Check this before giving up an marking the node as invalid */ if (MULTIPROVIDER && $id_profile != AMA_TYPE_STUDENT && $invalid_node === true && $id_node !== false) { $invalid_node = checkAndSetPublicTester('node', $id_node); } } /* * Course object */ if (in_array('course', $thisUserNeededObjAr)) { $id_course = isset($_REQUEST['id_course']) ? DataValidator::is_uinteger($_REQUEST['id_course']) : false; $sess_id_course = isset($_SESSION['sess_id_course']) ? DataValidator::is_uinteger($_SESSION['sess_id_course']) : false; /* extracting the course id from node id, if given */ if (isset($_SESSION['sess_id_node']) && !$invalid_node && $id_course === false) { // if ($nodeObj instanceof Node){ $courseIdFromNodeId = substr($_SESSION['sess_id_node'], 0, strpos($_SESSION['sess_id_node'], '_')); $sess_courseObj = read_course($courseIdFromNodeId); if (ADA_Error::isError($sess_courseObj)) { unset($_SESSION['sess_courseObj']); $invalid_course = TRUE; } else { if ($sess_userObj instanceof ADAGuest && !$sess_courseObj->getIsPublic()) { unset($_SESSION['sess_courseObj']); $invalid_course = TRUE; } else { $_SESSION['sess_courseObj'] = $sess_courseObj; $_SESSION['sess_id_course'] = $courseIdFromNodeId; } } } elseif ($id_course !== FALSE) { $sess_courseObj = read_course($id_course); if (ADA_Error::isError($sess_courseObj)) { unset($_SESSION['sess_courseObj']); $invalid_course = TRUE; } else { if ($sess_userObj instanceof ADAGuest && !$sess_courseObj->getIsPublic()) { unset($_SESSION['sess_courseObj']); $invalid_course = TRUE; } else { $_SESSION['sess_courseObj'] = $sess_courseObj; $_SESSION['sess_id_course'] = $id_course; } } } elseif ($sess_id_course !== FALSE) { $sess_courseObj = read_course($sess_id_course); if (ADA_Error::isError($sess_courseObj)) { unset($_SESSION['sess_courseObj']); $invalid_course = TRUE; } else { if ($sess_userObj instanceof ADAGuest && !$sess_courseObj->getIsPublic()) { unset($_SESSION['sess_courseObj']); $invalid_course = TRUE; } else { $_SESSION['sess_courseObj'] = $sess_courseObj; $_SESSION['sess_id_course'] = $sess_courseObj->getId(); } } } else { unset($_SESSION['sess_courseObj']); $invalid_course = TRUE; } /** * @author giorgio 18/mag/2015 * * Could be that a non-student has request a course from * the default tester in a multiprovider environment * Check this before giving up an marking the course as invalid */ if (MULTIPROVIDER && $id_profile != AMA_TYPE_STUDENT && $invalid_course === true && ($id_course !== false || $sess_id_course !== false)) { $invalid_course = checkAndSetPublicTester('course', $id_course !== false ? $id_course : $sess_id_course); if ($invalid_course === false) { $invalid_node = false; $sess_courseObj = $_SESSION['sess_courseObj']; // SESSION set by checkAndSetPublicTester } } } else { unset($_SESSION['sess_courseObj']); } /** * If in a valid NON PUBLIC course and user is student or tutor * and * $_SESSION['sess_id_course'] (that is the course_id the user is going into) * IS NOT EQUAL TO * $sess_id_course (that is the course_id the user is coming form) * * The user has clicked a cross course link, and is handled by unsetting the * $_SESSION['sess_id_course_instance'] and looking for a course instance * to which the user is subscribed. * */ if ($invalid_course === FALSE && $invalid_node === FALSE && isset($sess_courseObj) && !$sess_courseObj->getIsPublic() && in_array($sess_userObj->getType(), array(AMA_TYPE_STUDENT, AMA_TYPE_TUTOR)) && is_numeric($sess_id_course) && intval($_SESSION['sess_id_course']) !== intval($sess_id_course)) { /** * unset sess_id_course_instance */ unset($_SESSION['sess_id_course_instance']); /** * Try to find an instance of target course where used is subscribed */ $getAll = true; /** * Need to get instance the user is allowed to browse, based on user type */ switch ($sess_userObj->getType()) { case AMA_TYPE_STUDENT: $instances = $dh->get_course_instance_for_this_student_and_course_model($sess_userObj->getId(), $_SESSION['sess_id_course'], $getAll); break; case AMA_TYPE_TUTOR: $instances = $dh->get_course_instance_for_this_student_and_course_model($sess_userObj->getId(), $_SESSION['sess_id_course'], $getAll); if (AMA_DB::isError($instances) || !is_array($instances) || count($instances) <= 0) { $instances = array(); } $tutorInstances = $dh->get_tutors_assigned_course_instance($sess_userObj->getId(), $_SESSION['sess_id_course'], $sess_userObj->isSuper()); if (!AMA_DB::isError($tutorInstances) && is_array($tutorInstances) && count($tutorInstances) > 0) { /** * the returned array is array[id_tutor]=>array[key]=>array['id_istanza_corso'] * and needs to be converted to reflect the structre returned in student case */ foreach ($tutorInstances[$sess_userObj->getId()] as $tutorInstance) { $instances[]['id_istanza_corso'] = $tutorInstance['id_istanza_corso']; } } break; } if (!AMA_DB::isError($instances) && count($instances) > 0) { if (count($instances) == 1) { /** * User is subscribed to one instance only, good! * Set the $target_course_instance var and proceed */ $target_course_instance = $instances[0]['id_istanza_corso']; } else { if (count($instances) > 1 && !isset($_REQUEST['id_course_instance'])) { /** * If there's more than one instance, must build an array of * found instances to ask the user to select one. * * This array is returned in the 'course' key of the returned * array and so $invalid_course must be populated accordingly. * * The node that was requested is returned in the 'node' key of * the returned array and so $invalid_node must be populated. */ foreach ($instances as $instance) { $invalid_course[] = $instance['id_istanza_corso']; $invalid_node = $_SESSION['sess_id_node']; } } else { if (isset($_REQUEST['id_course_instance'])) { $target_course_instance = $_REQUEST['id_course_instance']; } } } } else { /** * Mark the course as invalid, and unset session var */ $invalid_course = TRUE; unset($_SESSION['sess_id_course']); } } /* * Course_instance object */ if (in_array('course_instance', $thisUserNeededObjAr)) { /* * Se ci troviamo nel tester pubblico, allora non dobbiamo leggere un'istanza corso * dato che non ce ne sono. */ if (!$invalid_course && !$sess_courseObj->getIsPublic()) { if (isset($target_course_instance)) { $id_course_instance = DataValidator::is_uinteger($target_course_instance); } else { if (isset($_REQUEST['id_course_instance'])) { $id_course_instance = DataValidator::is_uinteger($_REQUEST['id_course_instance']); // FIXME: qui ci va $_REQUEST['id_course_instance'] } else { $id_course_instance = false; } } $sess_id_course_instance = isset($_SESSION['sess_id_course_instance']) ? DataValidator::is_uinteger($_SESSION['sess_id_course_instance']) : false; if ($id_course_instance !== FALSE) { $course_instanceObj = read_course_instance_from_DB($id_course_instance); if (ADA_Error::isError($course_instanceObj)) { $invalid_course_instance = TRUE; } else { $UserType = $sess_userObj->getType(); switch ($sess_userObj->getType()) { case AMA_TYPE_STUDENT: $studentLevel = $dh->_get_student_level($sess_id_user, $id_course_instance); if (AMA_DataHandler::isError($studentLevel)) { $invalid_course_instance = TRUE; } break; case AMA_TYPE_TUTOR: if (!$sess_userObj->isSuper() && $course_instanceObj->getServiceLevel() != ADA_SERVICE_TUTORCOMMUNITY) { $tutorsInstance = $dh->course_instance_tutor_get($id_course_instance, $number = 2); if (AMA_DataHandler::isError($tutorsInstance)) { $invalid_course_instance = TRUE; } elseif (!in_array($sess_id_user, $tutorsInstance)) { $invalid_course_instance = TRUE; } } break; default: // $invalid_course_instance = TRUE; break; } if (!$invalid_course_instance) { $_SESSION['sess_id_course_instance'] = $id_course_instance; $sess_id_course_instance = $_SESSION['sess_id_course_instance']; } } } elseif ($sess_id_course_instance !== FALSE) { $instanceIdRequired = array(); if (isset($_SESSION['sess_id_node']) && !$invalid_node) { // if ($nodeObj instanceof Node) { // required a node $instanceIdRequired[] = isset($dataHa['instance']) ? $dataHa['instance'] : null; if ($instanceIdRequired[0] == 0) { // the node is NOT a note $field_list_ar = array(); if (isset($_SESSION['sess_id_course']) && !$invalid_course) { $courseIdRequired = $_SESSION['sess_id_course']; $InstanceIdList = $dh->course_instance_get_list($field_list_ar, $courseIdRequired); if (AMA_DataHandler::isError($InstanceIdList) || count($InstanceIdList) == 0) { $invalid_course_instance = TRUE; } } else { $invalid_course_instance = TRUE; } $instanceIdRequired = array(); foreach ($InstanceIdList as $InstanceId) { array_push($instanceIdRequired, $InstanceId[0]); } } // end if NOTE } elseif ($sess_courseObj instanceof Course) { $courseIdRequired = $sess_courseObj->id; $InstanceIdList = $dh->course_instance_get_list(array(), $courseIdRequired); if (AMA_DataHandler::isError($InstanceIdList) || count($InstanceIdList) == 0) { $invalid_course_instance = TRUE; } $instanceIdRequired = array(); foreach ($InstanceIdList as $InstanceId) { array_push($instanceIdRequired, $InstanceId[0]); } } // var_dump($instanceIdRequired,$sess_id_course_instance); $UserType = $sess_userObj->getType(); switch ($UserType) { case AMA_TYPE_STUDENT: case AMA_TYPE_TUTOR: if (!in_array($sess_id_course_instance, $instanceIdRequired)) { $invalid_course_instance = TRUE; } break; case AMA_TYPE_SWITCHER: case AMA_TYPE_AUTHOR: default: break; } //end switch UserType $course_instanceObj = read_course_instance_from_DB($sess_id_course_instance); if (ADA_Error::isError($course_instanceObj)) { $course_instanceObj->handleError(); } $_SESSION['sess_id_course_instance'] = $sess_id_course_instance; } else { $invalid_course_instance = TRUE; } } //end isUserBrowsingThePublicTester } // end if in_array /* * Check if current user is a ADAGuest user and that he/she has requested * a public course instance. */ // // if(in_array('user', $neededObjAr[$user_type]) && in_array('course_instance', $neededObjAr[$user_type])) { // if(!$invalid_user && $sess_userObj instanceof ADAGuest) { // if ($invalid_course_instance || $course_instanceObj->status != ADA_COURSEINSTANCE_STATUS_PUBLIC) { // $guest_user_not_allowed = TRUE; // } // } // } // TODO: controllo livello utente /* * controllare che sia settato $sess_user_level e che il valore sia tra 0 e * ADA_MAX_USER_LEVEL */ $parm_errorHa = array('session' => $invalid_session, 'user' => $invalid_user, 'user_level' => $invalid_user_level, 'course' => $invalid_course, 'course_instance' => $invalid_course_instance, 'node' => $invalid_node, 'guest_user_not_allowed' => $guest_user_not_allowed); return $parm_errorHa; }
echo "<tr><td title='Окончание в " . date("H:i", $v[1][totime]) . "'>" . date("d.m.Y H:i", $k * 1) . "</td>"; foreach ($v as $m => $vv) { if (!$user[perm] && strpos($hidden, ",{$m},") !== false) { continue; } if ($vv[userID]) { if ($user[userID] == $vv[userID]) { $color = "green"; $text = "Забронировано"; if ($user[perm] == 1) { $nowu = read_user("userID", $vv[userID]); $text .= " <a href='/action.php?action=cancel_buy&return=1&planID={$vv['planID']}' onclick='if (!confirm(\"Действительно отменить бронь и вернуть деньги?\")) return false;' class='nodecor'><img class='button' src='img/del.png' title='Отменить с возвратом средств'></a>"; } } else { $color = "pink"; $nowu = read_user("userID", $vv[userID]); $text = "Забронировано<br>{$nowu['fio']} {$nowu['room']}<br>"; if ($user[perm] == 1) { $text .= "<a href='/index.php?page=edit_user&userID={$vv['userID']}' class='nodecor'><img class='button' src='img/user.png' title='Профиль'></a>\n\t\t\t\t\t\t\t<a href='/index.php?page=user_pay&userID={$vv['userID']}' class='nodecor'><img class='button' src='img/rouble.png' title='Изменить баланс'></a>\n\t\t\t\t\t\t\t<a href='/action.php?action=cancel_buy&return=0&planID={$vv['planID']}' onclick='if (!confirm(\"Действительно отменить бронь и НЕ ВЕРНУТЬ деньги?\")) return false;' class='nodecor'><img class='button' src='img/cancel.png' title='Отменить без возврата средств'></a>\n\t\t\t\t\t\t\t<a href='/action.php?action=cancel_buy&return=1&planID={$vv['planID']}' onclick='if (!confirm(\"Действительно отменить бронь и вернуть деньги?\")) return false;' class='nodecor'><img class='button' src='img/del.png' title='Отменить с возвратом средств'></a>"; } } } else { if ($vv[fromtime] < time()) { $color = "yellow"; $text = "Поздно"; } else { $color = "#B1FF92;"; $text = "<a href='index.php?page=buy&k={$nowday}&q={$j}&m={$m}' title='Забронировать и оплатить'>Свободно</a>"; } } echo "<td style='min-width: 100px; text-align: center; background-color: {$color};'>{$text}</td>";
function write_application($user_id, $form_data) { global $DB; $user = read_user($user_id); // Contact details $applicant = read_applicant($user_id, true); // Profile & course must exist // Initialise the new record $record = new stdClass(); $record->id = 0; $record->userid = $user_id; // Contact details $record->title = $applicant->title; $record->firstname = $user->firstname; $record->lastname = $user->lastname; $record->address_1 = $applicant->address_1; $record->address_2 = $applicant->address_2; $record->address_3 = $applicant->address_3; $record->town = $applicant->town; $record->domicile_code = $applicant->domicile_code; $record->county = $applicant->county; $record->postcode = $applicant->postcode; $record->phone = $user->phone1; $record->email = $user->email; // Profile $record->birthdate = $applicant->birthdate; $record->nationality_code = $applicant->nationality_code; $record->nationality = $applicant->nationality; $record->p16school = $applicant->p16school; $record->p16schoolperiod = $applicant->p16schoolperiod; $record->p16fe = $applicant->p16fe; $record->p16feperiod = $applicant->p16feperiod; $record->training = $applicant->training; $record->trainingperiod = $applicant->trainingperiod; $record->prof_level = $applicant->prof_level; $record->prof_award = $applicant->prof_award; $record->prof_date = $applicant->prof_date; $record->emp_place = $applicant->emp_place; $record->emp_area = $applicant->emp_area; $record->emp_title = $applicant->emp_title; $record->emp_prof = $applicant->emp_prof; $record->prof_reg_no = $applicant->prof_reg_no; if ($applicant->criminal_record == '1') { // '1' = yes, '2' = no $record->criminal_record = '1'; // Yes } else { $record->criminal_record = '0'; // No } // Course $record->course_code = $applicant->course_code; $record->course_name = $applicant->course_name; $record->course_date = $applicant->course_date; $record->statement = $applicant->statement; $course = read_course_record($applicant->course_code); if ($course->supplement != '') { // There should be supplementary data $record->supplement_data = $applicant->supplement_data; } // Final details $record->self_funding = $form_data->self_funding; // $record->manager_email = $form_data->email; if (isset($form_data->declaration)) { // Only set if checked $record->declaration = 1; } else { $record->declaration = 0; } $record->application_date = time(); return $DB->insert_record('local_obu_application', $record); // The remaining fields will have default values }
function buy_sms($userID, $nowday, $quant, $mashine, $remembers) { $user = read_user("userID", $userID); $prices = array(0, 100, 200, 300, 400); $ok = array(); $plan = read_plan_day($nowday); $tonowday = $nowday + 3600 * 24; foreach ($plan as $k => $v) { if ($k < $nowday) { continue; } if ($k > $tonowday) { break; } if ($v[$mashine]) { $ok[] = $v[$mashine]; } } foreach ($remembers as $rem) { $ch = curl_init("http://sms.ru/sms/send"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POSTFIELDS, array("api_id" => "1cf27b49-8e99-6e44-45e7-b982dd8e5280", "to" => $user[phone], "text" => iconv("windows-1251", "utf-8", "Стирка " . ($rem[before] == 1 ? "начинается" : "заканчивается") . " через " . $rem[min] . " минут. " . date("d.m.Y H:i", $rem[before] == 1 ? $ok[$quant][fromtime] : $ok[$quant][totime])), "time" => ($rem[before] == 1 ? $ok[$quant][fromtime] : $ok[$quant][totime]) - $rem[min] * 60, "from" => "Stiralka1", "partner_id" => 5932)); $body = curl_exec($ch); curl_close($ch); } user_pay($userID, -$prices[count($remembers)], "Оплата СМС оповещений для кванта времени с " . date("d.m.Y H:i:s", $ok[$quant][fromtime]) . " по " . date("d.m.Y H:i:s", $ok[$quant][totime])); }
/** * save test's data (e.g. points earned, end time, level gained, etc.) * send a message to tutor and switcher when user reaches max course's level * set course subscription to complete * * @access protected * * @return returns true if test data is saved, false otherwise */ protected function saveTest() { $dh = $GLOBALS['dh']; $r = parent::saveTest(); $sess_id_course = $_SESSION['sess_id_course']; $sess_id_course_instance = $_SESSION['sess_id_course_instance']; if ($this->id_istanza == 0 || $this->id_istanza == NULL) { $this->id_istanza = $sess_id_course_instance; } if ($r) { //check for barrier and conseguent level up if ($this->barrier) { $level_gained = null; if (!is_null($r['min_barrier_points']) && $r['points'] >= $r['min_barrier_points']) { $level = $dh->_get_student_level($_SESSION['sess_id_user'], $this->id_istanza); if ($level < $this->livello) { $level = $this->livello; } if ($dh->set_student_level($this->id_istanza, array($_SESSION['sess_id_user']), $level)) { $level_gained = $level; $res = $dh->test_saveTest($r['id_history_test'], $r['tempo_scaduto'], $r['points'], $r['repeatable'], $r['min_barrier_points'], $level_gained); if (is_object($res) && get_class($res) == 'AMA_Error') { $this->_onSaveError = true; $this->rollBack(); return false; } //Send message to switcher and tutor when the user reaches max course's level //Set course subscription to complete $userObj = read_user($_SESSION['sess_id_user']); $max_level = $dh->get_course_max_level($sess_id_course); if ($level >= $max_level) { // se è l'ultimo esercizio (ovvero se il livello dello studente è il massimo possibile) // e l'esercizio è di tipo sbarramento // 1. cambia lo stato dell'iscrizione dello studente all'istanza corso /** * @author giorgio disabled on 12/nov/2014 completion is now * handled using modules/service-complete module */ // $dh->course_instance_student_subscribe($_SESSION['sess_id_course_instance'], $_SESSION['sess_id_user'], ADA_SERVICE_SUBSCRIPTION_STATUS_COMPLETED, $level); /* // 2. genera il messaggio da inviare allo switcher $tester = $userObj->getDefaultTester(); $tester_dh = AMA_DataHandler::instance(MultiPort::getDSN($tester)); $tester_info_Ar = $dh->get_tester_info_from_pointer($tester); // common? $tester_name = $tester_info_Ar[1]; $switchers_Ar = $tester_dh->get_users_by_type(array(AMA_TYPE_SWITCHER)); if (AMA_DataHandler::isError($switchers_Ar) || !is_array($switchers_Ar)) { // ?? } else { $switcher_id = $switchers_Ar[0]; // // FIXME: only the first switcher per provider ! if ($switcher_id) { $switcher = $dh->get_switcher($switcher_id); if (!AMA_DataHandler::isError($switcher)) { // prepare message to send $message_ha['destinatari'] = $switcher['username']; $message_ha['titolo'] = translateFN("Completamento corso") . "<br>"; // $message_ha['testo'] = $correttore->getMessageForTutor($user_name, $exercise); // FIXME should be a function of ExerciseCorrectionFactory?? $message_ha['testo'] = translateFN("Il corsista") . " $user_name " . translateFN("ha terminato il corso con id") . " " . $sess_id_course . "/" . $sess_id_course_instance; $message_ha['data_ora'] = "now"; $message_ha['tipo'] = ADA_MSG_SIMPLE; $message_ha['priorita'] = 1; $message_ha['mittente'] = $user_name; $mh = new MessageHandler(); $mh->send_message($message_ha); } } } // genera il messaggio da inviare al tutor // codice precedente $tutor_id = $dh->course_instance_tutor_get($sess_id_course_instance); if (AMA_DataHandler::isError($tutor_id)) { //? } // only one tutor per class if ($tutor_id) { $tutor = $dh->get_tutor($tutor_id); if (!AMA_DataHandler::isError($tutor)) { // prepare message to send $message_ha['destinatari'] = $tutor['username']; $message_ha['titolo'] = translateFN("Esercizio svolto da ") . $user_name . "<br>"; $message_ha['testo'] = $correttore->getMessageForTutor($user_name, $exercise); $message_ha['data_ora'] = "now"; $message_ha['tipo'] = ADA_MSG_SIMPLE; if ($course_completed) { $message_ha['tipo'] = ADA_MSG_MAIL; $message_ha['testo'].= translateFN("Il corsista") . " " . translateFN("ha terminato il corso con id") . " " . $sess_id_course . "/" . $sess_id_course_instance; } $message_ha['priorita'] = 1; $message_ha['mittente'] = $user_name; $mh = new MessageHandler(); $mh->send_message($message_ha); } } */ } // max level attained } } } } return true; }