Jump to content
xisto Community
Sign in to follow this  
JC05

Problems With Php Form? Can you please help?

Recommended Posts

I am trying to install a PHP form. I am using a tutorial I found in the tutorials section. It was really good, but I have a few problems. Here is the link, if you need it: http://forums.xisto.com/index.php?shoic=8118&hl=form Anyway, so I place the mailform.php in an html document on file manager right? So I do that. And I put it in the body:

<?php$Name = $_POST['Name'];$Subject = $_POST['Subject'];$Email = $_POST['Email'];$Site = $_POST['Site']; $Message=$_POST['Message'];$align = $_POST['align'];$to = "$EmailTo";$subject = "$Subject";$body = "$Message\n\n\n$Site\nBy: $Name";$headers = "From: $Email\n";mail($to,$subject,$body,$headers);// After they've clicked "Send", this is where they are going... Change it to where you want them to go.header("Location: sent.htm");?>

I don't think I need to edit anything there right? I have all the other files set up, but there is a problem. When I go to do it, it sends the message to my email, but shows:

Warning: Cannot modify header information - headers already sent by (output started at /home/jc05/public_html/mailform.php:2) in /home/jc05/public_html/mailform.php on line 20

So I put it in the header, and it shows:

Warning: Cannot modify header information - headers already sent by (output started at /home/jc05/public_html/mailform.php:2) in /home/jc05/public_html/mailform.php on line 14


So whats up? There seems to be problems here. Does anyone know? I would really appreciate your help. Thanks in advance dudes :angry:

Share this post


Link to post
Share on other sites

a few things, the link to your site where the contact forum is located might help us a little, and i uploaded what was onthe post in the link you provided and i had no problem with it... did you modify the code in any way shape or form? which it doesn't look like it..

Share this post


Link to post
Share on other sites

Have a look at this script. I wrote it for one of my sites.

<?php// move these variables to a cfg.ini file included at the head of this file???$site_email = 'jlhaslip@yahoo.ca';$site_name = 'Web Site Template Distibution File';if (isset($_POST['posted'])) {   $email = trim($_POST['email']);   $f_name = trim($_POST['first_name']);   $l_name = trim($_POST['last_name']);   $body = trim($_POST['note_wide']) ;   $date = trim(date("D M j G:i:s T Y"));   $name =  $f_name . ' ' . $l_name;   $theresults = ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $email, $trashed);   if ( $f_name == "" ||  $f_name == " ") {	    	echo '<p><span class="border bold red">A first name is required</span></p>';	    	  }   elseif ( $l_name == "" ||  $l_name == " " ) {	    	echo '<p><span class="border bold red">A last name is required</span></p>';	    	  }   elseif ( $email == "" || $email == " " ) {	    	echo '<p><span class="border bold red">An email address is required</span></p>';	    	  }		  elseif (!$theresults) {		  	   echo '<p><span class="border bold red">The email address must be in a valid form similar to " your_name@example.com ".</span></p>';			   }   elseif ( $body == "" || $body == " " ) {	    	echo '<p><span class="border bold red">A message body is required</span></p>';	    	  }}if ( $f_name && $l_name && $email && $body) {	 $file_name = "message_data.txt";	 //  Error Supress the fopen	 $handle = @fopen($file_name, "a");	 //  Check for successful fopen	 if (!$handle)  {	 // error message and exit if no file handle available	 echo "File Handle Not Available For Use"; exit;	 }	 $body = strip_tags(str_replace( "\r" , ' ' , $body ));	 $body = str_replace( "\n" , ' ' , $body );	 $body = str_replace( ',' , '' , $body );	 $body = str_replace( "\'" , '&' , $body );	 $body = str_replace( "\"" , '&' , $body );	 $message_string = $date . ' , ' . $name . ' , ' . $email . ',' . $body . ',' . $_SERVER['REMOTE_ADDR']."\r\n";  	 fwrite($handle, $message_string);	 //close the open file prior to ending	 fclose($handle);if (@mail( $site_email, $site_name, $body,"From: $email <$name>\r\n")) {     echo '<p class="border"><span class="bold red">Thank you for submitting this message. </span><br /><br /><span class="bold">Your comments and requests are important to us.  If a reply is required, you can expect to hear from us shortly.</span><br /><br /><span class="bold red">Thanks again.</span> Select from the Menu to navigate to another page, or <a href="index.html" title=" Return to the site Home Page"> here </a> to reurn to the Index page..</p>';     unset($_POST);$_POST['posted'] = 'false';     }     else {     	echo "<p class=\"border red\">Message failed to be accepted by the Mail system. <br /><span class=\"bold\">Please send the message to $site_email from  your own email program.</span> <br />The site has been sent a report of the mail system failure, but not the contents of the message.<br /> Be certain to alter the permissions of the message data file to at minimum '666'.<br />We will endevour to correct the problem immediately.</p>";     unset($_POST);$_POST['posted'] = 'false';          }};?>     <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data"><?php if (!isset($_POST['posted'])) { echo '<p><strong>All</strong> fields are required.</p>';} ?>     <fieldset><legend>Personal Information</legend>     <div class="notes">        <h4>Personal Information</h4>        <p class="last">Please enter your name and a valid email address, then your message.<br />		       We will never sell or disclose your email address to anyone.  </p>       </div>      <div class="required">                <label for="first_name">First Name:</label>        <input type="text" name="first_name" id="first_name" class="inputText" size="20" maxlength="40" value="<?php echo  $_POST['first_name'] ?>" />      </div>      <div class="hidden">        <input type="hidden" name="posted" value="true" />      </div>      <div class="required">                <label for="last_name">Last Name:</label>        <input type="text" name="last_name" id="last_name" class="inputText" size="20" maxlength="40" value="<?php echo $_POST['last_name'] ?>" />      </div>	        <div class="required">        <label for="email">Email:</label>        <input type="text" name="email" id="email" class="inputText" size="40" maxlength="100" value="<?php echo $_POST['email'] ?>" />      </div>    <fieldset>      <div class="required wide">                <label for="note_wide">Your Message:</label>        <textarea name="note_wide" id="note_wide" class="inputTextarea" rows="6" cols="55"><?php echo $_POST['note_wide'] ?></textarea>        <br />	  <small>We would love to get your feedback or any comments on your experience with us.</small>      </div>    </fieldset>        <fieldset>      <div class="submit">        <div>          <input type="submit" class="inputSubmit" value="Submit ?" />          <input type="reset" class="inputSubmit" value="Reset Form" />        </div>      </div>    </fieldset>  </form></div>

