hi im trying to create an php email script that will also submit the session data from a multi part form but somehow its not working the session data is not getting submited.take a look at my code hope someone can help out


//let's start the session

//now, let's register our session variables
//finally, let's store our posted values in the session variables
$_SESSION['arrive'] = $_POST['arrive'];
$_SESSION['depart'] = $_POST['depart'];
$_SESSION['rooms'] = $_POST['rooms'];
$_SESSION['adults'] = $_POST['adults'];
$_SESSION['children'] = $_POST['children'];
$_SESSION['fullname'] = $_POST['fullname']; 
$_SESSION['email'] = $_POST['email']; 

<style type="text/css">
input[type="text"] {
    width: 250px;

textarea {
    width: 400px;

<h2>Please fill in the form below to complete your booking.</h2></br>

<font size="3">You will Be Arriving on <?php echo $_SESSION['arrive']; ?>  </font></br>
<font size="3">You will be departing on <?php echo $_SESSION['depart']; ?> </font></br>
<font size="3">Number of rooms <?php echo $_SESSION['rooms']; ?> </font></br>
<font size="3">Number of adults <?php echo $_SESSION['adults']; ?> </font></br>
<font size="3">Number of children <?php echo $_SESSION['children']; ?> </font></br>
 <font size="3">Your Name <?php echo $_SESSION['fullname']; ?> </font></br>
<font size="3">Your Email <?php echo $_SESSION['email']; ?> </font></br></br>

<form method="post" action="email.php">
<font size="3">Tel Number: <input type="text" name="tel" size="35"></font></br></br>
<font size="3">Fax Number: <input type="text" name="fax" size="35"></font></br></br>
<font size="3">Country of residence
<select name="country">
    <option value="Afghanistan">Afghanistan</option>
    <option value="Albania">Albania</option>
    <option value="Algeria">Algeria</option>
    <option value="American Samoa">American Samoa</option>
    <option value="Andorra">Andorra</option>
    <option value="Angola">Angola</option>
    <option value="Anguilla">Anguilla</option>
    <option value="Antartica">Antarctica</option>
    <option value="Antigua and Barbuda">Antigua and Barbuda</option>
    <option value="Argentina">Argentina</option>
    <option value="Armenia">Armenia</option>
    <option value="Aruba">Aruba</option>
    <option value="Australia">Australia</option>
    <option value="Austria">Austria</option>
    <option value="Azerbaijan">Azerbaijan</option>
    <option value="Bahamas">Bahamas</option>
    <option value="Bahrain">Bahrain</option>
    <option value="Bangladesh">Bangladesh</option>
    <option value="Barbados">Barbados</option>
    <option value="Belarus">Belarus</option>
    <option value="Belgium">Belgium</option>
    <option value="Belize">Belize</option>
    <option value="Benin">Benin</option>
    <option value="Bermuda">Bermuda</option>
    <option value="Bhutan">Bhutan</option>
    <option value="Bolivia">Bolivia</option>
    <option value="Bosnia and Herzegowina">Bosnia and Herzegowina</option>
    <option value="Botswana">Botswana</option>
    <option value="Bouvet Island">Bouvet Island</option>
    <option value="Brazil">Brazil</option>
    <option value="British Indian Ocean Territory">British Indian Ocean Territory</option>
    <option value="Brunei Darussalam">Brunei Darussalam</option>
    <option value="Bulgaria">Bulgaria</option>
    <option value="Burkina Faso">Burkina Faso</option>
    <option value="Burundi">Burundi</option>
    <option value="Cambodia">Cambodia</option>
    <option value="Cameroon">Cameroon</option>
    <option value="Canada">Canada</option>
    <option value="Cape Verde">Cape Verde</option>
    <option value="Cayman Islands">Cayman Islands</option>
    <option value="Central African Republic">Central African Republic</option>
    <option value="Chad">Chad</option>
    <option value="Chile">Chile</option>
    <option value="China">China</option>
    <option value="Christmas Island">Christmas Island</option>
    <option value="Cocos Islands">Cocos (Keeling) Islands</option>
    <option value="Colombia">Colombia</option>
    <option value="Comoros">Comoros</option>
    <option value="Congo">Congo</option>
    <option value="Congo">Congo, the Democratic Republic of the</option>
    <option value="Cook Islands">Cook Islands</option>
    <option value="Costa Rica">Costa Rica</option>
    <option value="Cota D'Ivoire">Cote d'Ivoire</option>
    <option value="Croatia">Croatia (Hrvatska)</option>
    <option value="Cuba">Cuba</option>
    <option value="Cyprus">Cyprus</option>
    <option value="Czech Republic">Czech Republic</option>
    <option value="Denmark">Denmark</option>
    <option value="Djibouti">Djibouti</option>
    <option value="Dominica">Dominica</option>
    <option value="Dominican Republic">Dominican Republic</option>
    <option value="East Timor">East Timor</option>
    <option value="Ecuador">Ecuador</option>
    <option value="Egypt">Egypt</option>
    <option value="El Salvador">El Salvador</option>
    <option value="Equatorial Guinea">Equatorial Guinea</option>
    <option value="Eritrea">Eritrea</option>
    <option value="Estonia">Estonia</option>
    <option value="Ethiopia">Ethiopia</option>
    <option value="Falkland Islands">Falkland Islands (Malvinas)</option>
    <option value="Faroe Islands">Faroe Islands</option>
    <option value="Fiji">Fiji</option>
    <option value="Finland">Finland</option>
    <option value="France">France</option>
    <option value="France Metropolitan">France, Metropolitan</option>
    <option value="French Guiana">French Guiana</option>
    <option value="French Polynesia">French Polynesia</option>
    <option value="French Southern Territories">French Southern Territories</option>
    <option value="Gabon">Gabon</option>
    <option value="Gambia">Gambia</option>
    <option value="Georgia">Georgia</option>
    <option value="Germany">Germany</option>
    <option value="Ghana">Ghana</option>
    <option value="Gibraltar">Gibraltar</option>
    <option value="Greece">Greece</option>
    <option value="Greenland">Greenland</option>
    <option value="Grenada">Grenada</option>
    <option value="Guadeloupe">Guadeloupe</option>
    <option value="Guam">Guam</option>
    <option value="Guatemala">Guatemala</option>
    <option value="Guinea">Guinea</option>
    <option value="Guinea-Bissau">Guinea-Bissau</option>
    <option value="Guyana">Guyana</option>
    <option value="Haiti">Haiti</option>
    <option value="Heard and McDonald Islands">Heard and Mc Donald Islands</option>
    <option value="Holy See">Holy See (Vatican City State)</option>
    <option value="Honduras">Honduras</option>
    <option value="Hong Kong">Hong Kong</option>
    <option value="Hungary">Hungary</option>
    <option value="Iceland">Iceland</option>
    <option value="India">India</option>
    <option value="Indonesia">Indonesia</option>
    <option value="Iran">Iran (Islamic Republic of)</option>
    <option value="Iraq">Iraq</option>
    <option value="Ireland">Ireland</option>
    <option value="Israel">Israel</option>
    <option value="Italy">Italy</option>
    <option value="Jamaica">Jamaica</option>
    <option value="Japan">Japan</option>
    <option value="Jordan">Jordan</option>
    <option value="Kazakhstan">Kazakhstan</option>
    <option value="Kenya">Kenya</option>
    <option value="Kiribati">Kiribati</option>
    <option value="Democratic People's Republic of Korea">Korea, Democratic People's Republic of</option>
    <option value="Korea">Korea, Republic of</option>
    <option value="Kuwait">Kuwait</option>
    <option value="Kyrgyzstan">Kyrgyzstan</option>
    <option value="Lao">Lao People's Democratic Republic</option>
    <option value="Latvia">Latvia</option>
    <option value="Lebanon" >Lebanon</option>
    <option value="Lesotho">Lesotho</option>
    <option value="Liberia">Liberia</option>
    <option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
    <option value="Liechtenstein">Liechtenstein</option>
    <option value="Lithuania">Lithuania</option>
    <option value="Luxembourg">Luxembourg</option>
    <option value="Macau">Macau</option>
    <option value="Macedonia">Macedonia, The Former Yugoslav Republic of</option>
    <option value="Madagascar">Madagascar</option>
    <option value="Malawi">Malawi</option>
    <option value="Malaysia">Malaysia</option>
    <option value="Maldives">Maldives</option>
    <option value="Mali">Mali</option>
    <option value="Malta">Malta</option>
    <option value="Marshall Islands">Marshall Islands</option>
    <option value="Martinique">Martinique</option>
    <option value="Mauritania">Mauritania</option>
    <option value="Mauritius">Mauritius</option>
    <option value="Mayotte">Mayotte</option>
    <option value="Mexico">Mexico</option>
    <option value="Micronesia">Micronesia, Federated States of</option>
    <option value="Moldova">Moldova, Republic of</option>
    <option value="Monaco">Monaco</option>
    <option value="Mongolia">Mongolia</option>
    <option value="Montserrat">Montserrat</option>
    <option value="Morocco">Morocco</option>
    <option value="Mozambique">Mozambique</option>
    <option value="Myanmar">Myanmar</option>
    <option value="Namibia">Namibia</option>
    <option value="Nauru">Nauru</option>
    <option value="Nepal">Nepal</option>
    <option value="Netherlands">Netherlands</option>
    <option value="Netherlands Antilles">Netherlands Antilles</option>
    <option value="New Caledonia">New Caledonia</option>
    <option value="New Zealand">New Zealand</option>
    <option value="Nicaragua">Nicaragua</option>
    <option value="Niger">Niger</option>
    <option value="Nigeria">Nigeria</option>
    <option value="Niue">Niue</option>
    <option value="Norfolk Island">Norfolk Island</option>
    <option value="Northern Mariana Islands">Northern Mariana Islands</option>
    <option value="Norway">Norway</option>
    <option value="Oman">Oman</option>
    <option value="Pakistan">Pakistan</option>
    <option value="Palau">Palau</option>
    <option value="Panama">Panama</option>
    <option value="Papua New Guinea">Papua New Guinea</option>
    <option value="Paraguay">Paraguay</option>
    <option value="Peru">Peru</option>
    <option value="Philippines">Philippines</option>
    <option value="Pitcairn">Pitcairn</option>
    <option value="Poland">Poland</option>
    <option value="Portugal">Portugal</option>
    <option value="Puerto Rico">Puerto Rico</option>
    <option value="Qatar">Qatar</option>
    <option value="Reunion">Reunion</option>
    <option value="Romania">Romania</option>
    <option value="Russia">Russian Federation</option>
    <option value="Rwanda">Rwanda</option>
    <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option> 
    <option value="Saint LUCIA">Saint LUCIA</option>
    <option value="Saint Vincent">Saint Vincent and the Grenadines</option>
    <option value="Samoa">Samoa</option>
    <option value="San Marino">San Marino</option>
    <option value="Sao Tome and Principe">Sao Tome and Principe</option> 
    <option value="Saudi Arabia">Saudi Arabia</option>
    <option value="Senegal">Senegal</option>
    <option value="Seychelles" selected>Seychelles</option>
    <option value="Sierra">Sierra Leone</option>
    <option value="Singapore">Singapore</option>
    <option value="Slovakia">Slovakia (Slovak Republic)</option>
    <option value="Slovenia">Slovenia</option>
    <option value="Solomon Islands">Solomon Islands</option>
    <option value="Somalia">Somalia</option>
    <option value="South Africa">South Africa</option>
    <option value="South Georgia">South Georgia and the South Sandwich Islands</option>
    <option value="Span">Spain</option>
    <option value="SriLanka">Sri Lanka</option>
    <option value="St. Helena">St. Helena</option>
    <option value="St. Pierre and Miguelon">St. Pierre and Miquelon</option>
    <option value="Sudan">Sudan</option>
    <option value="Suriname">Suriname</option>
    <option value="Svalbard">Svalbard and Jan Mayen Islands</option>
    <option value="Swaziland">Swaziland</option>
    <option value="Sweden">Sweden</option>
    <option value="Switzerland">Switzerland</option>
    <option value="Syria">Syrian Arab Republic</option>
    <option value="Taiwan">Taiwan, Province of China</option>
    <option value="Tajikistan">Tajikistan</option>
    <option value="Tanzania">Tanzania, United Republic of</option>
    <option value="Thailand">Thailand</option>
    <option value="Togo">Togo</option>
    <option value="Tokelau">Tokelau</option>
    <option value="Tonga">Tonga</option>
    <option value="Trinidad and Tobago">Trinidad and Tobago</option>
    <option value="Tunisia">Tunisia</option>
    <option value="Turkey">Turkey</option>
    <option value="Turkmenistan">Turkmenistan</option>
    <option value="Turks and Caicos">Turks and Caicos Islands</option>
    <option value="Tuvalu">Tuvalu</option>
    <option value="Uganda">Uganda</option>
    <option value="Ukraine">Ukraine</option>
    <option value="United Arab Emirates">United Arab Emirates</option>
    <option value="United Kingdom">United Kingdom</option>
    <option value="United States">United States</option>
    <option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option>
    <option value="Uruguay">Uruguay</option>
    <option value="Uzbekistan">Uzbekistan</option>
    <option value="Vanuatu">Vanuatu</option>
    <option value="Venezuela">Venezuela</option>
    <option value="Vietnam">Viet Nam</option>
    <option value="Virgin Islands (British)">Virgin Islands (British)</option>
    <option value="Virgin Islands (U.S)">Virgin Islands (U.S.)</option>
    <option value="Wallis and Futana Islands">Wallis and Futuna Islands</option>
    <option value="Western Sahara">Western Sahara</option>
    <option value="Yemen">Yemen</option>
    <option value="Yugoslavia">Yugoslavia</option>
    <option value="Zambia">Zambia</option>
    <option value="Zimbabwe">Zimbabwe</option>
<font size="3">Comments:</br>
<textarea rows="4" cols="50" name="comments">

<font size="3">Terms & conditions<input type="checkbox" name="terms_and_conditions">I Agree. </font></br>
<input type="submit" value="Send Booking" class="ocv-button">



now after submit should go to send email script.

  $xarive = $_SESSION['arrive'];
  $xdepart = $_SESSION['depart'];
  $xrooms = $_SESSION['rooms'];
  $xadults = $_SESSION['adults'];
  $xchildren = $_SESSION['children'];
  $xname = $_SESSION['fullname'];
  $xemail = $_SESSION['email'];
  $xtel = $_POST['tel'];
  $xfax = $_POST['fax'];
  $xcountry = $_POST['country'];
  $xmessage = $_POST['comments'];
    $email_from = 'yourname@yourwebsite.com';

    $email_subject = "New Form submission";

    $email_body = "You have received a new reservation from $xname .\n".
                            "Arrival Date:\n $xarive".
                            "Departure Date:\n $xdepart".
                            "Number Of Rooms:\n $xrooms".
                            "Number Of Adults:\n $xadults".
                            "Number Of Children:\n $xchildren".
                            "\n ".
                            "General Details\n ".
                            "Full Name:\n $xname".
                            "Email:\n $xemail".
                            "Tel Number:\n $xtel".
                            "Fax Number:\n $xfax".
                            "Country of residence:\n $xcountry".
                            "\n ".
                            "Additional Comments\n ".
                            "\n $xmessage"


  $to = "email@yahoo.com";

  $headers = "From: $email_from \r\n";

  $headers .= "Reply-To: $xemail \r\n";



Recommended Answers

Seems like you forgot a session_start(); in the script that sends the email? ;)

By the way, you don't have to use session_register(), you can just type $_SESSION['key'] = 'value'; without registering it first. The session_register() function has even been removed from PHP 5.4.

Jump to Post

What happens if on both pages you start with this line? Do you get the same output on both pages?

session_start(); echo '<pre>'; print_r($_SESSION); echo '</pre>';

Jump to Post

Well that is kinda impossible :o. If on page a.php you define your session variables, and if you can verify that they have indeed been set, then they MUST still exist on page b.php, if you haven't unset them in the meanwhile.

In other words, this should work:


Jump to Post

All 11 Replies

Seems like you forgot a session_start(); in the script that sends the email? ;)

