Открытие html страницы посредством php ...

Discussion in 'PHP' started by Lionis, 31 Jul 2009.

  1. Lionis

    Lionis Member

    Joined:
    13 Dec 2008
    Messages:
    99
    Likes Received:
    7
    Reputations:
    0
    [​IMG]
    Проблема состоит в том как открыть обычную html страницу через PHP , т.е. - чтобы после ввода логина пароля php не директил просто на страницу а открывал ее в себе ... И чтобы при входе на эту html страницу у нас редирект на php Логин/пароль .
    Для пример :
    у нас есть :
    index.php
    yes.html
    no.html
    при входе на index.php мы вводим правильные логин/пароль(логин парольпусть будут вшиты в сам код...) - открывается html страница yes.html / ну если же введенные данные не верны тогда редирект на no.html . Но в этом случае , если я просто иду на site.ru/yes.html , происходит редирект на site.ru/index.php
    вродь понятно объяснил , помогите плз .
     
  2. Pernat1y

    Pernat1y Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    496
    Likes Received:
    78
    Reputations:
    7
    просто проверяй, залогинен-ли пользователь, и в зависимости от результата суй в ифрэйм свою страницу
     
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,752
    Likes Received:
    1,044
    Reputations:
    339
    Зачем iframe? Есть if и есть <<<HTML.... HTML; или просто

    echo '<td>
    <td><td><td><td><td><td>
    <td><td><td><td><td>
    <td>';
     
  4. xa-xa89

    xa-xa89 Elder - Старейшина

    Joined:
    17 May 2008
    Messages:
    109
    Likes Received:
    27
    Reputations:
    2
    Code:
    if ($user_login==true) 
    { include('yes.html'); } 
    else include('no.html');
    если чего не так поправьте могу ошибаться
     
  5. Lionis

    Lionis Member

    Joined:
    13 Dec 2008
    Messages:
    99
    Likes Received:
    7
    Reputations:
    0
    +

    Ребят , скиньте готовый код - т.к - не получается ...
    каждому +10
     
  6. xa-xa89

    xa-xa89 Elder - Старейшина

    Joined:
    17 May 2008
    Messages:
    109
    Likes Received:
    27
    Reputations:
    2
    PHP:
    <form method="POST" action=""> 
    <input type="text" name="user">
    <input type="password" name="pass"> 
    <input type="submit" value="Eneter"> 
    <? if((isset($_POST['pass'])) and (isset($_POST['user'])))

    if (($_POST['pass']=='password') and ($_POST['user']=='user'))
    { include('./yes.html');} 
    else include('./no.html'); }
    так?
     
    1 person likes this.
  7. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    391
    Likes Received:
    115
    Reputations:
    23
    PHP:
    <?php

    $file
    ['no'] = 'no.html';
    $file['yes'] = 'no.html';

    if (
    $_GET['login'] == $login && $_GET['pass'] == $pass)
    {
      
    $content file_get_contents($file['yes']);
    } else {
      
    $content file_get_contents($file['no']);
    }
    echo (
    $content);

    ?>
     
    #7 FireFenix, 31 Jul 2009
    Last edited: 31 Jul 2009
    1 person likes this.
  8. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,752
    Likes Received:
    1,044
    Reputations:
    339
    ))) аааа, не успел!!!! Но всё равно выложу, т.к. у меня больше условиям задачи соотвествует:
    index.php:
    PHP:
    <?php 
    @ini_set("display_errors","0");

    $submit $_POST['submit'];
    $login $_POST['login'];
    $pass $_POST['pass'];

    if(isset(
    $submit) && !empty($login) && !empty($pass)) {
      if (
    $login!= 'admin' && $pass!='123') {
            
    header ('location:no.php') or die('error');
      } else {
            echo 
    '<center><b>
               Вы ввели правильный пароль, добро пожаловать в админку!
              <b>
              </center>
             редактировать разделы:'
    ;// тут типо код yes.html    
      
    }
    } else {
    ?>
    <html>
    <head> 
    <meta http-equiv="Content-Type" content="text; charset=windows-1251"> 
    <title>Логин</title> 
    </head> 
    <bоdу> 
    <form method="post"> 
    <table> 
    <tr><td><span>Логин:</span></td><td><input type="text" name="login" /></td></tr> 
    <tr><td><span>Пароль:</span></td><td><input type="password" name="pass" /></td></tr> 
    </table> 
    <input type="submit" name="submit" value="Войти:" /> 
    </form> 
    </bоdу> 
    </html>
    <?}?>
    просто не no.html, а no.php, чтобы определять рефа, код no.php:
    PHP:
    <?php
    if (getenv("HTTP_REFERER")!='http://site.ru/index.php') exit;
    else echo 
    'Неверный логин или пароль!!!'; exit;
    ?>
     
    1 person likes this.
  9. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,933
    Likes Received:
    769
    Reputations:
    198
    Pashkela
    PHP:
    if (getenv("HTTP_REFERER")!='http://site.ru/index.php') exit;
    Потделать реферер непроблема, сам знаеш:
    CURLOPT_REFERER

    index.php
    PHP:
    <?php
    session_start
    ();
    $login 'admin';
    $pass '123';

    function 
    Form()
    {
        echo 
    '<table border="1" align="center">
    <form method="post" enctype="application/x-www-form-urlencoded" action='
    .$_SERVER['PHP_SELF'].'>
    <tr>
        <td colspan="2">Авторизация</td>
        
    </tr>
    <tr>
        <td>Логин</td>
        <td><input type="text" size="20" maxlength="20" name="login"></td>
    </tr>
    <tr>
        <td>Пароль</td>
        <td><input type="password" size="20" maxlength="20" name="pass"></td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" value="login"></td>

    </tr>
    </form>
    </table>
        '
    ;
    }
    if(empty(
    $_POST['login']) || empty($_POST['pass']))
    {
    Form();
    exit;
    }
    if(
    $_POST['login'] === $login && $_POST['pass'] === $pass)
    {
        
    $_SESSION['login'] = 'yes';
    header('Location: yes.php');
        echo 
    'Вы авторизованы, перейдите по ссылке: <a href="yes.php">ССЫЛКО</a>';
        
        exit;
        
    } else {
        
        echo 
    '<center><font color="red">Пароль неверный</font></center>';
        
    Form();
        
    $_SESSION['login'] = 'no';    
        exit;
    }
    ?>
    yes.php
    PHP:
    <?php
    session_start
    ();
    if(!isset(
    $_SESSION['login']) || $_SESSION['login'] == 'no')
        {
            
    header('Location: index.php');
            exit;
        }

    ?>

    а тут всякая хрень которую видно только если авторизация успешна

    Писал быстро поетому мог гдето что-то упустить, но вроде не упустил. Обязательное условие register_globals=off;
    При правильной авторизации перенаправление на yes.php, при неправильно снова покажет форму.
     
    _________________________
    #9 b3, 31 Jul 2009
    Last edited: 1 Aug 2009
    1 person likes this.
  10. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,937
    Likes Received:
    805
    Reputations:
    224
    Местами поменять надо
     
  11. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,933
    Likes Received:
    769
    Reputations:
    198
    Без разницы, если браузер поддерживает редиректы, то в любом случае ты неуспееш увидеть ЕХО, будет редирект. Если же не подддреживает то тоже без разницы будет ЕХО, потом несработает редирект либо несработает редирект и будет ЕХО.
     
    _________________________
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,937
    Likes Received:
    805
    Reputations:
    224
    Ну да, если варнинг и раскрытие путей не волнует, то без разницы
     
    1 person likes this.
  13. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,933
    Likes Received:
    769
    Reputations:
    198
    Будь добр покажи варнинг и раскрытие путей.
     
    _________________________
  14. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,752
    Likes Received:
    1,044
    Reputations:
    339
    Code:
    Потделать реферер непроблема, сам знаеш:
    CURLOPT_REFERER
    
    я пошутил в честь дня сисадмина - кстати, всех с праздником - на самом деле всё это бред, нахрена 3 страницы аж и переадресации туда-сюда, если можно вообще всё в одну запихать
     
  15. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,937
    Likes Received:
    805
    Reputations:
    224
    Вот тебе пример того что выдается при удачной авторизации:

    Вы авторизованы, перейдите по ссылке: ССЫЛКО
    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\fepo.ru\www\gg\index.php:40) in Z:\home\fepo.ru\www\gg\index.php on line 41
     
    1 person likes this.
  16. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,933
    Likes Received:
    769
    Reputations:
    198
    Тогда мне несовсем понятно почему поменяв местами ехо и редирект такого варнинга не возникнет.
     
    _________________________
  17. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,937
    Likes Received:
    805
    Reputations:
    224
    Потому что заголовок должен идти до выдачи содержимого страницы, а не после
     
    1 person likes this.
Loading...