Hello. I have a form page that has been created with the fields: Name, Email, Phone (day), Phone (Eve), Address, and Comments. The form will need to be sent to an email address upon clicking the submit button. I have read some previous posts and tried using some of the code suggested with the code below being one that worked for another user. When I go to the testing server to test the form I get an htdocs/missing.htm page instead of the form being submitted or giving a form not submitted error message. Could there be a problem with the permissions of the file, or am I missing something with the code? Thanks.
Here is the code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> - City Hall Directory</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<form id="form1" method="post" action="<?php echo $me;?>">
  <p><span class="style6">Name
      </span><br />
      <input name="textfield" type="text" class="form" />
  </p>
  <p><span class="style6">Email
    </span><br />
    <input name="textfield2" type="text" class="form" />
  </p>
  <p><span class="style6">Phone (day)
    </span><br />
    <input name="textfield3" type="text" class="form" />
  </p>
  <p><span class="style6">Phone (eve)
    </span><br />
    <input name="textfield4" type="text" class="form" />
  </p>
  <p><span class="style6">Address
    </span><br />
    <input name="textfield5" type="text" class="form" />
  </p>
  <p><span class="style6">Comments </span><br />
    <textarea name="textfield6" cols="50" rows="10" class="form"></textarea>
  </p>
  <p>&nbsp;</p>
  <p>
    <input name="Submit" type="submit" class="form" value="Send" />
  </p>
</form>
<?
$formgood = true;
$name = $_POST['Name'];
$email = $_POST['Email'];
$phone day = $_POST['Phone (day)'];
$phone eve = $_POST['Phone (eve)'];
$addfress = $_POST['Address'];
$comments = $_POST['comments'];
$to = "email@domainname.com"; //Please change this to your e-mail address
$message = "$name has submitted a contact form. \n\n $comments \n\n You can reply to $email";
//check to make sure all form elements were filled in
if ($name == "") {
    echo 'You must provide your name to contact us. Please click the back, and try again';
 $formgood = false;
}
if ($email == "") {
    echo 'We require an e-mail address in order for us to respond. Please go back and try again.';
 $formgood = false;
}
if ($comments == "") {
    echo 'You must provide comments in order to submit this form. Please click back, and try again.';
 $formgood = false;
}
if ($formgood) {
    if(mail($to, "A contact us form has been submitted by $name", $message, "From: $email\n")) {
   echo 'Thank you for submitting this form. We will review your comments and contact you shortly. <br>';
}
else
{
echo "An error has occured. Please contact the webmaster.";
}
 }
else {
  
echo "<br> Please review the comments above and try again.";
      
}
?>
<p><br />
    </p>
    <p> </p>
    <p>  
</div>
<br />
<p>&nbsp;</p>
</div>
</div>

<!-- end #primaryContent -->
</div> 
</script>
</body>
</html>

Dani AI

Generated

The htdocs/missing.htm response usually means the form is asking the server for a resource that does not exist or the server is not executing the PHP you expect. was right to point at the form action: if that value is empty, points at an undefined variable, or points to a non-existent file the host may return a generic "missing" page. 's handler approach is fine, but several environmental and coding issues commonly break submission before any mail code runs.

Common causes to check (without reprinting the posted code):

  • The page with PHP must be served as PHP (file extension and server config). If PHP is not being parsed the action target may be wrong.
  • Short PHP open tags are often disabled; use full PHP tags. See PHP tag behavior in the manual.
  • Input name attributes must match the keys you read from $_POST; avoid spaces or punctuation in names.
  • PHP syntax errors, misspelled variables, or illegal variable names will stop execution; hosts that hide errors can show a generic missing page — check error logs or enable error display temporarily.
  • mail() may be disabled or not configured on the test server; check mail logs or use an authenticated SMTP relay if needed (see the PHP mail() manual).

Quick checklist to resolve the immediate problem:

  1. Confirm the form's action points to an existing .php handler (or leave action blank to post to the same script).
  2. Ensure full PHP tags are used (not short tags) — see PHP tags.
  3. Make input names simple and consistent with the PHP code; fix any typos in variable names.
  4. Turn on error reporting or inspect server error logs to reveal parse/runtime errors.
  5. If mail still fails, review the server mail configuration or use an external SMTP provider — see PHP mail() manual.

Recommended Answers

All 3 Replies

Where you have this <?php echo $me;?> I have the actual php file name listed there. Might want to try that