Instead of having an automatic redirect, there is a message which displays the results of the form handling and if successful, a link to return to a defined page. It does require a client to interact with the page on completion, but it also provides them with an indication of the results of this Form submission, so there is a trade-off. In addition to sending an email, it also writes a message to a data file which I have a script to print-out, so if you want that, please send me a message and I'll provide it, too.

Share this post


Link to post
Share on other sites

Tyssen:Tyssen gets the cake. Dude that is awesome thanks! I was realy getting confused. I had a little bit of html above it, just a body tag with the BG color, and that is what was gumming the whole thing up.And to everyone, thanks for your help, couldn't have done it without you, Cheers!

Share this post


Link to post
Share on other sites

Just a heads up: Your script doesn't provide any error checking or validation...which means people can leave it blank or just enter garbage values. It also doesn't have any injection protection, which means spammers could use it to send out craploads of spam. If you're interested in a script without these issues check out:

http://forums.xisto.com/topic/34823-using-a-php-contact-form-please-help/

Share this post


Link to post
Share on other sites

Well I tried something new, I edited the fields, and put new ones in, but is only sending me a few. And it is not very good. Out of all fields, it only send me the name, email, subject, and that is it. What is wrong? Here is the code I am using:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title></title></head><body bgcolor="#ffffff"><form action="mailform.php" method="post"><input type=hidden name=EmailTo value="emailhere"><br>Your Name: <br><input type="text" value="" name="Name"> <br>Subject: <br><input type="text" value="" name="Subject"> <br>Your Email: <br><input type="text" value="" name="Email"> <br>How did you find us?: <br><select name="Found Through:"> <option value="Search Engine" selected="selected">Search Engine</option> <option value="Newspaper/Magazine">Newspaper/Magazine</option> <option value="Television/Radio">Television/Radio</option> <option value="Online Advertising">Online Advertising</option> <option value="Offline Advertising">Offline Advertising</option> <option value="Word of mouth">Word of mouth</option> <option value="Other">Other</option></select> <br>What Type Of Request is This? (Required) <br><select name="Request type:"> <option value="Custom Computer" selected="selected">Custom Computer</option> <option value="Standard Package (See below)">Standard Package (See below)</option> <option value="Question or Comment">Question or Comment</option></select> <br>Package (If requesting premade) <br><select name="Package #:"> <option value="Basic" selected="selected">Basic</option> <option value="Home/Office">Home/Office</option> <option value="Ultimate Gaming">Ultimate Gaming</option></select> <br>Custom Specs/Package Modification <br><textarea name="Custom Specs/Package Modification" rows="6" cols="30"> </textarea> <br>Questions/Comments <br><textarea name="Questions/Comments" rows="6" cols="30"> </textarea> <br><input type="submit" value="Send"> <input type="reset" value="Reset"></form><p><a href="java script:history.back()">Go Back</a></p></body></html>

Like I said, I am using this code: http://forums.xisto.com/index.php?shoic=8118&hl=form and I actually realized that there has to be a code in the mailform.php for every field. Is that right? Since it will only send you what the command there says to right? Anyway, could someone please edit that mailform code at the other page for the forms with the supplied code? I would really appreciate it. I wil link on the main page of my site to anyone who will. Thanks!

Thanks.
Edited by JC05 (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.