2016-10-24 2 views
0

У меня проблема с передачей переменных $ _SESSION через процесс с несколькими страницами, используя PHP-почту. Письма идут через штраф, хотя они не отображают переменные. Моя цель состоит в том, чтобы пользователи заполняли формы на нескольких страницах и возвращали мне данные.Передача переменных сессии с помощью PHP Mail

Page 1

<?php 
session_start(); 
?> 
        <form method="post" action="submitpage.php"> 
       <label> 
       <input type="radio" name="vehicle_type" value="car" checked /> 
       <img class="img-responsive" src="img/vehicle2.png"> 
       </label> 
       <label> 
       <input type="radio" name="vehicle_type" value="suv" /> 
       <img class="img-responsive" src="img/vehicle2.png"> 
       </label> 
       <label> 
       <input type="radio" name="vehicle_type" value="van" /> 
       <img class="img-responsive" src="img/vehicle2.png"> 
       </label>          
       <label> 
       <input type="radio" name="vehicle_type" value="truck" /> 
       <img class="img-responsive" src="img/vehicle2.png"> 
       </label>  
       <label> 
       <input type="radio" name="vehicle_type" value="none" /> 
       <img class="img-responsive" src="img/vehicle2.png"> 
       </label>      
       </form> 

Page 2

<?php 
session_start(); 
$_SESSION['vehicle_type'] = $_POST['vehicle_type']; 
?> 
        <form method="post" action="emailexample.php" id="submit-form"> 
       <input type="Email" name="email"> 
       <input type="submit" name="submit" value="Submit" id="submitbtn"> 
       </form> 

Page 3

<?php 
session_start(); 

$to  = '[email protected]'; 
$subject = 'test '; 
$message = "Your Vehicle Type is: " . $_POST['vehicle_type'] ."\r\n"; 
$headers = 'From: [email protected]' . "\r\n" . 


mail($to, $subject, $message, $headers); 
?> 
+1

какие переменные сеанса связи? страница # 3 вообще не использует $ _SESSION, просто переменную $ _POST ... –

+0

Я попытался заменить $ _POST на $ _SESSION и все еще получил пустой результат, отправленный мне по электронной почте. –

+1

Чтобы отладить, выводите всю '$ _SESSION' на каждом этапе и смотрите, где значения сеанса перестают сохраняться. – showdev

ответ

0

На странице 1 следует поместить кнопку представить что-то вроде этого

<input type="submit" name="submit" value="Submit" /> 

На странице 3 следует изменить

$message = "Your Vehicle Type is: " . $_SESSION['vehicle_type'] ."\r\n"; 

и вы пропустили точку с запятой в переменной $ заголовков в конце. Должно быть

$headers = 'From: [email protected]' . "\r\n"; 
+0

Это то, что я изначально пытался, когда письма были пустыми. Кажется, это не работает для меня:/ –

+0

@ Joel D'Arnot См. Мой отредактированный ответ выше. – dkc

+0

Aha! Да, я вижу, что я не отправлял информацию, которая будет сохранена в сессии на стр. 1. Теперь она работает! Большое вам спасибо :) –

0

В странице 3

использование $ _SESSION [ 'vehicle_type'] вместо $ _POST ['vehicle_type']

+0

Как указано в предыдущем комментарии, это решение, похоже, не работает для меня. –

+0

убедитесь, что $ _POST ['vehicle_type'] не пуст –

+0

Он не должен быть пустым. Даже если выбор не сделан, значение по умолчанию «проверено» радио должно все же проходить, если оно не будет? –

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