<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

В курсе разобрана вся теория по структуре движка: как всё устроено, какие должны быть объекты, какая у них иерархия и как они взаимодействуют между собой.

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Создаём сокращатель URL. Часть 3.

Создаём сокращатель URL. Часть 3.

Привет всем и это последняя статья из цикла по созданию сокращателя URL. В прошлой статье мы создали класс для работы, а сегодня нам осталось лишь его использовать по назначению.

Откроем файл shorten.php и пропишем следующее:

<?php
  session_start();
  require_once "classes/shortener.php";

  $s = new Shortener();

  if(isset($_POST['url'])) {
   $url = $_POST['url'];

   if($code = $s->makeCode($url)) {
    $_SESSION['feedback'] = "Готово! Вот ваша ссылка: <a href='http://localhost/test/$code'>http://localhost/test/$code</a>";
   } else {
    $_SESSION['feedback'] = "Ошибка! Возможно, некорректный URL?";
   }
  }
  header('Location: index.php');
?>

Теперь откроем файл index.php с нашей разметкой и немного его изменим:

<?php
  session_start();
?>
<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Сокращатель URL</title>
  <link rel="stylesheet" href="css/style.css">
</head>
<body>
  <div class="container">
   <h1 class="title">Сокращатель URL</h1>
<?php
  if(isset($_SESSION['feedback'])) {
   echo "<p>".$_SESSION['feedback']."</p>";
   unset($_SESSION['feedback']);
  }
?>
   <form action="shorten.php" method="post">
    <input type="url" name="url" placeholder="Введите URL" autocomplete="off">
    <input type="submit" value="Сократить">
   </form>
  </div>
</body>
</html>

Дальше redirect.php

<?php
  require_once "classes/shortener.php";

  if(isset($_GET['code'])) {
   $s = new Shortener();
   $code = $_GET['code'];
   if($url = $s->getUrl($code)) {
    header('Location: {$url}');
    exit();
   }
  }

  header('Location: index.php');
?>

Всё, что нам осталось, это файл .htaccess

RewriteEngine on
RewriteRule ^([a-z0-9]+)$ redirect.php?code=$1

Код сам говорит за себя, но всё-таки немного поясню. В файле shorten.php мы подключаем наш класс, создаём его объект и проверяем наличие url. Если он есть, то записываем в переменную, которую передаём в метод makeCode. Если метод makeCode возвращает код, то записываем в сессию нашу ссылку, иначе записываем туда ошибку, а в конце делаем редирект на главную страницу.

В файле index.php мы начинаем сессию и проверяем её наличие. Если она есть, то выводим значение и уничтожаем её.

В файле redirect.php мы проверяем наличие get параметра с кодом. Если есть, то создаём объект нашего класса, записываем код в переменную $code и передаём её методу getUrl. Если метод getUrl возвращает URL, то перекидываем туда и завершаем скрипт, иначе же перекидываем на главную страницу.

Сейчас, чтобы всё работало, нам нужно передавать ссылку такого вида:
http://localhost/test/index.php?code=1jsch/
что не очень-то удобно. Чтобы это исправить и сделать ЧПУ ссылку, мы прописываем регулярное выражение в файл .htaccess.

Вот и всё. Мы закончили создание нашего сокращателя URL. Хоть он получился и несложным, но, думаю, вы многое узнали и поняли, сможете ли написать его сами. Если нет, то значит вам ещё нужно тренироваться в написании php скриптов. Удачи!

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (6):

Nats Nats 08.02.2015 15:30:10

Здравствуйте. Полезная статья, спасибо! Только возник вопрос. Когда ссылка генерируется, то при клике на неё попадаешь на локалхост, как сделать так, чтобы переходя по ссылке сгенерированной пользователь переходил куда задумано? https://yadi.sk/i/4D8InSLqeYB2w

Ответить

alexandrdante alexandrdante 08.02.2015 15:54:41

выучить php,для начала =) А иначе и лезть не стоит. Это ведь не сервис для сокращения ссылок создаётся,а просто сокращатель ссылок. В коде localhost замените на нужный вам домен

Ответить

Nats Nats 08.02.2015 16:00:40

В том то и дело, что пробовал менять на тот домен, где этот скрипт, но все равно неверно! Если это просто сокращатель ссылок, то это значит, что он не должен работать?))

Ответить

alexandrdante alexandrdante 08.02.2015 17:27:39

а что не верно? не переадресовывает на сокращённую ссылку?)

Ответить

Nats Nats 08.02.2015 17:28:13

Да

Ответить

mininvit mininvit 16.08.2016 12:30:50

У меня тоже такая проблема. Все скопировал как тут, в бд все попадает, а редеректить не хочет. Это как всегда Михаил ошибся)

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.