public function msgHTML($message, $basedir = '', $advanced = false) { if (empty($this->to[0][0])) { if ($this->exceptions) { throw new phpmailerException('E-mail not insert'); } $this->ErrorInfo = 'E-mail not insert'; return false; } $key = time(); $hash = myHash($this->to[0][0] . preg_replace('#^.{2}(.+).{2}$#u', "\\1", $key)); $unsubscribe = 'https://school-php.com/login/unsubscribe?email=' . urlencode($this->to[0][0]) . '&key=' . urlencode($key) . '&hash=' . urlencode($hash); $this->addCustomHeader("List-Unsubscribe", '<mailto:unsubscribe@school-php.com>, <' . $unsubscribe . '>'); $this->addAttachment('./skins/img/logo.png'); $this->addAttachment('./skins/img/edu4.png'); $this->addAttachment('./skins/img/mailbg.png'); $message = '<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>' . hc($this->Subject) . '</title> </head> <body> <div style="background-color:#eee; padding:20px;"> <div style="background:white url(https://school-php.com/skins/img/mailbg.png) no-repeat top right;border: 1px solid #dfdfdf;width: 560px;padding: 0px 25px 25px;margin: 0 auto;"> <div role="banner" style="padding:15px;border-bottom: 1px solid #eee;"><h1 style="margin-bottom:0px; padding-bottom:0px;"><img src="https://school-php.com/skins/img/logo.png" alt="Школа программирования"><br>Школа PHP Программирования</h1></div> <div role="main" style="margin: 30px 10px 50px 10px; font-size: 14px; line-height: 1.5;"> ' . $message . ' </div> <div role="footer" style="padding-top:10px; border-top: 1px solid #eee;"> <p> Автоматическая система рассылок school-php.com!<br> Вы можете отписаться от писем пройдя по следующей ссылке:<br> <a href="' . $unsubscribe . '">' . $unsubscribe . '</a> </p> </div> </div> <div align="center"><img src="https://school-php.com/skins/img/edu4.png"></div> </div> </body> </html>'; return parent::msgHTML($message, $basedir, $advanced); }
function show_table($connection) { $result = mysql_query('SELECT * FROM logininfo', $connection); echo "<div id='table'>\n\t\t<table border='1'>\n\t\t\t<tr>\n\t\t\t<th>UserID</th>\n\t\t\t<th>LoginName</th>\n\t\t\t<th>Password</th>\n\t\t\t</tr>"; while ($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['userID'] . "</td>"; echo "<td>" . $row['loginname'] . "</td>"; if ($row['loginname'] == $_SESSION['loginname'] && $row['password'] == myHash($_SESSION['password'])) { echo "<td>" . $row['password'] . "</td>"; } echo "</tr>"; } echo "</table></div>"; }
protected function hashTable() { if ($this->table) { return $this->table; } if (isset($this->structure['db']['hash'])) { $seed = $this->seed; if (!$seed) { $seed = $this->data; } return sprintf($this->structure['db']['hash']['format'], myHash($seed[$this->structure['db']['hash']['by']], $this->structure['db']['hash']['num'])); } else { return $this->structure['db']['table']; } }
{ $res = fopen($_SERVER['DOCUMENT_ROOT'].'/parser_meta_pattern/user_data/'.$_COOKIE['PHPSESSID'].'/'.$domain.'/sitemap.xml', 'r'); while($res and !feof($res)) { $str = fgets($res); if(preg_match('#<loc>([^<]+)</loc>#i', $str, $matches)) { $uri = explode('/', $matches[1], 4); $uri = '/'.$uri[3]; $count ++; if($count >= $min_number_link and $count < $max_number_link ) { $return['links'][] = $matches[1]; $arLinks[] = Array( 'link' => $uri, 'hash' => myHash($uri), ); /*$query = 'INSERT INTO `pages` (`site_id`, `uri`, `hash`) values ("'.$_SESSION['site_id'].'", "'.$uri.'", "'.myHash($uri).'")'; if(!mysql_query($query)) echo mysql_error();*/ } elseif($count >= $max_number_link) { $arFileLink = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/parser_meta_pattern/user_data/'.$_COOKIE['PHPSESSID'].'/'.$domain.'/links.dat')); if(!is_array($arFileLink)) $arFileLink = Array(); $arLinks = serialize(array_merge($arFileLink, $arLinks)); file_put_contents($_SERVER['DOCUMENT_ROOT'].'/parser_meta_pattern/user_data/'.$_COOKIE['PHPSESSID'].'/'.$domain.'/links.dat', $arLinks); die(json_encode(array_merge($return, Array('count'=>($min_number_link+count($return['links'])))))); }
#Экранируем пост перед запросом в бд $_POST = ms($_POST); #Делаем запрос на проверку логина и пароля в бд $res = q("\n SELECT *\n FROM `users`\n WHERE `login` = '" . $_POST['login'] . "'\n AND `password` = '" . myHash($_POST['password']) . "'\n LIMIT 1\n "); # Если запись существует добавляем в сессию данные полученные из бд if (mysqli_num_rows($res)) { #Создаем массив для проверок на работоспособность аккаунта $user = mysqli_fetch_assoc($res); if ($user['active'] == 1) { #Если аккаунт активирован - авторизуем пользователя $_SESSION['user'] = $user; #Если пользователь пожелал чтобы его запомнили, то обновляем данные в бд и создаем хеш для куков if (!empty($_POST['auto'])) { q("\n UPDATE `users`\n SET\n `agent` = '" . $_SERVER['HTTP_USER_AGENT'] . "',\n `hash` = '" . myHash($_POST['login'] . $_POST['password'] . $_SESSION['user']['registration_date']) . "'\n "); #Добавляем куки setcookie('id', $_SESSION['user']['id'], time() + 36000, '/'); setcookie('hash', myHash($_POST['login'] . $_POST['password'] . $_SESSION['user']['registration_date']), time() + 36000, '/'); } } elseif ($user['active'] == 0) { #Аккаунт не активен $_SESSION['error'] = 'Вы не подтвердили свою почту. Проверьте свою почту и активируйте аккаунт</strong>'; } else { #Аккаунт забанен $_SESSION['error'] = '<strong>Вы забанены администратором. Обратитесь на почту ' . Core::$MAIL . '</strong>'; } } else { #Если пользователя с такими данными нету $err['bad'] = 'Некорректно введенны данные'; } } }
if (empty($_POST['password'])) { $errors['password'] = '******'; } elseif (mb_strlen($_POST['password']) < 5) { $errors['password'] = '******'; } if (empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $errors['email'] = 'Вы не заполнили email'; } if (!count($errors)) { $res = q("\n SELECT `id`\n FROM `users`\n WHERE `login` = '" . es($_POST['login']) . "'\n LIMIT 1\n "); if (mysqli_num_rows($res)) { $errors['login'] = '******'; } $res = q("\n SELECT `id`\n FROM `users`\n WHERE `email` = '" . es($_POST['email']) . "'\n LIMIT 1\n "); if (mysqli_num_rows($res)) { $errors['email'] = 'Такой email уже занят'; } } if (!count($errors)) { q("\n INSERT INTO `users` SET\n `login` = '" . es($_POST['login']) . "',\n `password` = '" . myHash($_POST['password']) . "',\n `email` = '" . es($_POST['email']) . "',\n `age` = '" . (int) $_POST['age'] . "',\n `hash` = '" . myHash($_POST['login'] . $_POST['age']) . "'\n "); $id = mysqli_insert_id($link); $_SESSION['regok'] = 'OK'; Mail::$to = $_POST['email']; Mail::$subject = 'Вы зарегистрировались на сайте'; Mail::$text = 'То пройдите по ссылке для активации вашего аккаунта:' . Core::$DOMAIN . 'index.php?module=cab&page=activate&id=' . $id . '&hash=' . myHash($_POST['login'] . $_POST['age']) . ' '; Mail::send(); header("Location: index.php?module=cab&page=registration"); exit; } }
<?php if (isset($_POST['email'], $_POST['hash'], $_POST['key'], $_POST['antixsrf'], $_SESSION['antixsrf']) && $_SESSION['antixsrf'] == $_POST['antixsrf'] && $_POST['hash'] == myHash($_POST['email'] . preg_replace('#^.{2}(.+).{2}$#u', "\\1", $_POST['key']))) { q("\n\t\tINSERT IGNORE INTO `fw_unsubscribe` SET\n\t\t`email` = '" . es($_POST['email']) . "'\n\t"); $_SESSION['info'] = 'Ваш E-mail: <span style="font-weight:bold">' . hc($_POST['email']) . '</span> внесён в список заблокированных для уведомлений'; redirect('this'); }
//Дергаем функцию для проверки на ошибки и присваиваем массив $err $err = err($_POST); #Если ошибки отсутствуют обращаемся к бд if (!count($err)) { #Проверяем имеется ли данный логин в базе $login = q("\n SELECT *\n FROM `users`\n WHERE `login` = '" . ms($_POST['login']) . "'\n LIMIT 1\n "); if (mysqli_num_rows($login)) { $err['login'] = '******'; } #Проверяем имеется ли данное мыло в базе $email = q("\n SELECT *\n FROM `users`\n WHERE `email` = '" . ms($_POST['email']) . "'\n LIMIT 1\n "); if (mysqli_num_rows($email)) { $err['email'] = 'Пользователь с таким email уже существует'; } } #Если нету ошибок if (!count($err)) { #Экранируем массив $_POST $_POST = ms($_POST); #Если нету вносим нового пользователя q("\n INSERT\n INTO `users`\n SET\n `login` = '" . $_POST['login'] . "',\n `password` = '" . myHash($_POST['password']) . "',\n `email` = '" . $_POST['email'] . "',\n `age` = '" . $_POST['age'] . "',\n `hash` = '" . myHash(md5($_POST['login'] . $_POST['email'])) . "',\n `registration_date` = NOW()\n "); #Формируем и отправляем активационное письмо на указанный ранее адрес Mail::$to = $_POST['email']; Mail::$subject = 'Подтвердите регистрацию аккаунта на сайте' . Core::$DOMAIN; Mail::$message = 'Для подтверждения регистрации перейдите по ссылке ' . Core::$DOMAIN . 'index.php?module=cab&page=active&code=' . myHash(md5($_POST['login'] . $_POST['email'])); Mail::send_mail(); $_SESSION['regok'] = 'OK'; header("Location: index.php?module=cab&page=reg"); exit; } }