callmecheez
asked on
PHP: Make a field mandatory?
Regarding code below:
I'd like to make at least 1 of the fields mandatory - but can't figure out (from googling) how to do it.
I'd also like to add another field 'description' that will become the SUBJECT of the email that gets sent after the user presses submit.
Many thanks.
I'd like to make at least 1 of the fields mandatory - but can't figure out (from googling) how to do it.
I'd also like to add another field 'description' that will become the SUBJECT of the email that gets sent after the user presses submit.
Many thanks.
html:
<form method="post" action="sendmail.php"><br>
<table width="580" border="0" align="center">
<tr>
<td width="296"><div align="right">Name:</div></td>
<td width="268"><div align="left">
<input name="name" type="text" /></td
></tr>
<tr>
<td><div align="right">Email Address:</div></td>
<td><div align="left"><input name="email" type="text" /></td>
</tr>
<tr>
<td><div align="right">ISS Username (if known):</div></td>
<td><div align="left"><input name="username" type="text" /></td>
</tr>
<tr>
<td><div align="right">Telephone Number:</div></td>
<td><div align="left"><input name="phone" type="text" /></td>
</tr>
<tr>
<td><div align="right">Location (e.g room number):</div></td>
<td><div align="left"><input name="location" type="text" /></td>
</tr>
<tr>
<td><div align="right">Please provide details of the problem, or leave any message here.<br>
<br>
Press 'submit' when done.</div></td>
<td><div align="left"><textarea name="message" rows="10" cols="40"></textarea></td>
</tr>
</table><br>
<input type="submit" VALUE="Submit" align="right"/><br>
</form>
Php:
<?php
$email = $_REQUEST['email'] ;
$name = $_REQUEST['name'] ;
$username = $_REQUEST['username'] ;
$phone = $_REQUEST['phone'] ;
$location = $_REQUEST['location'] ;
$message = $_REQUEST['message'] ;
$message .= "\nUsername****:$username\n";
$message .= "\nContact Number****:$phone\n";
$message .= "\nEmail Address****:$email\n";
$message .= "\nLocation Details****:$location\n";
mail( "sample@leeds.ac.uk", "New helpdesk email", $message, "From: $name <$email>" );
header( "Location: http://www.leeds.ac.uk/iss/contact_test/thankyou.html" );
?>
YOu can use Javascript to do the check like
<script>
function checkForm(f) {
if (f.name.value == '' && f.email.value == '' && f.phone.value == '' ...) {
alert('please fillout at least on field');
return false;
}
return true;
}
</script>
Then use in the form -tag:
<form method="post" action="sendmail.php" onsubmit="return checkForm(this);">
for the subject in php use:
mail( "sample@leeds.ac.uk", $_REQUEST['subject'], $message, "From: $name <$email>" );
and add the element to your form.
<script>
function checkForm(f) {
if (f.name.value == '' && f.email.value == '' && f.phone.value == '' ...) {
alert('please fillout at least on field');
return false;
}
return true;
}
</script>
Then use in the form -tag:
<form method="post" action="sendmail.php" onsubmit="return checkForm(this);">
for the subject in php use:
mail( "sample@leeds.ac.uk", $_REQUEST['subject'], $message, "From: $name <$email>" );
and add the element to your form.
ASKER
Thanks Roonaan, where should I add that code?
Also any ideas on this bit:
"I'd also like to add another field 'description' that will become the SUBJECT of the email that gets sent after the user presses submit."
Cheers
Also any ideas on this bit:
"I'd also like to add another field 'description' that will become the SUBJECT of the email that gets sent after the user presses submit."
Cheers
You could have a single php file for both form and sending like this:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = 0;
$email = $_REQUEST['email'] ;
$name = $_REQUEST['name'] ;
$username = $_REQUEST['username'] ;
$phone = $_REQUEST['phone'] ;
$location = $_REQUEST['location'] ;
$description = $_REQUEST['description'];
if(empty($email)) {
$errors++; //
echo '<div>Please make sure you fill out the email field correctly</div>';
}
if(empty($description)) {
$errors++; //
echo '<div>Please make sure you fill out the problem description field correctly</div>';
}
if($errors == 0) {
$message = $_REQUEST['message'] ;
$message .= "\nUsername****:$username\n";
$message .= "\nContact Number****:$phone\n";
$message .= "\nEmail Address****:$email\n";
$message .= "\nLocation Details****:$location\n";
mail( "sample@leeds.ac.uk", "New helpdesk email: $description", $message, "From: $name <$email>" );
header( "Location: http://www.leeds.ac.uk/iss/contact_test/thankyou.html" );
}
}
?>
<form method="post" action="sendmail.php"><br>
<table width="580" border="0" align="center">
<tr>
<td width="296"><div align="right">Name:</div></td>
<td width="268"><div align="left">
<input name="name" type="text" value="<?php echo htmlspecialchars(@$_REQUEST['name']);?>" /></td
></tr>
<tr>
<td><div align="right">Email Address:</div></td>
<td><div align="left"><input name="email" type="text" value="<?php echo htmlspecialchars(@$_REQUEST['email']);?>"/></td>
</tr>
<tr>
<td><div align="right">ISS Username (if known):</div></td>
<td><div align="left"><input name="username" type="text" value="<?php echo htmlspecialchars(@$_REQUEST['username']);?>"/></td>
</tr>
<tr>
<td><div align="right">Telephone Number:</div></td>
<td><div align="left"><input name="phone" type="text" value="<?php echo htmlspecialchars(@$_REQUEST['phone']);?>"/></td>
</tr>
<tr>
<td><div align="right">Location (e.g room number):</div></td>
<td><div align="left"><input name="location" type="text" value="<?php echo htmlspecialchars(@$_REQUEST['location']);?>"/></td>
</tr>
<tr>
<td><div align="right">Short problem description:</div></td>
<td><div align="left"><input name="description" type="text" value="<?php echo htmlspecialchars(@$_REQUEST['description']);?>"/></td>
</tr>
<tr>
<td><div align="right">Please provide details of the problem, or leave any message here.<br>
<br>
Press 'submit' when done.</div></td>
<td><div align="left"><textarea name="message" rows="10" cols="40" ><?php echo htmlspecialchars(@$_REQUEST['message']);?></textarea></td>
</tr>
</table><br>
<input type="submit" VALUE="Submit" align="right"/><br>
</form>
ASKER
hernst42- again, thanks for the reply. I'm a totally beginner at this so you'll have to tell me where i'd put that java script!
Many thanks
Many thanks
ASKER
Getting this when I test it:
"Please provide your ISS username (the login ID you use for logging into computers / email)
Warning: Cannot modify header information - headers already sent by (output started at /export/services/isswww/WW W/contact_ test/sendm ail.php:10 ) in /export/services/isswww/WW W/contact_ test/sendm ail.php on line 23"
"Please provide your ISS username (the login ID you use for logging into computers / email)
Warning: Cannot modify header information - headers already sent by (output started at /export/services/isswww/WW
What's on line 10?
Make sure that the validation part is at the topmost of your script and that html starts lower.
Make sure that the validation part is at the topmost of your script and that html starts lower.
replace your formtag with the code snuppet and add you fields where the ... are the logic should be easy to understand.
<script>
function checkForm(f) {
if (f.name.value == '' && f.email.value == '' && f.phone.value == '' ...) {
alert('please fillout at least on field');
return false;
}
return true;
}
</script>
<form method="post" action="sendmail.php" onsubmit="return checkForm(this);">
ASKER
Sorry to be a pain guys, still getting an error:
"Parse error: parse error, unexpected '}' in /export/services/isswww/WW W/contact_ test/sendm ail.php on line 30"
Can't work out why. .?
"Parse error: parse error, unexpected '}' in /export/services/isswww/WW
Can't work out why. .?
sendmail.php:
<?php
$email = $_REQUEST['email'] ;
$description = $_REQUEST['description'] ;
$name = $_REQUEST['name'] ;
$username = $_REQUEST['username'] ;
$phone = $_REQUEST['phone'] ;
$summary = $_REQUEST['summary'] ;
if(empty($email)) {
$errors++; //
echo '<div>Please make sure you fill out the email field correctly</div>';
}
if(empty($description)) {
$errors++; //
echo '<div>Please make sure you fill out the problem description field correctly</div>';
}
if($errors == 0)
$message = $_REQUEST['message'] ;
$message .= "\nUsername****:$username\n";
$message .= "\nContact Number****:$phone\n";
$message .= "\nEmail Address****:$email\n";
mail( "helpdesk@leeds.ac.uk", $_REQUEST['summary'], $message, "From: $name <$email>" );
header( "Location: http://www.leeds.ac.uk/iss/contact_test/thankyou.html" );
}
?>
- - - - - - - - - - - - -
<form method="post" action="sendmail.php" onsubmit="return checkForm(this);">
<form method="post" action="sendmail.php"><br>
<table width="580" border="0" align="center">
<tr>
<td width="296"><div align="right">Name:</div></td>
<td width="268"><div align="left">
<input name="name" type="text" /></td
></tr>
<tr>
<td><div align="right">Email Address:</div></td>
<td><div align="left"><input name="email" type="text" /></td>
</tr>
<tr>
<td><div align="right">ISS Username (if known):</div></td>
<td><div align="left"><input name="username" type="text" /></td>
</tr>
<tr>
<td><div align="right">Telephone Number:</div></td>
<td><div align="left"><input name="phone" type="text" /></td>
</tr>
<tr>
<td><div align="right">Subject:</div></td>
<td><div align="left"><input name="subject" type="text" /></td>
</tr>
<tr>
<td><div align="right">Please provide details of the problem, or leave any message here.<br>
<br>
Press 'submit' when done.</div></td>
<td><div align="left"><textarea name="message" rows="10" cols="40"></textarea></td>
</tr>
</table><br>
<input type="submit" VALUE="Submit" align="right"/><br>
</form>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
if(empty($_POST['email']))
exit('You did not fill the email field. Please go back and correct the form');
}
Regards,
Roonaan