Скрипт короткие ссылки на php и mysql - сокращение url

Для чего короткие ссылки - бывает пригождается на форумах, чате, блогах, и других коммуникативных сервисах, и чтобы не заполонять пол сообщения длинной ссылкой, сервис короткие ссылки укорачивает ссылку до мизерных размеров.

Это скрипт предназначен для переадресации с длинного uri на короткий с установленными выбранными функциями.

Как установить скрипт короткие ссылки

Для работы скрипта требуется php и база данных mysql.
Создать базу данных mysql, и в phpmyadmin импортировать дамп файл QuickLinks.sql. Залить файлы в архиве на сервер и отредактировать файл func.php прописав в нем данные для конекта к базе. Покрутить настройки index.php и запустить его.

php5,6 и ниже
php5.6 и выше, лучше 7
# Файлы:
.htaccess -       // для редиректа
func.php          // конект к mysql 
index.php         // основной файл
QuickLinks.sql    // дамп БД для импорта
script.js
style.css
        

Что умеет скрипт короткие ссылки:

Сам конфиг скрипта:

# php script config
setlocale(LC_TIME, "ru_RU.utf8");                                       
date_default_timezone_set('Europe/Moscow');                         # Временная зона
$_CONFIG['LOG_ERRORS'] = 0;                                         # Лог ошибок 
$_CONFIG['LOG_NEW_LINKS'] = 0;                                      # Лог новых ссылок
$_CONFIG['PASSWORD_ONOFF'] = 0;                                     # пароль включить/выключить 1/0
$_CONFIG['PASSWORD'] = '8631';                                      # пароль Front-end
$_CONFIG['inPW'] = '0981';                                          # пароль back-end
$_CONFIG['BAN_POST_URL'] = 'badDomain1.ru|badDomain2.com';          # Запрещенные домены
$_CONFIG['MAX_SYMBOL_LONG_URL'] = 4000;                             # максимум символов в длинным url, стандарт 4000.
$_CONFIG['MIN_SYMBOL_LONG_URL']= 8;                                 # минимум символов в длинном url (8 минимум)
$_CONFIG['MIN_SYMBOL_SHORT_URL'] = 3;                               # Минимум символов в коротком url 
$_CONFIG['MAX_SYMBOL_SHORT_URL'] = 40;                              # Максимум символов в коротком url
$_CONFIG['BAN_POST_SHORT_URL'] = 'xxx.html|fack';                   # Запрещенные короткие urlы 
$_CONFIG['SEND_HEADER_ARR'] = array('200 OK',                       # Отправляемые http заголовки
                                    '301 Moved Permanently',                    
                                    '302 Found',
                                    '303 See Other',
                                    "418 I'm a teapot");
$_CONFIG['SEND_HEADER_DEFAUL'] = 2;                                 # Отправляемый заголовок по дифолту (счет с нуля)
$_CONFIG['CLOCK_TIME_DEFAUL'] = 168;                                # Время хранения ссылки в часах по дифолту (неделя => 7 дней * 24 часа = 168 часов)
$_CONFIG['CLOCK_TIME_ARR'] = array( 1 => 'час',                     # Дополнительные пункты "Время хранения ссылки".
                                    24 => 'сутки',              
                                    168 => 'неделя',            
                                    744 => 'месяц',
                                    4463 => 'полгода',
                                    87600 => 'максимум');           # 10 лет
$_CONFIG['CLOCK_TIME_SORT'] = 3;                                    # разбивка списка переменной CLOCK_TIME_ARR
$_CONFIG['REDIR_DOMAIN']= array('domain1.ru','domain2.com');        # Список доменов по которым будет переадресация на длинную ссылку
$_CONFIG['URI_PROTOCOL_BAD'] = 'dns:|soldat:|ssh:|file:';           # запрещенные протоколы 
                                                                    # разрешенные протоколы:
$_CONFIG['URI_PROTOCOL_GOOD'] = 'cid:|crid:|data:|dav:|dict:|fax:|ftp:|go:|gopher:|h323:|http:|https:|im:|imap:|ldap:|mailto:|mid:|news:|nfs:|nntp:|pop:|pres:|rtsp:|tel:|telnet:|urn:|wais:|xmpp:|about:|aim:|bolo:|btc:|bzr:|callto:|chrome:|cvs:|daap:|ed2k:|ed2kftp:|feed:|fish:|git:|irc:|ircs:|lastfm:|ldaps:|magnet:|mms:|msnim:|rsync:|skype:|svn:|sftp:|smb:|sms:|steam:|unreal:|view-source:|vzochat:|webcal:|xfire:|ymsgr'; 

