Solved

Help with PHP form

Posted on 2010-11-09
12
375 Views
Last Modified: 2013-12-12
Hey guys any reason why the "sport" and "shoe" fields arent returning any results
<?php

/************************
* Variables you can change
*************************/

$mailto   = "leroice@mac.com"; // Enter your mail addres here. 
$name     = ucwords($_POST['name']); 

$email    = $_POST['email'];

$sport    = $_POST['sport'];

$shoe    = $_POST['shoe'];

$message  = $_POST['message'];

	if(strlen($_POST['name']) < 1 ){
		echo  'email_error';
	}
	
  else if(strlen($email) < 1 ) {
		echo 'email_error';
	}

  else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", $email)) {
    echo 'email_error';
  }

	else if(strlen($message) < 1 ){
		echo 'email_error';

  } else {

	// NOW SEND THE ENQUIRY

	$email_message="\n\n" .
		"Name: " .
		ucwords($name) .
		"\n" .
		"Email: " .
		$email .
		"\n" .
		"Preffered Sport: " .
		$sport .
		"\n" .
		"Shoe Size: " .
		$shoe .
		"\n" .
		"Comments: " .
		"\n" .
		$message .
		"\n" .
		"\n\n" ;

		$email_message = trim(stripslashes($email_message));
		mail($mailto, $shoe, $email_message, "From: \"$vname\" <".$email.">\nReply-To: \"".ucwords($name)."\" <".$email.">\nX-Mailer: PHP/" . phpversion() );

}
?>

Open in new window

0
Comment
Question by:Leroice
  • 3
  • 2
  • 2
  • +4
12 Comments
 
LVL 5

Expert Comment

by:ploftin
ID: 34095267
You didn't include the underlying form that posts to this page, but I would suspect a problem in the form.  Verify that the fields for sport and shoe are named appropriately.  Ie.
Sport: <input type="text" name="sport" /><br />
Shoe: <input type="text" name="shoe" />

Open in new window

0
 

Author Comment

by:Leroice
ID: 34095425
Here's the markup for the form
<!-- Contact Form Start //-->
                                      <form action="#" id="contactform"> 
                                      <fieldset>
                                      <label>Name*</label>
                                      <input type="text" name="name" class="textfield" id="name" value="Please enter both given and surnames" />
                                      <div class="clear"></div>
                                      <label>E-mail*</label>
                                      <input type="text" name="email" class="textfield" id="email" value="Please enter a valid email address" />
                                      <div class="clear"></div> 
                                      <label>Prefered Sport*</label>
                                      <input type="text" name="subject" class="textfield" id="sport" value="Enter your Favourite Sport here" />
                                      <div class="clear"></div> 
                                      <label>Shoe Size*</label>
                                      <input type="text" name="subject" class="textfield" id="shoe" value="Please indicate Men's or Women's sizing" />
                                      <div class="clear"></div>    
                                      <label>Message*</label>
                                      <textarea name="message" id="message" class="textarea" cols="2" rows="7" </textarea>
                                      <div class="clear"></div> 
                                                                      <input type="submit" name="submit" class="buttoncontact" id="buttonsend" value="Send" />
                                      <span class="loading" style="display: none;">Please wait..</span>
                                      <div class="clear"></div>
                                      <label>&nbsp;</label>
                                      *required field
                                      <div class="clear"></div>
                                      </fieldset> 
                                      </form>
                                      <!-- Contact Form End //--> 

Open in new window

0
 
LVL 5

Accepted Solution

by:
ploftin earned 500 total points
ID: 34095586
That's your problem.  Your shoe and sport fields need to be "named" shoe and sport.  For example, change your form to this:
<!-- Contact Form Start //-->
<form action="#" id="contactform"> 
<fieldset>
<label>Name*</label>
<input type="text" name="name" class="textfield" id="name" value="Please enter both given and surnames" />
<div class="clear"></div>
<label>E-mail*</label>
<input type="text" name="email" class="textfield" id="email" value="Please enter a valid email address" />
<div class="clear"></div> 
<label>Prefered Sport*</label>
<input type="text" name="sport" class="textfield" id="sport" value="Enter your Favourite Sport here" />
<div class="clear"></div> 
<label>Shoe Size*</label>
<input type="text" name="shoe" class="textfield" id="shoe" value="Please indicate Men's or Women's sizing" />
<div class="clear"></div>    
<label>Message*</label>
<textarea name="message" id="message" class="textarea" cols="2" rows="7" </textarea>
<div class="clear"></div> 
                                <input type="submit" name="submit" class="buttoncontact" id="buttonsend" value="Send" />
<span class="loading" style="display: none;">Please wait..</span>
<div class="clear"></div>
<label>&nbsp;</label>
*required field
<div class="clear"></div>
</fieldset> 
</form>
<!-- Contact Form End //--> 

Open in new window

0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 
LVL 20

Expert Comment

by:Mark Brady
ID: 34099829
You named both the sports and the shoe fields "subject" that's why nothing is posted for those two fields.
0
 
LVL 1

Expert Comment

by:djshah
ID: 34103826
+++++
<input type="text" name="subject" class="textfield" id="sport" value="Enter your Favourite Sport here" />
                                      <div class="clear"></div>
                                      <label>Shoe Size*</label>
                                      <input type="text" name="subject" class="textfield" id="shoe" value="Please indicate Men's or Women's sizing" />
                                      <div class="clear"></div>  
+++++

Just change above code with following code:

++++
<input type="text" name="sport" class="textfield" id="sport" value="Enter your Favourite Sport here" />
                                      <div class="clear"></div>
                                      <label>Shoe Size*</label>
                                      <input type="text" name="shoe" class="textfield" id="shoe" value="Please indicate Men's or Women's sizing" />
                                      <div class="clear"></div>  
++++

It should then work. You have given name="subject" for both id="sport" and id="shoe". When form is submitted in php _POST array is build on name attribute. If name is not properly given then it will not be there in _POST array.
0
 
LVL 20

Expert Comment

by:Mark Brady
ID: 34125023
Any reply from the asker?
0
 
LVL 20

Expert Comment

by:Mark Brady
ID: 34128644
Hey Leroice:     Did you change your form to what we said and try it? Please let us know so we can all move on and get this question PAQ'ed

Cheers
Elvin
0
 

Author Comment

by:Leroice
ID: 34129334
Sorry guys haven't been online for past few days. Will have a try and let you know soon.

Thanks again for the help. It is much appreciated
0
 
LVL 13

Expert Comment

by:p_nuts
ID: 34214845
I think the rest helped you with this one.. but a general tip..

use

print_r($_REQUEST);

to see all submitted variables to test....
0
 

Expert Comment

by:sridharphp
ID: 34514026
try to write like this
if(isset($_post['submit']))
{
$comapny_name=$_POST['company_name'];//like this all  fields create
$sql="insert into tbl_users (company_name, first_name, last_name, business_street_address, business_suburb_city, business_postcode, email, phone, mobile, industry_id , username,password) values('$company_name', '$first_name', '$last_name', '$business_street_address', '$business_suburb_city', '$business_postcode', '$email', '$phone', '$mobile', '$industry', '$username','$password')";
mysql_query($sql);
header('location:samepage.php')
exit;
0
 
LVL 16

Expert Comment

by:CWS (haripriya)
ID: 35390505
This question has been classified as abandoned and is being closed as part of the Cleanup Program. See my comment at the end of the question for more details.
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I imagine that there are some, like me, who require a way of getting currency exchange rates for implementation in web project from time to time, so I thought I would share a solution that I have developed for this purpose. It turns out that Yaho…
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to count occurrences of each item in an array.

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question