2014-12-17 4 views
0

Я успешно создал многостраничную php-форму, которая загружает все данные в базу данных mysql. Теперь я пытаюсь заставить эту функцию почты работать с ней, поэтому мы можем получать электронную почту каждый раз, когда кто-то успешно заполняет форму. Я получаю электронную почту сейчас, но не информацию из формы. Я не уверен, что я делаю неправильно, я предполагаю, что это как-то связано с SESSION, но мне сложно найти решение.Email mysql query после многостраничной php-формы

Вот код, я работаю с:

<?php 
session_start(); 

foreach ($_POST as $key => $value) { 
    $_SESSION['post'][$key] = $value; 
} 

extract($_SESSION['post']); // Function to extract array 
$connection = mysql_connect("mysql.database.com", "r-----a", "An-----1!"); 
$db = mysql_select_db("---------", $connection); // Storing values in database. 
$query = mysql_query("insert into detail (whenadded,yourname,reservationid,reservationname,property,eta,cellphone,email,signature,petcontract) values(Now(),'$yourname','$reservationid','$reservationname','$property','$eta','$cellphone','$email','$signature','$petcontract')", $connection); 

/* Set e-mail recipient */ 
$myemail = "[email protected]"; 

$yourname = ($_POST['yourname']); 
$reservationid = ($_POST['reservationid']); 
$reservationname = ($_POST['reservationname']); 
$property = ($_POST['property']); 
$eta = ($_POST['eta']); 
$cellphone = ($_POST['cellphone']); 
$email = ($_POST['email']); 
$petcontract = ($_POST['petcontract']); 

/* Let's prepare the message for the e-mail */ 
$subject = "$yourname has checked in using Express Checkin!"; 

$message = " 

Information of Express Checkin User: 

Name: $yourname 
Reservation ID: $reservationid 
Name on Reservation: $reservationname 
Property: $property 
Cell Phone: $cellphone 
Email: $email 
ETA: $eta 
Pet Contract: $petcontract 

"; 

/* Send the message using mail() function */ 
mail($myemail, $subject, $message); 

if ($query) { 
    echo '<div class="absolutecenter boxshadows"><img src="../img/thankyoupage.png" class="img-responsive"></div>'; 
} else { 
    echo '<p><span>Form Submission Failed!</span></p>'; 
} 

unset($_SESSION['post']); // Destroying session 

?> 

Также форма заполнения всех полей в базе данных успешно и производит файл Img от эха ...

+1

Я не понимаю, как работает ваша вставка. ваши переменные не заполняются при его создании. – Rooster

+0

'extract()' - это то, что заполняет его переменные. – mopo922

+0

@ mopo922 ahh. не был знаком с этой функцией. +1 к вашему ответу :) – Rooster

ответ

3

Так как вы сделали это :

extract($_SESSION['post']); // Function to extract array. 

... этот блок не является необходимым:

$yourname = ($_POST['yourname']); 
$reservationid = ($_POST['reservationid']); 
$reservationname = ($_POST['reservationname']); 
$property = ($_POST['property']); 
$eta = ($_POST['eta']); 
$cellphone = ($_POST['cellphone']); 
$email = ($_POST['email']); 
$petcontract = ($_POST['petcontract']); 

На самом деле, вероятно, поэтому ваши переменные не заполняются. Они переписываются с пустыми значениями, так как $_POST не содержит значений с предыдущих страниц.

+0

Удивительный! Большое спасибо! Сейчас работает как шарм. – ColoradoWebPro

+0

@ColoradoWebPro np, plz «принять» ответ, если вы не возражаете – mopo922