本文整理汇总了PHP中Self::get_free_pass方法的典型用法代码示例。如果您正苦于以下问题:PHP Self::get_free_pass方法的具体用法?PHP Self::get_free_pass怎么用?PHP Self::get_free_pass使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Self
的用法示例。
在下文中一共展示了Self::get_free_pass方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: register_subscription
public static function register_subscription()
{
/* Controleren of alle vereiste velden ingevuld zijn. */
if (!empty($_POST['firstname']) && !empty($_POST['lastname']) && !empty($_POST['street']) && !empty($_POST['house_nr']) && !empty($_POST['zipcode']) && !empty($_POST['city']) && !empty($_POST['bank_account']) && !empty($_POST['email']) && !empty($_POST['passwd_sha512']) && !empty($_POST['passwd_conf_sha512'])) {
/* Kijken of minimaal een van de twee telefoonnummers ingevuld is. */
if (!empty($_POST['phone_home']) || !empty($_POST['phone_mob'])) {
/* Controleren of het bank rekening nummer een getal is. */
if (is_numeric($_POST['bank_account']) && strlen($_POST['bank_account']) == 6) {
/* Controleren of het huis nummer een getal is. */
if (is_numeric($_POST['house_nr'])) {
/* Controleren of het e-mailadres klopt. */
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
/* Kijken of beide ingevulde wachtwoorden overeen komen. */
if ($_POST['passwd_sha512'] == $_POST['passwd_conf_sha512']) {
/* Escape de heel $_POST array, en plaats het resultaat terug in $_POST. */
$_POST = Database::escape_array($_POST);
/* Select query uitvoeren op het ingevulde email. */
$check_mail = Database::query("SELECT id FROM customer WHERE email = '" . $_POST['email'] . "' LIMIT 1");
/* Kijken of de query is gelukt. */
if ($check_mail) {
/* Kijken of het email niet al bestaat. */
if ($check_mail->num_rows == 0) {
/* Haal minimaal bedrag op wat de klant moet kunnen betalen. */
$min_balance = Settings::get('citypark_subscription_month_cost') * Settings::get('citypark_register_min_balance');
/* Voor de zekerheid komma's vervangen met punten. */
$min_balance = str_replace(',', '.', $min_balance);
/* Bij de bank controlleren of de gebruiker het minimum bedrag kan betalen. */
if (Bank_api::check($_POST['bank_account'], $min_balance)) {
/* Het nieuwe wachtwoord aanmaken. */
$passwd = password_hash($_POST['passwd_sha512'], PASSWORD_DEFAULT, ['cost' => Settings::get('login_passwd_cost')]);
/* Het nieuwe wachtwoord base64 encoderen. */
$passwd = base64_encode($passwd);
/* Insert query voor een customer. */
$insert_customer = Database::query("INSERT INTO customer (username, password, email, active, register_date) VALUES ('', '" . $passwd . "', '" . $_POST['email'] . "', 0, NOW())");
/* Controleren of de query is gelukt. */
if ($insert_customer) {
/* Haal het customer ID op. */
$customer_id = Database::insert_id();
/* Insert query voor customer info. */
$insert_customer_info = Database::query("INSERT INTO customer_info (customer_id, firstname, inserts, lastname, street, house_nr, house_nr_add, city, zipcode, phone_home, phone_mob, bank_account) VALUES (" . $customer_id . ", '" . $_POST['firstname'] . "', " . (!empty($_POST['inserts']) ? '\'' . $_POST['inserts'] . '\'' : 'NULL') . ", '" . $_POST['lastname'] . "', '" . $_POST['street'] . "', " . $_POST['house_nr'] . ", " . (!empty($_POST['house_nr_add']) ? '\'' . $_POST['house_nr_add'] . '\'' : 'NULL') . ", '" . $_POST['city'] . "', '" . $_POST['zipcode'] . "', '" . $_POST['phone_home'] . "', '" . $_POST['phone_mob'] . "', " . $_POST['bank_account'] . ")");
/* Controleren of de insert query is gelukt. */
if ($insert_customer_info) {
/* Proberen twee passen op te halen. */
try {
/* Haal de passen op. */
$pass_array = Self::get_free_pass();
} catch (Exception $e) {
/* Foutmelding gevangen, verwijder de customer uit de database. */
Database::query("DELETE FROM customer WHERE id = " . $customer_id);
Database::query("DELETE FROM customer_info WHERE customer_id = " . $customer_id);
/* Gooi foutmelding door. */
throw new Exception($e->getMessage());
}
/* Maak een nieuw abonneenummer. */
$abonneenummer = Self::new_sub_number();
/* Insert query voor abonnee. */
$insert_subscription = Database::query("INSERT INTO subscription (customer_id, sub_number, start_date) VALUES (" . $customer_id . ", " . $abonneenummer . ", NOW())");
/* Kijken of de insert gelukt is. */
if ($insert_subscription) {
/* Haal het abonnee ID op. */
$abonnee_id = Database::insert_id();
/* Maak een random string aan met 96 karakters. */
$activate_key_db = Functions::random_string(96);
/* Zet hier het account id voor. */
$activate_key = $customer_id . '-' . $activate_key_db;
/* Base64 encode de activate keys. */
$activate_key = base64_encode($activate_key);
$activate_key_db = base64_encode($activate_key_db);
/* Update de customer, en geef de gebruikersnaam het zelfde als het abonneenummer en sla de activate key op. */
$update_username = Database::query("UPDATE customer SET username = '" . $abonneenummer . "', activate_key = '" . Database::escape($activate_key_db) . "' WHERE id = " . $customer_id);
/* Kijken of de update query gelukt is. */
if ($update_username) {
/* Update de twee RFID kaarten en koppel ze aan het abonnement. */
$update_card_one = Database::query("UPDATE rfid_card SET subscription_id = " . $abonnee_id . ", type_card = 'subscription', in_use = 1, blocked = 0, blocked_reason = NULL, blocked_date = NULL WHERE id = " . Database::escape($pass_array[0]));
/* Kijken of de update query is gelukt. */
if ($update_card_one) {
/* Update de tweede kaart. */
$update_card_two = Database::query("UPDATE rfid_card SET subscription_id = " . $abonnee_id . ", type_card = 'guest', in_use = 1, blocked = 0, blocked_reason = NULL, blocked_date = NULL WHERE id = " . Database::escape($pass_array[1]));
/* Kijken tweede update query is gelukt. */
if ($update_card_two) {
/* Betaling maken, en kijken of deze is gelukt. */
if (Payment::pay_subscription($abonneenummer, 1, $_POST['bank_account'], true)) {
/* Query om permissies aan account toe te voegen. */
$insert_permission = Database::query("INSERT INTO permission_customer_in_group (customer_id, group_id) VALUES (" . $customer_id . ", " . (int) Database::escape(Settings::get('citypark_standard_group')) . ")");
if ($insert_permission) {
/* Probeer het onderstaande. */
try {
/* Probeer een mail te sturen. */
Email::send_mail($_POST['email'], 'CityPark - Abonnoment aanvraag', 'Beste ' . $_POST['firstname'] . ' ' . $_POST['lastname'] . ',<br /><br />Op ' . Date('d-m-Y \\o\\m H:i:s') . ' heeft u succesvol een abonnement aangevraagd bij CityPark.<br /><br />Er zijn twee parkeerpassen aan uw abonnement gekoppeld en worden zo snel mogelijk naar uw adres gestuurt. De parkeerpassen die aan uw abonnement zijn gekoppeld hebben de nummers:<br /><i>Abonneepas #' . $pass_array[0] . '</i><br /><i>Gastenpas #' . $pass_array[1] . '</i><br /><br />Om toegang te krijgen tot het klantenpaneel, dient u het account, die aangemaakt is tijdens het aanvragen van het abonnement, te activeren. U kunt uw account activeren door op de onderstaande link te klikken.<br /><a href="' . Config::$base_href . '?activate=' . $activate_key . '">Klik hier om uw account te activeren</a><br /><br />Het gebruikersnaam van uw account is <strong>' . $abonneenummer . '</strong>, en het wachtwoord heeft u zelf ingevuld.<br /><br />Het factuur van uw eerste maandafschiften is te vinden op het klantenpaneel.<br /><br />Uw abonnement is per direct in gegaan, en u kunt de parkeerpassen direct gebruiken wanneer u deze ontvangen heeft. Indien de parkeerpassen verloren raken of gestolen zijn, kunt u deze blokkeren in het klantenpaneel.');
/* Registratie gelukt, return een true. */
return true;
} catch (Exception $e) {
/* Foutmelding gevangen, gooi deze door. */
throw new Exception($e->getMessage());
}
} else {
/* Query mislukt, maar omdat de betaling wel gelukt is, laten we het abonnement in de database staan. */
/* Gooi foutmelding. */
throw new Exception('Er is wat fout gegaan bij het toevoegen van de rechten op uw account. Neem a.u.b. contact op.<br />' . Database::error());
}
//.........这里部分代码省略.........