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

Тема в разделе "Как сделать...", создана пользователем darmoid, 8 окт 2014.

  1. darmoid

    darmoid Киллер

    Регистр.:
    9 мар 2007
    Сообщения:
    372
    Симпатии:
    115
    В просторах интернета нашел один простой код:

    Код:
    <?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". Также я не могу понять где добавить форму для ввода этого пароля.

    Уже перепробовал кучу простеньких пхп скриптов для защиты паролем одной страницы и ни один не хочет нормально работать. Движок Опенкарт нужно отдельную страницу оптовых цен выводить после ввода пароля.
     
  2. SimonSmith

    SimonSmith Постоялец

    Регистр.:
    25 сен 2008
    Сообщения:
    148
    Симпатии:
    33
    Код:
    if(isset($_POST['password']) and $_POST['password']=='any_password'){ } else { }
     
  3. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.724
    Симпатии:
    2.100
    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 подхода для апача
     
    latteo, Bauka и Denis_Pi нравится это.
  4. artxaker

    artxaker Создатель

    Регистр.:
    25 авг 2009
    Сообщения:
    39
    Симпатии:
    35
    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>
    
    писал на лету не оптимизированно строго не судить