Php код закрыть ссылки

Закрыть доступ на прямую ссылку на страницу, без авторизации

Добрый день,
Не давно создал форму авторизации на своём сайте (с использованием БД) которое нашёл скрипт тут, так вот: когда заходишь на сам сайт просят авторизоваться для того чтобы зайти на сайт, но если пишешь прямую ссылку на какой либо страницу то пропускает.
Я тут по гуглил и нашёл способ редиректа если пользователь не авторизован, но всех перекидывает на страницу авторизации:

 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 сайт

Источник

Читайте также:  Text search function javascript
Оцените статью