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

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

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

Скачать скрипт короткие ссылки

PHP 5.6, PHP 7, PHP 8.1
БД: MariaDB, MySql
php5.6 и выше, лучше 7

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

  • Неограниченное количество доменов
  • QR коды для ссылок
  • Поддержка onion сайтов
  • Скрипт можно встраивать в другие проекты.
  • Задержка переадресации для рекламы
  • Выбор времени работоспособности ссылки
  • Готовая верстка под любые девайсы
  • Автоматическая очистка неактуальных ссылок
  • Шаблонная страница
  • Отслеживание количество переходов и др. данных.
  • Админка
  • Ведение логов
  • Списки разрешенных и запрещенных протоколов (http, ftp, skype, mailto ...)
  • Создание ссылок только по паролю
  • Свой короткий url
  • Выбор http заголовков
  • Черный список url длинных ссылок
  • Черный список url коротких ссылок
  • Код детально комментирован для корректировки
  • Много проверок введенных данных
  • Cовместимость с другими ресурсами на одном домене
  • И д.р.

Конфиг скрипта, пример:

# _config.php: V4.0
...
$_CONFIG['INF_DOMAIN'] = array('https://domain.ru' => '');          # Домен для переадресации (Без слеша на конце). Префикс (префикс не обязательный, прификс корректируется в тандеме с .htaccess)
$_CONFIG['URI_SCRIPT'] = 'https://domain.ru/';                      # Адрес главной страницы сайта. Начиная с протокола и заканчивая слешом (https://domain.ru/)
$_CONFIG['URI_ADMIN']  = 'https://domain.ru/adm/';                  # Адрес сайта с админкой, начиная с протокола и заканчивая слешом (https://domain.ru/adm/)
$_CONFIG['PSWD_ADM'] = '';                                          # Пароль админки (Чтобы с генерировать пароль, сотрите его и зайдите в админку).


# НАСТРОЙКИ сайта
$_CONFIG['BLOCKING_USER'] = array();                                # Запретить вход на сайт по IP или диапазону.                              
$_CONFIG['LOG_ERRORS'] = 1;                                         # Лог ошибок введенных данных в форме
$_CONFIG['PASSWORD_ONOFF'] = 0;                                     # Пароль включить/выключить 1/0
$_CONFIG['PASSWORD'] = '8349';                                      # Пароль 
$_CONFIG['BAD_POST_URL'] = 'xxx.ru|xxx.com';                        # Запрещенные домены (кириллица - регистроЗависимая)
$_CONFIG['MAX_SYMBOL_LONG_URL'] = 4000;                             # максимум символов в длинным url, стандарт 4000 больше не рекомендуется в uri.
$_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('301 Moved Permanently',        # Отправляемые http заголовки 3xx: Redirection (перенаправление)            
                                    '302 Found',
                                    '307 Temporary Redirect',
                                    '303 See Other',
                                    "305 Use Proxy");                      
$_CONFIG['SEND_HEADER_DEFAUL'] = 1;                                 # Отправляемый заголовок по дифолту (счет с нуля)
$_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['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'; 
...

# Хелпы и факю

# Как установить скрипт
Для версии 4.0

1) Скачиваем дистрибутив и заливаем файлы на сервер.
2) Создаем новую Базу Данных
3) Заходим в phpMyAdmin, выбираем созданную нашу БД, и в нее импортируем скаченный файл из дистрибутива new-Install.sql
Параметры импорта можно оставить как есть, то есть подифолту.
4) Далее заходим на сервер и отредактируйте _config.php
- В разделе КОНЕКТ к БД заполните «имя», «пользователь», «пароль», который вы создали при создании Базы Данных в п.2.
5) В этом же файле заполните в разделе КОНФИГ обязательные переменные:

$_CONFIG['INF_DOMAIN'] = array('https://domain.ru' => '');
Замените https://domain.ru на свой адрес страницы без слеша на конце.
Для первоначальной настройки будет достаточно. C дополнительными возможностями можете ознакомится в хелпах.

