Често в сайтовете се налага да се дава ограничен достъп до някои части от сайта, например до определени директории или страници. Ще изработим проста login форма за достъп до определени места от сайт, защитени с парола и потребителско име.
Кода на формата може да бъде следния:
Login ФормаLogin форма
$user = $_POST["potrebitel"];
$pass = $_POST["parola"];
if ($user == "user1" && $pass == "pass1")
{
header("location: http://domain.com/secretpage.php");
}
else
{
echo "
Грешно потребителско име или парола!";
}
?>
Съхранете кода като login.php
В горния код чрез масива $_POST вземаме от формата съдържанието на полетата за потребителско име и парола като задаваме в квадратните скоби ключовете за тези стойности, т.е. имената на полетата, които са potrebitel и parola. Присвояваме ги като стойности съответно на променливите $user и $pass.
След това чрез конструкцията if-else задаваме на скрипта следната задача:
Ако е изпълнено условието стойността на променливата $user да е user1 И стойността на променливата $pass да е pass1, тогава отвори уеб адреса http://domain.com/secretpage.php
Ако това условие не е изпълнено, тогава покажи съобщението "Грешно потребителско име или парола!".
Това означава, че ако използвате в login формата потребителско име user1 и парола pass1 в браузъра ви ще се зареди страницата, до която желаете да има ограничен достъп. В примера тази страница е с название secretpage.php, а адреса и е http://domain.com/secretpage.php, където domain.com е вашия домейн.
Ако искате достъпа да е с друго потребителско име и парола трябва да замените user1 и pass1 с някакви друго съчетание от букви и/или цифри.
За редиректване на бразъра използваме функцията header(), чиито синтаксис е
header(Location: URL)
На мястото на уеб адреса (URL) може да се изпише пълния адрес на страницата, която трябва да се зареди (както е в примера), а може да се укаже и само името на страницата, ако тя се намира в същата папка (директория), в която се намират формата и скрипта. Тогава редиректването ще е във вида
header("location: secretpage.php");
В този пример са зададени само една парола и едно потребителско име за достъп до защитената страница. С помощта на конструкцията switch може да направим множество акаунти за различни потребители, които да имат достъп до различни части от сайта и да ползват за целта различни потреителски имена и пароли. В този случай скрипта login.php може да изглежда по следния начин:
$user = $_POST["potrebitel"];
$pass = $_POST["parola"];
switch(true)
{
case ($user == "user1" && $pass == "pass1"): header("location: http://domain.com/secretdir1/secretpage1.php");
break;
case ($user == "user2" && $pass == "pass2"): header("location: secretdir2/secretpage2.php");
break;
case ($user == "user3" && $pass == "pass3"): header("location: anothersecretpage.php");
break;
default: echo "
Грешно потребителско име или парола";
}
?>
Чрез горния скрипт създадохме 3 акаунта за достъп с потребителски имена и пароли съответно user1/pass1, user2/pass2 и user3/pass3, които водят до различни страници от сайта.