When submitting a form, I am getting an error. The form itself along with the file is sending to my email just fine. But the “redirect” to the “thank you” page isn’t getting there. I will post my code in its entirety and fair warning the few php files are just over 1,000 lines of code. This is someone elses code I modified a few lines to fit my needs. So below I am posting the error, then an abbreviated version of the code, then the full code. (edit - my code has exceded the 20,000 character limit for this forum. I am posting a partial code up to line 192 for the fgcontactform.php. The other approx. 400 lines of code will be posted in message #2 listed below the original post).
My error code when hitting the submit button.
Warning: Cannot modify header information - headers already sent by (output started at /home/southpaw/public_html/foxenews.com/test/protected/privateheader.php:7) in /home/southpaw/public_html/foxenews.com/test/protected/include/fgcontactform.php on line 148
Line 7 in “privateheader.php”
[php][/php]
Line 148 in code “fgcontactform.php”
[php] header(“Location: $url”);[/php]
privateheader.php in full
[php]
[php]<?PHP
/*
Contact Form from HTML Form Guide
This program is free software published under the
terms of the GNU Lesser General Public License.
This program is distributed in the hope that it will
be useful - WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
@copyright html-form-guide.com 2010
*/
require_once(“class.phpmailer.php”);
/*
Interface to Captcha handler
/
class FG_CaptchaHandler
{
function Validate() { return false;}
function GetError(){ return ‘’;}
}
/
FGContactForm is a general purpose contact form class
It supports Captcha, HTML Emails, sending emails
conditionally, File atachments and more.
*/
class FGContactForm
{
var $receipients;
var $errors;
var $error_message;
var $name;
var $email;
var $date;
var $bigtitle;
var $shorttitle;
var $summery;
var $category;
var $message;
var $from_address;
var $form_random_key;
var $conditional_field;
var $arr_conditional_receipients;
var $fileupload_fields;
var $captcha_handler;
var $mailer;
function FGContactForm()
{
$this->receipients = array();
$this->errors = array();
$this->form_random_key = 'HTgsjhartag';
$this->conditional_field='';
$this->arr_conditional_receipients=array();
$this->fileupload_fields=array();
$this->mailer = new PHPMailer();
$this->mailer->CharSet = 'utf-8';
}
function EnableCaptcha($captcha_handler)
{
$this->captcha_handler = $captcha_handler;
session_start();
}
function AddRecipient($email,$name="")
{
$this->mailer->AddAddress($email,$name);
}
function SetFromAddress($from)
{
$this->from_address = $from;
}
function SetFormRandomKey($key)
{
$this->form_random_key = $key;
}
function GetSpamTrapInputName()
{
return 'sp'.md5('KHGdnbvsgst'.$this->GetKey());
}
function SafeDisplay($value_name)
{
if(empty($_POST[$value_name]))
{
return'';
}
return htmlentities($_POST[$value_name]);
}
function GetFormIDInputName()
{
$rand = md5('TygshRt'.$this->GetKey());
$rand = substr($rand,0,20);
return 'id'.$rand;
}
function GetFormIDInputValue()
{
return md5('jhgahTsajhg'.$this->GetKey());
}
function SetConditionalField($field)
{
$this->conditional_field = $field;
}
function AddConditionalReceipent($value,$email)
{
$this->arr_conditional_receipients[$value] = $email;
}
function AddFileUploadField($file_field_name,$accepted_types,$max_size)
{
$this->fileupload_fields[] =
array("name"=>$file_field_name,
"file_types"=>$accepted_types,
"maxsize"=>$max_size);
}
function ProcessForm()
{
if(!isset($_POST['submitted']))
{
return false;
}
if(!$this->Validate())
{
$this->error_message = implode('<br/>',$this->errors);
return false;
}
$this->CollectData();
$ret = $this->SendFormSubmission();
return $ret;
}
function RedirectToURL($url)
{
header("Location: $url");
exit;
}
function GetErrorMessage()
{
return $this->error_message;
}
function GetSelfScript()
{
return htmlentities($_SERVER['PHP_SELF']);
}
function GetName()
{
return $this->name;
}
function GetEmail()
{
return $this->email;
}
function GetDate()
{
return $this->date;
}
function GetBigtitle()
{
return $this->bigtitle;
}
function GetShorttitle()
{
return $this->shorttitle;
}
function GetSummery()
{
return $this->summery;
}
function GetCategory()
{
return $this->category;
}
function GetMessage()
{
return htmlentities($this->message,ENT_QUOTES,"UTF-8");
}
[/php]
contactform.php (THIS IS THE FORM THE USER SEES TO FILL OUT)
[php]<?php include("privateheader.php"); ?>
Article Submission Form
Use this form to submit your article. Please follow the guidelines at the very bottom of the page below the form.
Your Full Name*: | ' maxlength="150" /> |
Email Address*: | ' maxlength="100" size="29" /> |
Date for Article*: | ' maxlength="50" />Date you want to appear in your article. |
Title*: | ' maxlength="107" size="80" />Title for your article (107 characters max. including spaces). |
Abbreviated Title*: | ' maxlength="32" size="34" />If the title is above is shorter than 32 characters (including spaces) please copy it into this box too. This title is mandatory for archive purposes. |
Article Summery*: | <?php echo $formproc->SafeDisplay('summery') ?>314 characters maximum. This summery will go under the slideshow on the home page. |
Category*: | ' maxlength="250" size="62" />Category your article is going to be placed under. (Sports, Tech, News, Video, Entertainment or new category if you have more articles you would like to submit in a new category, please have multiple articles prepared so we can fill the page with more than one article.) |
Your personal web page link: | ' maxlength="250" size="62" />If you want to submit a link to your personal web page, feel free to do so. It will be placed at the bottom of your article as a link. |
Article: | <?php echo $formproc->SafeDisplay('message') ?> |
Copy and paste your article in the large window above or browse to the file by using the "Choose File" button below. |
Upload your file: (You may only select 1 file using this option). It is best if you put all your files in a zip folder and send them thru this web form. If you would like to upload multiple files, please do so at the Google Drive portion of the web site. Please let me know you have uploaded the file(s) to Google Drive. I do not get an automatic notification when a file is placed there. If you need the user name and password for Google Drive, email me and I can send it to you. |
it makes it much easier for me to post. NUMBER YOUR PHOTOS IN THE ORDER YOU WANT THEM PUBLISHED.
When I get 1cellphone.jpg, 2cellphone.jpg and 3cellphone.jpg, the photo 1cellphone.jpg is the photo you want closest
to the top and/or on the front page. IF PHOTOS ARE NOT NUMBERED, I WILL SELECT A RANDOM ONE TO BE POSTED.
Ignore small window above, I don't know
how to get rid of it and if you
input anything the form will not work. <?php include("privatefooter.php"); ?>
[/php]
thank-you.php (the page that is suppose to show up after the submission button is hit but isn’t)
[php]
Thanks for contacting us!
[/php]