$_CONFIG['URI_SCRIPT'] = 'https://domain.ru/';
Замените https://domain.ru/ на свой адрес страницы. В конце слеш обязательный!

$_CONFIG['URI_ADMIN'] = 'https://domain.ru/adm/';
замените https://domain.ru/ на свой адрес страницы оставив путь к /adm/ (это адрес к админке)
В конце слеш обязательный!

$_CONFIG['PSWD_ADM'] = '';
Теперь сгенерируем пароль для админки.
Зайдите на свой сайт со скриптом, дописав в адресной строке /adm/
Пример: www.ваш-сайт.ru/adm/
Там скрипт предложит придумать пароль и сгенерирует хеш-пароль
И вставьте хеш-пароль сюда между кавычками.
Все, скрипт короткие ссылки готов к использованию. При следующем посещении админки появится поле ввода для пароля.
[Часто задаваемые вопросы]



# Как обновить скрипт
с версии 3.2 до версии 4.0

1) Сделайте бекап файлов и БД.
2) Скопируйте из index.php старое подключение к БД (имя БД, имя пользователя БД, пароль).
Если имеются пользовательские наработки то:
- скопировать из index.php в новый index.php
- script.js - не изменился
- Дополнительные домены: shortLinks.php, .htaccess - не изменился.
3) Удалите все файлы на сервере (скопировав пользовательские наработки) и залейте новыми.
- База данных не изменилась по этому в БД исполнять new-Install.sql не нужно!
- Для дополнительных доменов, файлы в папке /OtherDomains/ не изменились и обновлять не требуется.
4) Откройте новый _config.php, и в разделе КОНЕКТ к БД настройте подключение к вашей БД используя старые данные доступа.
Дальнейшие шаги обновления схожи с первоначальной установкой скрипта начиная с пункта 5.



# Добавление доменов
$_CONFIG['INF_DOMAIN']

Переменная является масивом состоящая из домена и его префикса.

  • Первый домен в массиве является ведущим для работы скрипта.
  • Префикс нужен для совместимости сторонних скриптов или сайта cms
    Не обязательный параметр.
    Используется между доменом и короткой ссылки. www.domain.ru/~shortLink
    Добавляется-редактируется в тандеме с .htaccess
    Символы: латиница, цифры и символы: тире, тильда и др. символы поддерижвающие uri...
  • Папка [OtherDomains] используется для дополнительных доменов где происходит редирект.
Как добавить домен.
Для добавления домена нужно добавить в массив новый домен и его префикс:
Пример:
$_CONFIG['INF_DOMAIN'] = array('https://domain1.com' => '', 'https://domain2.net' => '~');
Используйте для долпонительных доменов папку [OtherDomains].
shortLinks.php - для подключения к БД.
.htaccess - для редиректа.
Количество доменов не ограничено.


# Как сбросить пароль.
$_CONFIG['PSWD_ADM']
Хешированный пароль админа.
Удалить хеш и зайти в админку.
При отсутствующем хеш-пароля, админка сама предложит придумать пароль и сгенерировать хеш.
Сгенерированный хеш-пароль вставить $_CONFIG['PSWD_ADM'] = 'СЮДА';


$_CONFIG['CLOCK_TIME_ARR'] Время хранения ссылки с последуюющим его удалением.
Параметры считаются в часах.


$_CONFIG['SEND_HEADER_ARR'] Список кодов состояния отправляемых по http при редиректе.
При изменении добавлении используйте только трехсотые коды для перенаправления (3xx).
Не допускайте ошибок и проверяйте добавленные http заголовки сторонними сервисами.
[подробнее]


