За последние 24 часа нас посетили 17442 программиста и 1626 роботов. Сейчас ищут 1996 программистов ...

Последовательный переход между страницами с сохранением переменных.

Тема в разделе "PHP для новичков", создана пользователем AnonimS, 15 дек 2016.

Метки:
  1. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Здравствуйте! В PHP я новичок, но что-то уже понимаю, а в javascript я можно сказать вообще 0, сейчас встала задачка, уже 2-й день бьюсь, но не пойму как ее реализовать..Суть в следующем, есть 3 страницы и на каждой из страниц пользователь переходит и вводит какие-то данные в формы, либо списком, мы с каждой страницы собираем все это и POST'ом все отправляем в обработчик, но на каждой странице есть свои проверки и т.д., в конце пользователь переходит на определенную страницу. Сейчас есть все это но надо дополнительно в середину кода вставить еще одну страницу. В коде это выглядит примерно так.

    Страница 1(кнопка)
    HTML:
    1. <button class="buy-btn totalBtn" type="button">Выбрать</button>
    AJAX
    Код (Javascript):
    1.     $(".totalBtn").click(function() {
    2.         var t = $("#select-t option:checked").data("t");
    3.         if (typeof t !== "undefined") {
    4.             $.ajax({
    5.                 type: 'POST',
    6.                 url: '../buy.php',
    7.                 data: {
    8.                     t: t
    9.                 },
    10.                 success: function(data) {
    11.  
    12.                     var answer = jQuery.parseJSON(data);
    13.                     if (answer.status === 200) {
    14.                         spop({
    15.                             template: "Спасибо за покупку!",
    16.                             position: 'top-right',
    17.                             autoclose: 5000,
    18.                             style: 'success',
    19.                         });
    20.                         document.location.href = 'ТУТ КОНЕЧНАЯ СТРАНИЦА 3';
    21.                     }
    22.                     if (answer.status === 400) {
    23.                         spop({
    24.                             template: answer.text,
    25.                             position: 'top-right',
    26.                             autoclose: 3000,
    27.                             style: 'error'
    28.                         })
    29.                     }
    30.  
    31.                 },
    32.                 error: function(error) {
    33.                     spop({
    34.                         template: "Ошибка отправки данных",
    35.                         position: 'top-right',
    36.                         autoclose: 3000,
    37.                         style: 'error'
    38.                     })
    39.                 }
    40.             });
    41.         } else spop({
    42.             template: "Ошибка! Выберете",
    43.             position: 'top-right',
    44.             autoclose: 3000,
    45.             style: 'error'
    46.         })
    47.     });
    Страница 2
    PHP:
    1. <form id="buy-further-form">
    2.       <div class="form-group">
    3.         <input class="form-control" type="password" name="pass" placeholder="Сообщение">
    4.       </div>
    5.       <button class="buy-further-btn" type="submit">Купить</button>
    6.     <?php
    7.     if (isset($_POST['pass'])) {$pass = $_POST['pass']; if ($pass == '') {unset($pass);}}
    8.     ?>
    9.     </form>
    PHP обработчик(я его сократил, что бы весь большой код тут размещать..)
    PHP:
    1. <?php
    2. if(isset($_POST['t'])){$tar = $_POST['t']; if ($tar == '') {unset($tar);}}
    3. {
    4. include('asset.php');Доступ к БД
    5.    
    6. //Проверка авторизации
    7.    
    8.     $t=$_POST['t'];
    9.          
    10.     $user_login = $user_info_db['user_login'];
    11.     $user_balance = $user_info_db['user_balance'];
    12. //Проверка баланса
    13.     if($user_balance < $price)die(json_encode(array('status' => 400, 'text' => "Недостаточно денег")));
    14.  
    15. _______________________________________________________________
    16. ТУТ НЕОБХОДИМО ПЕРЕМЕСТИТЬСЯ НА СТРАНИЦУ 2 И ВЗЯТЬ ИЗ ФОРМЫ ДАННЫЕ
    17.  
    18. //q=$_POST['pass'];
    19. _______________________________________________________________
    20.  
    21. //Выполняем команды
    22. exec();
    23.  ..
    24. //Обновление данных БД.    
    25. //    $sql = ....
    26.    
    27.     die(json_encode(array('status' => 200, 'text' => "Успех")));  
    28. //переходим на конечную страницу        
    29. }else die(json_encode(array('status' => 400, 'text' => "Не отправлены данные")));

    Сейчас получается с первой странице, все проверяется, выполняется и в случае успеха переходим на 3, а надо еще зайти на 2 и взять там данные, есть конечно несколько идей, но не одна пока не сработала, подскажите или ткните хотя бы куда копать..
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
  3. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Я кажется понял, надо перейти на страницу 2 и записать в переменную
    PHP:
    1. $_SESSION['pass']=$_POST['pass'];
    А потом к ней обратиться так
    PHP:
    1. $q=$_SESSION['pass']=
    Правильно?
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    и не забыть про session_start().
     
  6. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Спасибо, а session_start(); писать на какой странице?
    --- Добавлено ---
    Да, только где именно стартовать сессию..
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    На каждой, в самом начале.
     
  8. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    на главной стратовать
     
  9. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Спасибо! Сейчас попробую, думаю разберусь.
     
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    $_COOKIE AND DataBase MySQLi
    --- Добавлено ---
    но потом прочел, ты новичек пока
     
  11. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Решил все таки через $_COOKIE, вроде все работает, но есть одно но, куки так и остаются висеть, пробовал setcookie('t',"");, но почему-то не удаляется..
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    потому что в мануале нужно просмотреть или задать в гугле вопрос - PHP $_COOKIE delete
     
    SamyRed нравится это.
  13. AnonimS

    AnonimS Новичок

    С нами с:
    8 дек 2016
    Сообщения:
    88
    Симпатии:
    9
    Спасибо, забыл указать время..