Hello. I have a form page that has been created with the fields: Name, Email, Phone (day), Phone (Eve), Address, and Comments. The form will need to be sent to an email address upon clicking the submit button. I have read some previous posts and tried using some of the code suggested with the code below being one that worked for another user. When I go to the testing server to test the form I get an htdocs/missing.htm page instead of the form being submitted or giving a form not submitted error message. Could there be a problem with the permissions of the file, or am I missing something with the code? Thanks.
Here is the code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> - City Hall Directory</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<form id="form1" method="post" action="<?php echo $me;?>">

So I need to create a seperate php file in order to accomplish this?

Hi dbow1,

Create the following php document and save it as mail.php:

<?php

$visitor = $_POST['name']; 
$visitormail = $_POST['email']; 
$address = $_POST[['address'];
$tele = $_POST['tele'];
$teld = $_POST['teld'];
$notes = $_POST['comments'];


// form validation

if (eregi('http:', $notes)) {
die ("Do NOT try that! ! ");
}
if ($visitor == "") {
echo 'You must provide your name to contact us. Please click the back, and try again';
$formgood = false;
}
if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,"."))) 
{
echo "<h2>Use Back - Enter valid e-mail</h2>\n"; 
if ($comments == "") {
echo 'You must provide comments in order to submit this form. Please click back, and try again.';
}
$badinput = "<h2>Feedback was NOT submitted</h2>\n";
echo $badinput;
die ("Go back! ! ");
}

if(empty($visitor) || empty($visitormail) || empty($notes )) {
echo "<h2>Use Back - fill in all fields</h2>\n";
die ("Use back! ! "); 
}

$todayis = date("l, F j, Y, g:i a") ;

$attn = $attn ; 
$subject = $notes; 

$notes = stripcslashes($notes); 

$message = " $todayis [EST] \n
Message: $notes \n 
From: $visitor ($visitormail)\n
Address: $address \n
Telephone (Day): $teld \n
Telephone (Evening): $tel \n
";

$from = "From: $visitormail\r\n";

// Change the email address to the one you use.

mail("you@email.com", $subject, $message, $from);

?>

<!-- Below is the confirmation message the user will see -->

<p align="center">
Date: <?php echo $todayis ?> 
<br />
Thank You : <?php echo $visitor ?> ( <?php echo $visitormail ?> ) 
<br />
Telephone Numbers: <?php echo $teld ?>  ( <?php echo $tele ?> ) 
<br />
Address: <?php echo $address ?>
<br />
Message: <?php echo $notes ?>
<br /> 
Message:<br /> 
<?php $notesout = str_replace("\r", "<br/>", $notes); 
echo $notesout; ?> 
<br />
<?php echo $ip ?> 

<br /><br />
<a href="index.html"> Home </a></p>

Then place it in the same folder as your contact us page (contact_us.html)

To make things a little easier, I have created the form for you as well, place this code, where you would like the contact us form to appear:

<div id="container">
<form method="post" action="mail.php">
	<div id="row">
		<div id="col"> Name: </div>
		<div id="col"> <input name="name" type="text" id="name" /> </div>
	</div>
	<div id="row">
		<div id="col"> Email: </div>
		<div id="col"> <input name="email" type="text" id="email" /> </div>
	</div>
	<div id="row">
		<div id="col"> Phone (day): </div>
		<div id="col"> <input name="teld" type="text" id="tel_day" /> </div>
	</div>
	<div id="row">
		<div id="col"> Phone (evening): </div>
		<div id="col"> <input name="tele" type="text" id="tel_evening" /> </div>
	</div>
	<div id="row">
		<div id="col"> Address: </div>
		<div id="col"> <input name="address" type="text" id="address" /> </div></div>
	<div id="row">
		<div id="col"> Comments: </div>
		<div id="col"><textarea name="comments" cols="50" rows="10"></textarea></div>
	</div>
  <div id="row"><input name="send" type="submit" id="send" value="Send" />
	  <input name="clear" type="reset" id="clear" value="Clear" />
	</div>
</form>
</div>

And Finally, the CSS you need to style the form:

#container {
	width: 768px;
	height: 400px;
	}

#row {
	width:100%;
	margin:2px;
	height:auto;
	float:left;
}

#col{
	width:25%;
	margin:2px;
	float:left;
	height:auto;
}

If you have any problems or need some help. Just ask.

Regards,

Be a part of the DaniWeb community

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