Парольная защита одной веб-страницы

darmoid

Киллер
Регистрация
9 Мар 2007
Сообщения
397
Реакции
126
В просторах интернета нашел один простой код:

Код:
<?php if($_POST['password'] == 'Any_Password_You_Like'){
?>
<!--html code for page goes here -->
<?php
} else {
?>
<script language=javascript>
window.open("http://www.yoursite.com/default.htm");
</script>
<?php
}
?>

Но при установке этого кода выдает: "Notice: Undefined index: password in". Также я не могу понять где добавить форму для ввода этого пароля.

Уже перепробовал кучу простеньких пхп скриптов для защиты паролем одной страницы и ни один не хочет нормально работать. Движок Опенкарт нужно отдельную страницу оптовых цен выводить после ввода пароля.
 
Код:
if(isset($_POST['password']) and $_POST['password']=='any_password'){ } else { }
 
1. вы обращаетесь в массиву $_POST по индексу password, который может и не существовать
2. для того, чтоб масиве $_POST был элемент password, нужно на скрипт в вашем примере запостить форму в которой есть html элемент с именем name(и это обязательно!) password
итого, получем наипростейший пример
Код:
<form id='password-form' name='password-form' action='password_handler.php' method='post'>
<input type='password' name='password'/>
<input type='submit'/>
</form>

Код:
action='password_handler.php'
password_handler.php - нужно заменить на название скрипта, который обрабатывает пароль и что-то там показывает

думаю, что стоит почитать немного основы HTML/PHP, а не просто копировать код без знания, что вообще он делает

P.S.: эту задачу также можно решить с помощью htaccess и htpasswd подхода для апача
 
1.Создать страницу
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Мой сайт</title>
</head>
<!-- -->
<body>
<form action="" method="post">
Логин: <input type="text" name="username">
Пароль: <input type="password" name="password">
<input type="submit" name="submit" value="send">
</form>
<!-- -->
</body>

</html>
2.написать пхп код
PHP:
<?php
$user = "admin";
$pass = "admin";
$access = false;
if(isset($_POST["submit"]))
{
       if(htmlentities($_POST["username"]) == $user && htmlentities($_POST["password"]) == $pass){
              $access = true;
       }
}
?>
<?
if(!$access){
?>
хтмл код для не авторизованных
<?php
}else{
?>
хтмл код для авторизованных
<?php
}
?>

3.и в последок
Код:
<?php
$user = "admin";
$pass = "admin";
$access = false;
if(isset($_POST["submit"]))
{
       if(htmlentities($_POST["username"]) == $user && htmlentities($_POST["password"]) == $pass){
              $access = true;
       }
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Мой сайт</title>
</head>
<!-- -->
<body>
<?php
if(!$access){
?>
<form action="" method="post">
Логин: <input type="text" name="username">
Пароль: <input type="password" name="password">
<input type="submit" name="submit" value="send">
</form>
<?php
}else{
?>
<!-- хтмл для авторизованных-->
<?php
}
?>
</body>
</html>

писал на лету не оптимизированно строго не судить
 
Назад
Сверху