$_CONFIG['URI_ADMIN'] Url адрес для доступа к админке.
Праметр изменяется в тандеме с дефолтной папкой /adm/.
Адрес сайта с админкой, начиная с протокола и заканчивая слешом (https://domain.ru/adm/)



Таймер для переадресации
файл: index.php
Пример таймера:
...
### РЕДИРЕКТ КОРОТКОГО URL
    elseif(isset($_GET['redirLink'])):    
    
        if(isset($_COOKIE[''.$_GET['redirLink'].''])) redirLink(); 
        else 
        setcookie($_GET['redirLink'], $_GET['redirLink']);
        echo '<script>setTimeout(function(){window.location.reload(1);}, 3000);</script>';
        echo 'ваша реклама показывается 3 секунды, далее редирект';
        
...        


# Структура файлов
Не рекомендуется редактировать файлы кроме как пользовательских
т.к. при следующем обновлении изменения слетят.
  • [adm] папка с админкой. Вход в админку www.domain.ru/adm/
  • [OtherDomains] для дополнительных доменов
  • .htaccess требуется для работы скрипта.
  • _config.php Настройки скрипта и подключение к БД
  • _func.php функции скрипта.
  • index.php пользовательский шаблон
  • new-Install.sql дамп БД для импорта новых установок
  • style.css Для добавления своих стилей ипользуйте новый пользовательский файл user.css и добавив путь к нему в index.php между тегами ‹head›
    Файл style.css используйте для переопределения стилей в пользовательском файле.
  • script.js ...

# Часто задаваемые вопросы

После установки или обновлени скрипта, главная страница криво отображается.
Ваш браузер просто закешировал веб страницу и это нормальный эффект. Обновите страницу Сtrl+F5.
Таким образом страница заново подгрузит с сайта style.css
Когда будут новые обновления?
Новые обновления не плохо мотивируются донатами,
пишите в личку если возникнет такая необходимость.
Спасибо за понимание.

  1. # trmusicss 07 апреля 2024, 17:37
    всё ок) а для чего нужна папка OtherDomains? и там файл тоже к базе данных…
    1. # Телек 07 апреля 2024, 17:43
      Для дополнительных доменов.
      К примеру если Вы ходите добавить домены находящиеся на другом сервере.
    2. # Сергей 02 октября 2022, 22:25
      Здравствуйте, СПАСИБО БОЛЬШОЕ ЗА СКРИПТ, установил на хостинг все ОТЛИЧНОЕ РАБОТАЕТ как швейцарские часы, будет ли обновление с новыми функциями?
      1. # Телек 03 октября 2022, 21:26
        Да, как будет время, есть идеи для реализации.
      2. # sdgf 01 апреля 2022, 05:19
        Здравствуйте пишет такую вот ошибку, не могу понять в чем дело, подскажите пожалуйста
        Parse error: syntax error, unexpected end of file, expecting «elseif» or «else» or «endif» in C:\Server\htdocs\l\index.php on line 216
        1. # Телек 19 апреля 2022, 20:32
          Включите поддержку сокращённых тегов в PHP
        2. # Aklex 05 февраля 2021, 00:25
          Здравствуйте.
          Скрипт будет корректно работать на поддомене re.domian.com?
          Скрипт поддерживает работу на хостах https?
          1. # Телек 05 февраля 2021, 00:26
            Да, без проблем
          2. # obmen86 02 сентября 2020, 06:18
            Выдает ошибку
            Internal Server Error
            The server encountered an internal error or misconfiguration and was unable to complete your request.
            
            Please contact the server administrator at webmaster@geurl.ru to inform them of the time this error occurred, and the actions you performed just before this error.
            
            More information about this error may be available in the server error log.
            Уже и версию PHP менял с 5.3 до 7.4 не помогает.
            1. # Телек 02 сентября 2020, 20:45
              Скорее всего php тут не причем, возможно не может htaccess прочитать т.к вы корректировали его или ему не нравится в связи с настройками сервера что мало вероятно.
              Такие 500 ошибки как правило логируются.
              Пришлите лог последних запросов когда вызывалась ошибка.
              И содержимое файла на что он ссылается.
              Там все элементарно…
              1. # obmen86 03 сентября 2020, 07:41
                [Thu Sep 03 00:30:52.092997 2020] [core:alert] [pid 1495196:tid 139799456847616] [client 66.249.66.45:0] /private_html/.htaccess: Option All not allowed here
                [Thu Sep 03 01:14:22.427513 2020] [core:alert] [pid 1624024:tid 139799565952768] [client 185.12.124.78:0] /public_html/.htaccess: Option All not allowed here, referer: GEURL.RU
                [Thu Sep 03 04:05:39.438333 2020] [core:alert] [pid 2053430:tid 139799381313280] [client 91.105.141.169:0] /private_html/.htaccess: Option All not allowed here, referer: https://yandex.ru/
                [Thu Sep 03 04:18:08.997115 2020] [core:alert] [pid 2096525:tid 139799414884096] [client 46.229.168.134:0] /private_html/.htaccess: Option All not allowed here
                [Thu Sep 03 04:58:19.110972 2020] [core:alert] [pid 2200596:tid 139799398098688] [client 75.75.235.224:0] /public_html/.htaccess: Option All not allowed here
                [Thu Sep 03 05:26:15.846541 2020] [core:alert] [pid 2262282:tid 139799389705984] [client 64.21.98.47:0] /private_html/.htaccess: Option All not allowed here
                1. # Телек 03 сентября 2020, 08:01
                  Закоментируйте строку в htaccess
                  Options All -Indexes
                  Ошибка указывает на то, что файлу htaccess не разрешено использовать директиву Options для изменения настроек.
                  1. # Телек 03 сентября 2020, 08:16 (Комментарий был изменён)
                    Если у вас и так по дифолту скрыт листинг файлов то это хорошо для безопасности. Если же вы хотите воспользоваться опциями то отредактируйте файл конфигурации apache:
                    /etc/httpd/conf/httpd.conf
                    <Directory /var/www/>
                        Options Indexes FollowSymLinks MultiViews
                        AllowOverride Options
                        Order allow,deny
                        allow from all
                    </Directory>
                    Добавление «Options» в список AllowOverride позволит использовать директиву Options в файле htaccess.
              2. # Ник 03 августа 2020, 17:24 (Комментарий был изменён)
                Кто-то в курсе как сделать больше символов в генерации ссылки или же поставить рандом, к примеру от 5 до 10?
                1. # Телек 03 августа 2020, 22:32
                  Чтобы генератор коротких ссылок, генерировал больше символов:
                  нужно в файле script.js
                  функция
                  GeneratedReferUrl("Ref_url",2);
                  вот эта цифра отвечает за количество слогов.
                  Увеличив её вы увеличите длину короткой ссылки.

                  Чтобы добавить символы разрешенные скриптом нужно:
                  нужно в файле script.js
                  найти строку
                  var cCommon = "bcdfghklmnprstvz";

                  и добавить к буквам символы
                  _-./
                2. # Андрей 03 августа 2020, 13:45
                  Здравствуйте! Хотелось бы поскорей увидеть поиск по ссылкам, а также быстрое удаление ссылки из админки, блокировки пользователя (по айпи), также из админки. Как скоро такое будет огранизованно? :)
                  1. # Андрей 03 августа 2020, 14:11
                    блокировку пользователя как по мне лучше организовать через .htaccess
                    1. # Телек 03 августа 2020, 23:01 (Комментарий был изменён)
                      Я извиняюсь пока времени не хватает, как только я сразу.
                      Можете сами обгрейдить я обновлю.

                      поиск пока CTRL + F
                  2. # sanek42 26 июня 2020, 22:06
                    Автор напиши пожалуйста как с Вами связаться
                    1. # Телек 26 июня 2020, 22:14
                      Приветствую общение по теме в открытом виде тут.
                      По другим или коммерческим вопросам пообщаемся в привате ftpn.ru/feedback/
                      1. # sanek42 27 июня 2020, 09:53
                        Как бороться с тем что после создания короткой ссылки страница 404 выпадает
                        1. # sanek42 27 июня 2020, 10:05
                          Как бороться с тем что после создания короткой ссылки страница 500 выпадает
                          1. # Телек 01 июля 2020, 14:24
                            Извиняюсь с задержкой ответа…
                            Эти ошибки говорят о том что Вы где то не правильно настроили.
                            Читайте хелпы инструкцию повнимательней.
                            Из настроек тут всего лишь конфиг да хатсес.
                            1. # sanek42 01 июля 2020, 14:39
                              Да ладно ничего страшного, я уже снес все, 500 постоянно что только не менял.
                              У меня другой вопрос, где взять такую систему комментариев как вот в этой мы общается?
                              1. # Телек 01 июля 2020, 14:41 (Комментарий был изменён)
                                500 ошибка это с хатсесом вы что-то накосячили.
                                С таким ошибками нужно логи подкреплять к сообщению.
                          2. # Alex 07 июня 2020, 21:15
                            А подскажите пожалуйста, можно как-то по быстрому добавить белый список разрешённых доменных имен, по которым можно сокращать ссылки?

                            Не хочется, что бы этот сервис для своих использовался в мошеннических целях.

                            Заранее спасибо.
                            1. # Телек 08 июня 2020, 12:03 (Комментарий был изменён)
                              Можно просто поставить пароль.
                              Хорошая идея в следующей версии реализую.
                            2. # nickname 19 апреля 2020, 22:32
                              Здравствуйте. Поставил скрипт, добавляю ссылку, он ее вносит в БД корректно, но при переходе по ней не отрабатывает. Пишет «Ой, вы ошиблись адресом». Требуется помощь. В логах тишина. Заранее спасибо
                              1. # Телек 19 апреля 2020, 22:48 (Комментарий был изменён)
                                Когда он выдает эту ошибку, скиньте ссылку такой какой она есть.
                                1. # nickname 20 апреля 2020, 15:20 (Комментарий был изменён)
                                  Можно почту, плз? Или любой иной способ связи, чтобы линк скинуть
                                  1. # Телек 21 апреля 2020, 11:20
                                    можете сюда без домена.
                                    1. # nickname 21 апреля 2020, 11:54 (Комментарий был изменён)
                                      Читал комментарии ниже. У меня в хвосте ссылки не появляется #цифры

                                      В конфиге
                                      if (false) { ini_set('display_errors',true); error_reporting(E_ALL | E_STRICT); } else { ini_set('display_errors', true); error_reporting(true); } # Отладка (false - вык., true - вкл.)
                                      Пробовал и true на единички менять, но изменений нет
                                2. # 55555 24 июня 2019, 17:47
                                  Ссылка просрочена или не существует, как исправить? Обновил до 3 версии но вот такое всплывает.
                                  1. # Телек 24 июня 2019, 17:50 (Комментарий был изменён)
                                    Возможно у Вас База данных не обновленна, файлы вы обновили а БД так и осталась старой.
                                    или Вы с нуля устанавливали?

                                    чтобы видеть ошибки включите отладку в конфиге с false на true
                                    1. # 55555 24 июня 2019, 17:53 (Комментарий был изменён)
                                      Все с нуля обновил, и базу.
                                      1. # Телек 24 июня 2019, 18:00 (Комментарий был изменён)
                                        когда он выдает такую ошибку в адресной строке пишется номер ошибки типо:
                                        www.site.ru/?notice#123
                                        Мне так кажется что скрипт не может записать в базу данных т.к. либо отсутствует права на запись в базе данных либо еще чтонибудь…
                                        Скажите какой номер ошибки и включите отладку чтоб видеть ошибки.
                                        1. # 55555 24 июня 2019, 18:08 (Комментарий был изменён)
                                          Включил, результат ноль.
                                          1. # 55555 24 июня 2019, 18:10
                                            302 Found
                                            2029-06-21 18:07:47
                                            85.174.55.108
                                            NULL
                                            NULL
                                            NULL
                                            NULL в базе не прописывается
                                            1. # 55555 24 июня 2019, 18:12
                                              Ошибка 58
                                              1. # Телек 24 июня 2019, 18:15 (Комментарий был изменён)
                                                [сообщение удалено]

                                                Так… эти ячейки заполняются при первом заходе по ссылке
                                                1. # Телек 24 июня 2019, 18:44
                                                  Вопрос решился.
                                                  1. # Aksen 06 октября 2019, 19:29
                                                    А как вопрос решился? Подскажи, в чем проблема, у меня тоже 58 ошибка
                                                    1. # Телек 06 октября 2019, 19:36
                                                      У него был не правельно настроен конфиг, а именно, перечислены несколько одинаковых доменов.
                                                      В этой строке:
                                                      _CONFIG['INF_DOMAIN'] = array('https://domain1.com' => '');        # Домен для переадресации и его префикс (префикс корректируется в тандеме с .htaccess)
                                                      Укажите там свой домен, и пере проверьте ваш конфиг, и манулал взгляните чтоб наверняка.
                                                      1. # Aksen 07 октября 2019, 11:07
                                                        Да я все перепроверил. Скрипт не дает сделать короткую ссылку более 1-го раза на 1 страницу.
                                                        1. # Телек 07 октября 2019, 14:16 (Комментарий был изменён)
                                                          Скиньте ссылку со скриптом, посмотрю,
                                                          И из конфига сюда запостите строку с параметром
                                                          $_CONFIG['INF_DOMAIN']
                                                          1. # Aksen 07 октября 2019, 14:29
                                                            А можно с вами связаться в телеграме?
                                                            1. # Телек 07 октября 2019, 18:07
                                                              Написал Вам в почту.
                                                        2. # 55555 24 июня 2019, 16:16
                                                          Сгенерировал MD5, куда его вставить?
                                                          1. # Телек 24 июня 2019, 16:22 (Комментарий был изменён)
                                                            В файле index.php найти в конфиге эту переменую:
                                                            $_CONFIG['PSWD_ADM'] 
                                                            и заменить md5 хеш на ваш.
                                                            $_CONFIG['PSWD_ADM'] = 'СЮДА ВСТАВЛЯТЬ'
                                                            1. # 55555 24 июня 2019, 16:30
                                                              ))) У меня 1я версия, там нет. Надо обновить до 3й, там есть. Особенность обновления есть?
                                                              1. # Телек 24 июня 2019, 16:33
                                                                Калосальные изменение, как архитектуры так и функционала.
                                                                Также при последующих обновлениях не снесется ваш дизайн.
                                                          2. # 55555 24 июня 2019, 15:48
                                                            Здравствуйте. Как попасть в админку?
                                                            1. # Телек 24 июня 2019, 15:51
                                                              Если вы не корректировали
                                                              $_CONFIG['URI_ADM']
                                                              то адрес стандартный как описан выше в хелпах.
                                                              Www.вашдомен/?admin
                                                            2. # obmen86 13 апреля 2019, 09:53
                                                              Давненько не было обновление :(
                                                              Планируется ли выпуск обновления, что там будет и когда )))
                                                              1. # Телек 24 мая 2019, 02:48
                                                                Новая версия 3.2
                                                                1. # obmen86 01 июня 2019, 09:36
                                                                  А, что нового то?
                                                                  Как обновить без потери старых данных :)
                                                                  1. # Телек 01 июня 2019, 09:40
                                                                    Заменить все файлы кроме index.php — который является шаблонным.
                                                                    Исправленны программные ошибки.
                                                                    1. # obmen86 01 июня 2019, 10:43
                                                                      Как настроить задержку для показа рекламы не совсем понятно
                                                                      1. # Телек 01 июня 2019, 11:03
                                                                        Загляните в хелпы это выше коментов, там пример рабочий специально для Вас.
                                                                        1. # obmen86 01 июня 2019, 12:19
                                                                          Вопрос куда вставлять, также в index?
                                                                          1. # Телек 01 июня 2019, 16:55 (Комментарий был изменён)
                                                                            index.php — является ШАБЛОННЫМ!..
                                                                            func.php — программа, её не желательно корректировать т.к при обновлении в основном он обновляется.

                                                                            Для добавлении таймера с рекламой, нужно откорректировать index.php
                                                                            и найти строку:
                                                                            ...
                                                                            ### РЕДИРЕКТ КОРОТКОГО URL 
                                                                            	elseif(isset($_GET['redirLink'])): redirLink();
                                                                            ...
                                                                            
                                                                            Функция redirLink(); это и есть обработчик коротких url, ему нужно поставить условие.
                                                                            Для этого уберем функцию redirLink(); (то что после двоеточий) чтобы не переадресовывал нас и добавляем условие чуть ниже:

                                                                            ...
                                                                            if(isset($_COOKIE[''.$_GET['redirLink'].''])) redirLink(); 
                                                                            else 
                                                                            setcookie($_GET['redirLink'], $_GET['redirLink']); 
                                                                            echo '<script>setTimeout(function(){window.location.reload(1);}, 3000);</script>'; 
                                                                            echo 'ваша реклама показывается 3 секунды, далее редирект';
                                                                            ...
                                                                            
                                                                            Логика такова: при переходе по ссылке проверяет есть ли куки, если есть вызываем нашу функцию redirLink(); для переадресации, если нет то запишем куки и покажем рекламу с ожиданием 3сек, далее страница перезагружается и все с начало. Есть ли куки и учитывая что мы уже записали вызывается функция redirLink();

                                                                            Как показано в хелпах примерах.
                                                                      2. # obmen86 09 февраля 2019, 12:43
                                                                        Сделать бы какой-то плагин для популярных CMS, чтобы можно было ссылки сокращать через основной сайт (это больше для админов сайтов сокращения ссылок).
                                                                        Только как, вопрос :)

                                                                        Типа Wordpress, DLE. Ставишь плагин и сервис сокращает и изменяет ссылки на сторонние ресурсы через основной сайт (который на скрипте работает).

                                                                        Есть предложение как реализовать?
                                                                        1. # Телек 09 февраля 2019, 13:09
                                                                          Чтоб особо не заморачиваться, при авторизации в движке автоматом авторизуется и в админке скрипта. И в движке добавить пруф на админку скрипта.
                                                                        2. # obmen86 03 февраля 2019, 19:26
                                                                          Добрый день.
                                                                          Не работает скрипт сокращения geurl.ru
                                                                          1. # Телек 04 февраля 2019, 03:15 (Комментарий был изменён)
                                                                            Файл htaccess писал под apache, а nginx как раз то что у Вас не учел.
                                                                            В корне дериктории скрипта замените в htaccess все содержимое на:
                                                                            # nginx configuration
                                                                            
                                                                            location / {
                                                                              if (!-e $request_filename){
                                                                                rewrite ^(.*)$ /index.php?redirLink=$1;
                                                                              }
                                                                            }
                                                                            1. # obmen86 05 февраля 2019, 20:11
                                                                              Теперь совсем не работает сайт :(
                                                                              1. # Телек 06 февраля 2019, 13:59
                                                                                Я так понимаю что у Вас статику (картинки, стили и т.д) отдает nginx а проксирует запросы на apache для обработки php.
                                                                                По этому htaccess верните старый и проверьте свой журнал ошибок httpd ну естественно прогуглите их…
                                                                                1. # obmen86 07 февраля 2019, 05:23
                                                                                  Перезалил и заработало, оч странно…
                                                                                  Пожелания:
                                                                                  1. Сделать ЛК для пользователя (где хранились бы его ссылки)
                                                                                  2. Сделать возможность временной задержки при переходе (например 10 сек.) для получения средств от платной рекламы. А также платную подписку для отключения и моментального перехода
                                                                                  3. Сделать возможность вписать дизайн (не нашел сейчас).
                                                                                  1. # Телек 07 февраля 2019, 12:23 (Комментарий был изменён)
                                                                                    Возможно была ошибка с правами доступа или левый символ пролез…
                                                                                    2. Да, Вы дельные пожелания предложили, реализую при первой возможности.
                                                                                    3. Что вы именно предлагаете?
                                                                                    На текущий момент файл index.php готов редактироваться под ваши нужды или же просто интегрируется к примеру инклудом, предварительно удалив head заголовки.
                                                                                    1. # obmen86 08 февраля 2019, 05:16
                                                                                      Я предлагаю полностью вытащить дизайн из index.php перенеся его в админку или отдельные файлы (верх/низ) для отдельного редактирования и в последующем, при обновлении дизайн чтобы не снесся.
                                                                                      1. # obmen86 08 февраля 2019, 06:37
                                                                                        Ну и сделать адаптацию под мобильную версию
                                                                                        1. # Телек 09 февраля 2019, 01:24 (Комментарий был изменён)
                                                                                          Файл index.php является шаблонным и при последующих обновлений скрипта этот файл можно не обновлять / не заменять.
                                                                                          Таким образом можно делать и мобильную версию и делать временную задержку с рекламой — поставив условие функции redirLink();
                                                                                          ### РЕДИРЕКТ КОРОТКОГО URL
                                                                                          elseif(isset($_GET['redirLink'])): redirLink();
                                                                                          1. # obmen86 09 февраля 2019, 04:57
                                                                                            Мне кажется удобнее разграничевать начать файлы, так как в будущем и личный кабинет и рекламу может будет юе лелаиь, а это неизбежно приведёт к перевожу дизайна в отдельный файл, и так далее
                                                                                            1. # Телек 09 февраля 2019, 12:53
                                                                                              Дык пожалуйста… делайте, шаблон это позволяет и разограничивать и подключать файлы, как Вам удобней…
                                                                                        2. # FeeWebber 09 ноября 2018, 11:31
                                                                                          Добрый день, у меня при формировании короткой ссылки «domain.ru/-sds» после слеша постоянно приписывается дефис "-" можно ли сделать так что бы его не было в начале?

                                                                                          Спасибо.
                                                                                          1. # Телевизор 09 ноября 2018, 12:15
                                                                                            Эта приставка в виде дефиса разграничивает ресурсы между вашими страницами и этим скриптом.
                                                                                            Т.е если вы создадите свой ресурс-страницу в этом же корне домена то переадресация коротких ссылок будет работать и не пересекаться с вашим ресурсом.
                                                                                            В принципе можно эту приставку убрать но тогда вы не сможете создавать свои страницы в этом домене.

                                                                                            При первой возможности сделаю это функционально с выбором.
                                                                                            1. # FeeWebber 09 ноября 2018, 16:47
                                                                                              спасибо, ну у меня домен специально для коротких ссылок =)
                                                                                              1. # FeeWebber 12 ноября 2018, 13:39
                                                                                                Я думаю, не плохо было бы если была возможность выбора без спец символа и добавлять свой спец символ @ # и т.д… =)
                                                                                                1. # Телевизор 12 ноября 2018, 15:12
                                                                                                  Да уже сделал, многое переделал и улучшил, как например разделил скрипт и html — что бы не было болезненно при обновлении.
                                                                                                  А также теперь на разных доменах можно с префиксом и без него.
                                                                                                  На днях опубликую и Вас уведомлю.
                                                                                            2. # Влад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 скрипта, далее идет подключение к БД и выборка к переадресуемой ссылке.