By the way, you don't have to use session_register(), you can just type $_SESSION['key'] = 'value'; without registering it first. The session_register() function has even been removed from PHP 5.4.

even if i include session_start(); its not working i think the session is not getting past from first script to email script page.

What happens if on both pages you start with this line? Do you get the same output on both pages?

session_start(); echo '<pre>'; print_r($_SESSION); echo '</pre>';

on first page the session is working fine it echos but on email page its not working i get

    [arrive] => 
    [depart] => 
    [rooms] => 
    [adults] => 
    [children] => 
    [fullname] => 
    [email] => 

from the code you provided above

Well that is kinda impossible :o. If on page a.php you define your session variables, and if you can verify that they have indeed been set, then they MUST still exist on page b.php, if you haven't unset them in the meanwhile.

In other words, this should work:


$_SESSION['test'] = 'TESTER';

<form action="b.php" method="post">
    <input type="text" name="hello" value="Type something">
    <input type="submit">


echo '<p>The value of my session variable is now: ' . $_SESSION['tester'] . '</p>';
echo '<p>Just for extra checking, the $_POST and $_SESSION variables are as follows:</p><pre>';
print_r($_POST); print_r($_SESSION);
echo '</pre>';

Are you sure the variables aren't getting unset somewhere?

Ill tell you how exactly im using this, maybe that is the problem im facing. The first page is embeded in a joomla site via jumi plugin and when it goes to the second page it leaves the joomla site and load it on its own.

I dont know if that is causing the problem.

Well it could be that you're starting a whole new session then. You can check if the session ID is still the same on the page that sends the email. To do so, you can use session_id().

E.g. on both pages put the following at the start of the file:

$session_id = session_id(); 
echo '<p>Session ID is now: ' . $session_id . '</p>';

The compare both session ID's :).

I guess thats whats causing the problem.

Session ID is now: 6b77c42b961760cdbc45bcf06307cb32

page 2(email script)
Session ID is now: 24fec94bcd49d957f65b24700878d682

I guess I should try and include page 2 in joomla also.

ok ive include both script inside joomla and now session id is identical

Everything is working fine now thanks a lot minitauros

You're welcome! :) Glad to hear that your problem has been solved.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.