I am working on a php script that collects data entered in html form and stores that data in array. When user press submit button the php script is called to capture that data store in array and save into CSV file and if all this has gone well there is a header(location:'') redirect to confirmation page.
Now in the mix of all that I also waht to send out a confirmation email to the user that registered, what i have done is created a file template.php that has a nice html template, and I am added a mail() function to do so.
But I get an error saying:
19th February 2014 Warning: Cannot modify header information - headers already sent by (output started at /home/content/24/12131124/html/php/template.php:36) in /home/content/24/12131124/html/php/form_to_csv.php on line 196
template.php:
<?php
function getMailContent(){
$subject = "OPES Academy- Workshop confirmation";
$message = "
<body style='background-color: #eeeeee; margin: 0 auto; font-family: 'lato',sans-serif'>
<table style='background-color:#ffffff' width='600' heigth='auto' cellspacing='0' cellpadding='0' align='center'>
<tr>
<td>
<table width='600' style='background-color: #5e8ab5;' align='center' cellpading='0' cellspacing='0'>
<tr>
<td>
<p style='padding-left: 20px;'><img src='http://opesacademy.com/emails/images/logo.png'
width='100' alt='Opes Academy'></p>
</td>
<td style='text-align: right; padding-right: 10px; color: #ffffff'>
KNOWLEDGE | WEALTH | POWER
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style='padding: 10px;'>
<h1 class='skinytxt text-center txtblue'>Thank you for reserving your place</h1>
<p> </p>
<p class='txt-white text-center'>Thanks for your registration, we will be looking forward to see you at the";
?>
<?php
require('helper.php');
echo ConvertDate( $_SESSION['date'] );
?>
<?php
$message.="
<p align='center'>Address: 6 Thomas More Square, London, E1W 1XZ</p>
</p>
<p class='txt-white text-center'>If you have any more questions we will be glad to help you, just call us on 020 3675 9000 or email us on
support@opesacademy.com</p>
</td>
</tr>
</table>
<table width='600' style='background-color: #5e8ab5;' align='center' cellpading='0' cellspacing='0'>
<tr>
<td>
<p style='padding-left: 10px; padding-right: 10px; font-size: 10px'>Trading and investing often
involves a very high degree of risk. Past results are
not indicative of future returns and financial instruments can go down as well as up
resulting
in you receiving less than you invested. Do not assume that any recommendations, insights,
charts, theories, or philosophies will ensure profitable investment. Spread betting, trading
binary options and CFD's carry a high risk to your capital, can be very volatile and prices
may
move rapidly against you. Only speculate with money you can afford to lose as you may lose
more
than your original deposit and be required to make further payments. Spread betting may not
be
suitable for all customers, so ensure you fully understand the risks involved and seek
independent advice if necessary</p>
</td>
</tr>
</table>
</body>";
$headers = "Content-type: text/html\r\n";
return compact('subject', 'message', 'headers');
}
?>
form_to_csv.php
$to = $data['email'];
require('template.php');
$mailContent = getMailContent();
//csv
if(@$_POST['land']=='fw'){
$path='/home/content/24/12131124/html/files/Admin/CSV_Binary/';
$fName=$path.'free_workshop-'.date( "F_j_Y" ).".csv";
//mail($to, $subject, $message, $headers,"-f info@opesacademy.com");
mail($to, $mailContent['subject'], $mailContent['message'], $mailContent['headers'],"-f info@opesacademy.com");
}
if(@$_POST['land']=='fw')header("Location: http://www.o.com/free/b/confirmation.php?camp=".$data['camp']);
else header("Location: http://www.o.com/free/f/confirmation.php?camp=".$data['camp']);
So looking at the error I understand there is some sort of problem with the header as both mail() function uses header and at the redirect I am using a header but how to solve why is this a problem..?