- Закрыть доступ на прямую ссылку на страницу, без авторизации
- Вы ввели не всю информацию, вернитесь назад и заполните все поля!"
- Извините, введённый вами login или пароль неверный."
- Извините, введённый вами login или пароль неверный."
- Как спрятать url партнерской ссылки
- Прячем URL с помощью javascript
- Прячем с помощью PHP
- Прячем линки с помощью средствами сервера apache и файла .htaccess
- Как закрыть внешние ссылки от индексации с помощью htaccess и robots.txt
Закрыть доступ на прямую ссылку на страницу, без авторизации
Добрый день,
Не давно создал форму авторизации на своём сайте (с использованием БД) которое нашёл скрипт тут, так вот: когда заходишь на сам сайт просят авторизоваться для того чтобы зайти на сайт, но если пишешь прямую ссылку на какой либо страницу то пропускает.
Я тут по гуглил и нашёл способ редиректа если пользователь не авторизован, но всех перекидывает на страницу авторизации:
session_start(); if(!$_SESSION['myrow']){ header("Location: /"); exit; } ?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
header('Content-Type: text/html; charset=utf-8'); setlocale(LC_ALL,'ru_RU.65001','rus_RUS.65001','Russian_Russia.65001','russian'); session_start();// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички. if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} } //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт { exit ("
Вы ввели не всю информацию, вернитесь назад и заполните все поля!" . " Назад
"); } //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести $login = stripslashes($login); $login = htmlspecialchars($login); $password = stripslashes($password); $password = htmlspecialchars($password); //удаляем лишние пробелы $login = trim($login); $password = trim($password); //Подключаемся к базе данных. $dbcon = mysql_connect("192.168.10.56", "test", "test"); mysql_select_db("test", $dbcon); if (!$dbcon) { echo "Произошла ошибка при подсоединении к MySQL!
".mysql_error(); exit(); } else { if (!mysql_select_db("test", $dbcon)) { echo("Выбранной базы данных не существует!
"); } } //извлекаем из базы все данные о пользователе с введенным логином $result = mysql_query("SELECT * FROM users WHERE login='$login'", $dbcon); $myrow = mysql_fetch_array($result); if (empty($myrow["password"])) { //если пользователя с введенным логином не существует exit ("
Извините, введённый вами login или пароль неверный."
. " Назад "); } else { //если существует, то сверяем пароли if ($myrow["password"]==$password) { //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел! $_SESSION['login']=$myrow["login"]; $_SESSION['id']=$myrow["id"];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь header("Location:main"); } else { //если пароли не сошлись exit ("
Извините, введённый вами login или пароль неверный."
. " Назад "); } } ?>
Как спрятать url партнерской ссылки
В этой статье мы поговорим об актуальной для многих вебмастеров проблеме — спрятать урлы ваших партнерских программ. Я надеюсь, что вы уже не относитесь к новичкам, которые создают сайты для размещения фотографий любимого кота или как я круто провел лето в деревне на бесплатных хостах типа народа. У нас дела посерьезнее — на своих веб-сайтах заработать, да и желательно не только на хостинг и доменное имя, но и на пиво, мобилу, компьютер.
К написанию этой статьи меня побудило то, что большинство вебмастеров зарабатывают на своих сайтах, участвуя в различных партнерских программах. Только не путать с контекстной рекламой — это из другой оперы — у них все линки, по которым будут переходить пользователи (а нам с вами поступать денежки), генерируются с помощью java-скрипта, так что вмешиваться в процесс их генерации мы не можем (да и не разрешено это).
Итак, допустим вы зарегистрировались в некой партнерской программе по продаже, к примеру, книжек. Вам, как партнеру дается свой уникальный урл. Если посетитель по нему перейдет с вашего сайта на сайт продавца и купит что-то, то вам будет % от продажи (комиссионные).
Вот тут возникают следующие проблемы, которые мы и постараемся решить:
— есть такое понятие, как реферофобия — это когда посетитель видит в линке ваш реферальный код, копирует весь линк, обрезает этот код и вставляет линк без него.
К примеру — исходный линк http://www.sape.ru/r.ewPYUJTHdw.php — в нем параметр r.ewPYUJTHdw.php — это ваш партнерский идентификатор. Тот пользователь, который не желает, чтобы вам было вознаграждение от его покупки, заходит на сайт через http://www.sape.ru/
— с каждым днем появляется все больше программ типа AdWare и специальных плагинов к браузерам, которые автоматически чистят урл от вашей рефферальской ссылки
— опытные вебмастера знают, что поисковые машины ох как не любят редиректы, потому что на технике редиректа основаны дорвеи (doorway) — специальные странички с бессмысленным текстом для человека, но насыщенные ключевыми словами для поисковика — их цель, перенаправить посетителя на определенный веб-сайт, чтобы уже на нем человек кликнул на контекстной рекламе, купил что-то через партнерскую программу и т.д. — вообще поисковики это считают черным seo.
А теперь переходим к практике
Прячем URL с помощью javascript
Чтобы замаскировать линк http://www.sape.ru/r.ewPYUJTHdw.php на «полезная ссылка для каждого вебмастера»,
делаем следующий линк:
Таким образом при наведении на линк «полезная ссылка для каждого вебмастера» будет показана ссылка http://www.sape.ru, а не http://www.sape.ru/r.ewPYUJTHdw.php, т.е. без реферального кода.
— не требуется наличие php на хостинге
— это лишь защита от новичков, ведь сам линк с редиректом сохраняется внутри html-кода.
Прячем с помощью PHP
Для этого нужно использовать технологию server side scripting — скрипты на стороне сервера — т.е. закачиваете скрипт на сервер, он его обрабатывает, а в браузер выдает результат этой обработки. Единственное условие — это поддержка хостером PHP.
Все предельно просто — создаем в корневой директории (если в другом месте, укажите путь) файл coolbook.php с таким кодом:
header ("location: http://www.sape.ru/r.ewPYUJTHdw.php");
Далее осталось только загрузить его на сервер. В html коде делаем переход по реферальской ссылке вот так:
— посетители и AdWare не смогут увидеть, что же скрывается в настоящей ссылке (наш реферальный код). Все надежно запрятано в php файле и хранится на сервере хостера.
— для каждой партнерской ссылки нужен свой отдельный файл. Хорошо, если у вас одна такая программа, а если несколько?
Для этого рассмотрим третье решение:
Прячем линки с помощью средствами сервера apache и файла .htaccess
Ясно дело, что такая техника не будет работать на бесплатном хосте без поддержки php. Также убедитесь, что ваш хостер (а точнее его apache настроен) поддерживает работу с файлами .htaccess. Есть и такие, у которых он отключен видите ли для безопасности 🙂
Так вот, в корневой директории вашего хоста (как правило, папка типа public_html или www), создаем файл .htaccess (именно такой, если делать его в блокноте, то будет еще приставка txt — внимательно с этим). Заливаем на хост с помощью любого FTP клиента (советую FlashFXP).
Внутри файла .htaccess пишем следующее:
RewriteEngine on Redirect 301 /sape.php http://www.sape.ru/r.ewPYUJTHdw.php
И все! Теперь в тех линках, где требуется поставить реферальскую ссылку, ставим htmlweb.ru/sape.php — по переходе по ней посетитель будет перенаправлен по ссылке http://www.sape.ru/r.ewPYUJTHdw.php — что нам и требуется — с нашим реферальным кодом.
В html-коде используется так:
— хранит все линки в одном файле. Не нужно создавать для отдельной партнерской программы отдельный файла
— нужно разбираться в синтаксисе файла .htaccess. Опять же, некоторые хостеры не дают возможности изменять этот файл (только для чтения). Ну и нужно быть предельно внимательным с директивами .htaccess — а то можно завалить не то, что свою cms, а и весь хост 🙂
Как закрыть внешние ссылки от индексации с помощью htaccess и robots.txt
Делаем переадресацию в .htaccess:
RewriteEngine On RewriteRule ^G/(.*)$ http://$1 [L] RewriteRule ^Gs/(.*)$ https://$1 [L]
Закрываем ссылки от индексации в robots.txt:
User-Agent: * Disallow: /G/ Disallow: /Gs/
Все внешние ссылки заменяем на внутренние по следующему правилу:
«http://сайт» меняем на «/G/сайт», «https://сайт» меняем на «/Gs/сайт». Например:
Это неиндексируемая ссылка на http сайт Это неиндексируемая ссылка на httpS сайт