2015-03-24 2 views
0

Я пытаюсь отправить данные POST в переменную SESSIONсессия не будет отображаться

$ _SESSION [ 'план'] = $ _POST [ 'план']

info.php показывают, что сеансы загружен. браузер -> элемент проверки показывает, что сеансы инициализированы, но нет ключей => значений.

Но я не могу получить значение сеанса для отображения. ошибок в журналах apache.

основной динамический кадр:

кошка index.php

<?php 
session_start(); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta name="robots" content="index,follow"/> 
<link rel="icon" href="images/favicon.ico" type="image/x-icon"> 
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"> 
<link rel="stylesheet" type="text/css" href="style.css"> 
</head> 
<body> 

<nav class="nav"> 
     <ul> 
       BLAH 
     </ul> 
</nav> 
<div id="content"> 
     <?php 
       $pages_dir = 'pages'; 
       if (!empty($_GET['p'])) { 
         $pages = scandir($pages_dir, 0); 
         unset($pages[0], $pages[1]); 
         $p=$_GET['p']; 
         if(in_array($p.'.inc.php', $pages)){ 
           include($pages_dir.'/'.$p.'.inc.php'); 
         }else { 
           echo 'Sorry, page not found.'; 
         } 
       }else{ 
         include($pages_dir.'/home.inc.php'); 
       } 
     ?> 

</div> 
</body> 

</html> 

пользователя страница формы:

кошки страницы/payment.inc.php

<?php 
//$_SESSION['plan'] = $_POST['plan']; 
?> 
<div id="content_pay"> 

<form action="pages/scheckout.php" method="post"> 
     <div> 

       <input type="radio" id="plan1" name="plan" value="2500"> Beta membership <br><br> 
       <input type="radio" id="plan2" name="plan" value="3500"> VIP membership <br><br> 

       <label for="plan"> If you would like to pay another amount, enter the amount here:</label> 
       <input type="text" id="plan3" name="plan" /> 
       <br> 
       <label for="invoice_num"> Enter the invoice number here:</label> 
       <input type="text" name="invoice_num" /> <br> 
       <input type="submit" value="submit" name="submit"> 
     </div> 
</form> 


</div> 

В основном эта страница здесь просто захватить POST и назначить его на заседание затем перенаправлять с сеансом нагруженной:

кошачьих страниц/scheckout.php

<?php 
session_start(); 

$_SESSION['plan'] = $_POST['plan']; 

//needed to prevent weird race conditions 
session_write_close(); 
header("location: ../index.php?p=scheckout"); 
die(); 

echo "<br>"; 
echo $_SESSION['plan']; 

?> 

Где идет в:

кошки страницы/scheckout.inc.php

<?php 

require_once('pages/sconfig.php'); 

?> 

<div id="content_pay"> 

<form action="pages/scharge.php" method="post"> 
     <div> 


     <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
       data-key="<?php echo $stripe['publishable_key']; ?>" 
       myElem.setAttribute('data-amount', <?php $_SESSION['plan']; ?>); 
       myElem.setAttribute('data-description', <?php $_SESSION['plan']; ?>); > 
     </script> 
     </div> 

</form> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 
<br> 


<?php 
echo $_SESSION['plan']; 
?> 

Как получить СЕССИИ, загруженные из POST для отображения?

+1

ли сессия началась внутри всех страниц сессий? –

+0

, как только я поместил переключатели в одну форму и текст в другую форму, я смог правильно отправить и получить данные. Я никогда не нашел способ заставить одну кнопку работать с обоими элементами. Я просто страдал двумя пуговицами. – mine

ответ

1

Вы должны начать сеанс только один раз, перед выходом html. Сеанс остается открытым, пока вы не используете session_destroy или unset значение переменной $_SESSION или закройте браузер. Я предлагаю вам удалить все session_start, кроме одного в index.php.

+0

index.php - это кадр, и внутри этого фрейма стоит $ pages = scandir ($ pages_dir, 0); и вот где все мои файлы .inc.php. Они рисуются динамически. Таким образом, index.php каскадирует session_start() по всем страницам .inc.php. Нет ошибок в журналах (сеанс уже запущен), если я не попытаюсь добавить session_start на страницу .inc.php – mine

0

использовать SESSION [ 'план'], но следует использовать эхо-SESSION [ 'план']

<script src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
      data-key="<?php echo $stripe['publishable_key']; ?>" 
      myElem.setAttribute('data-amount', <?php echo($_SESSION['plan']); ?>); 
      myElem.setAttribute('data-description', <?php echo($_SESSION['plan']); ?>); > 
    </script> 
+0

. Я получаю ошибку в журналах -> Undefined index: PLAN на страницах/scheckout.inc.php в строке 35 – mine

Смежные вопросы