Передача значений между страницами

Discussion in 'PHP' started by programming, 29 Aug 2009.

  1. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Есть две страницы - index1.php и index2.php.
    Со страницы index1.php идёт редирект на страницу index2.php. Задача: переслать значения переменных(например, $a и $b) со страницы index1.php на страницу index2.php.
    Один вариант я знаю, но он меня не совсем устраивает - это методом гет - то есть в адресной строке прописать урл с переменными. Это не подходит.. Ещё есть вариант через форму - но у меня же выполняется редирект и пользователь никакие действия не производит.. Есть ли какой-то другой вариант передачи значений? Конечно, лучше всего было бы методом пост передавать..
     
  2. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    скрытая форма не катит? ,пробуй через сессии.
     
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    два скрипта - test.php и test1.php:

    1. test.php:

    PHP:
    <?php
    $a 
    "test"';
    if (strpos($_SERVER['
    PHP_SELF'],"test.php")) header("Location:http://путь_до_второго_скрипта/test1.php");
    ?>
    2. test1.php:
    PHP:
    <?php
    include "test.php";
    echo 
    $a;
    ?>
     
    #3 Pashkela, 29 Aug 2009
    Last edited: 29 Aug 2009
    1 person likes this.
  4. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Вы уверены, что такое будет работать?
     
  5. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    в смысле? Да, уверен:)
     
  6. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    2 Pashkela
    почему include "user.php"; ?
     
  7. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    index1.php
    PHP:
    <?php
    session_start
    ();

    $_SESSION['a'] = $a;
    $_SESSION['b'] = $b;

    ?>
    index2.php
    PHP:
    <?php
    session_start
    ();

    $a $_SESSION['a'];
    $b $_SESSION['b'];

    session_destroy();
    ?>
     
  8. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Pashkela, проверяй скрипты перед тем, как выкладывать...

    Банально с помощью яваскрипта решается так:
    PHP:
    <html><body>
    <
    form id='frm' action='script2.php' method='post' style='display:none;'>
    <!-- 
    передаем тут параметры в полях -->
    <
    input type='hidden' name='param1' value='значение'>
    </
    form>
    <
    script language='JavaScript'>
    document.getElementById('frm').submit();
    </script>
    </body></html>
    Соответственно, для управляемого редиректа нужно сделать функцию и вызывать ее, вроде такой:

    PHP:
    <html><body>
    <
    form id='frm' action='script2.php' method='post' style='display:none;'>
    <!-- 
    передаем тут параметры в полях -->
    <
    input type='hidden' name='param1' id='param1'>
    </
    form>
    <
    script language='JavaScript'>
    function 
    redirect(param)
    {
      
    document.getElementById('param1').value=param;
      
    document.getElementById('frm').submit();
    }

    //вызываем так:
    redirect(123);
    //при этом будет передан параметр param1=123 скрипту script2.php
    </script>
    ...
     
    #8 d_x, 29 Aug 2009
    Last edited: 29 Aug 2009
  9. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Ошибся децл, исправил первый пост

    ЗЫЖ ту Егорыч+++:

    в скрипте нет ошибки, если нажать на quote или edit, однако при отображении куда-то кавычка потерялась
     
    #9 Pashkela, 29 Aug 2009
    Last edited: 29 Aug 2009
    1 person likes this.
  10. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    сколько способов для простой "задачки" :)

    Можно ещё писать значения в файл и брать их от туда, а ещё лучше в БД :D
     
    4 people like this.
  11. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Конечно, лучше всего использовать сессии.
    Имхо, безопаснее.