UPD: По просьбе накатал админку на коленке для примера.
Для входа введите адрес: www.domain.ru/script/?admin и введите пароль.


  1. # Влад22 11 октября 2018, 14:31
    Здравствуйте, подскажите пожалуйста в чем может быть проблема. Не создается в Базе запись. Сама База подключена правильно

    Спасибо
    1. # Телевизор 11 октября 2018, 17:01 (Комментарий был изменён)
      О какой версии идет речь?
      В самом начале index.php, есть режим отладки: смените с false на true и помониторте ошибки.
      1. # Влад22 11 октября 2018, 21:00
        Причина: на MySQL 5.7.21-0ubuntu0.16.04.1 не работает
        1. # Телевизор 11 октября 2018, 21:07
          Дык какую версию юзаете?
          1. # Влад22 11 октября 2018, 21:11
            v2.0
            1. # Телевизор 11 октября 2018, 22:08 (Комментарий был изменён)
              Гуд, у меня вообще марияДБ, а демка на MySql и все гуд — запросы одни и теже.
              скиньте ошибку лог а то не понятно так.
              1. # Влад22 11 октября 2018, 23:19
                Я немного некорректно написал. Об этом понял позже. Дело в том, что у меня на сервере работает высоконагруженный сайт и База настраивалась под него. Так что дело не в версии, а в индивидуальных настройках. На другом сервере ваш скрипт работает на УРА!!!

                Скажите, а какую роль выполняет «Эта [Кнопка] как рулетка.»?
                1. # Телевизор 12 октября 2018, 00:06
                  Очищает БД от не актуальных по времени хранения ссылок.
                  Цифры указывают количество ссылок в БД.
                  P.s чтобы не юзать крон, боты лазиющие по сайту сами активируют чистку.
                  1. # Влад22 12 октября 2018, 00:35
                    Аплодирую стоя!!! Весьма хитроумное решение.

                    Спасибо за скрипт
              2. # 55555 07 сентября 2018, 14:42 (Комментарий был изменён)
                Если ссылку не генерировать а просто нажать кнопку «ПОЛУЧИТЬ ССЫЛКУ» то получается сверху фигня, где подправить?
                1. # Телевизор 07 сентября 2018, 16:06
                  какая у Вас версия php?
                  1. # 55555 07 сентября 2018, 16:24 (Комментарий был изменён)
                    Я хотел убрать это-----> [Delete] Вернул на место, все заработало ) PHP 5.6 стоит, кака должна PHP 5.2 — 7.2?
                    1. # Телевизор 07 сентября 2018, 16:45
                      Она как раз под php 5.6.
                      В любом случае сегодня опубликую и для php7.
                2. # 55555 04 сентября 2018, 21:56
                  Не качается «Блокируется реклама!
                  Отключив блокировку рекламы, Вы сможете
                  бесплатно скачать файл с наших серверов.»
                  1. # Телевизор 05 сентября 2018, 01:26
                    Дык отключите блокировку рекламы в вашем браузере.
                    1. # 55555 05 сентября 2018, 07:12 (Комментарий был изменён)
                      Дык отключал в 3х браузерах и все равно ни с одного не скачал (((. Ха ха только что скачал на телефон, ссылка появилась. Браузер тотже что и на компе (яндекс) но рекламу в телефоне не отключал, магия…
                      1. # Телевизор 07 сентября 2018, 11:53
                        Прошу прощения, исправлено.
                  2. # ОЛЕ 28 марта 2018, 19:29
                    Проблема была в том, что нужно было свое доменное имя указать в $_CONFIG['REDIR_DOMAIN']= array().
                    Спасибо за скрипт)))!
                    1. # ОЛЕ 28 марта 2018, 19:03
                      Без входа в админку этот скрипт должен работать? Поскольку при попытке перейти в админку выдает оповещение, что «Учетная запись отключена администратором сервера».
                      Скрипт в меня тоже нормально не работает: выдает постоянно ошибку «Не удается получить доступ к сайту. ERR_NAME_RESOLUTION_FAILED»!
                      К тому же, последние три колонки в БД остаются пустыми
                      1. # Телевизор 28 марта 2018, 20:21 (Комментарий был изменён)
                        Без входа в админку этот скрипт должен работать
                        да.
                        Эти ошибки не как не связаны со скриптом, это уже траблы на стороне сервера или браузера.
                      2. # hi-cd 28 марта 2018, 12:41 (Комментарий был изменён)
                        Доброго времени суток! Скрипт коротких ссылок так и не удалось запустить. Редирект не работает, перекидывает на сайт первоисточник. [ссылка]
                        1. # Телевизор 28 марта 2018, 12:58 (Комментарий был изменён)
                          1) В файле index.php в первой строке включите вывод ошибок на экран, вместо
                          if (false) замените на if (true)
                          2) Как мне кажется у Вас не обрабатывается / не настроен .htaccess учитывая что скрипт Вы положили в дерикторию.
                          Попробуйте файл .htaccess положить в корень вашего домена и в самом файле .htaccess указать верный путь к скрипту
                          RewriteRule ^-(.*) ПАПКА/?redirLink=$1 [L]
                          В ведь ваш сайт при редиректе отдает страницу 404 — что означает не верно указанный путь, а путь должен быть к index.php скрипта, далее идет подключение к БД и выборка к переадресуемой ссылке.