Log in

View Full Version : How do I add a phone number field to this php script?



ScratchMeHead
04-03-2017, 03:03 PM
Hi Folks,

First post here and I know you'll probably want to beat me around the head with a blunt object when you see what I'm asking, but I haven't a clue when it comes to php and just trying to jump in the deep end and get this contact form up and running! It's currently working, but I need to add a phone number field, I can probably add it to the contact form, but what and where would I add to the php script?

I'd appreciate if someone could take a minute and let me know what to do here...!

Here's the form:


<form class="form-horizontal" name="commentform" method="post" action="modal_sendmail.php">
<div class="form-group">
<label class="control-label col-md-4" for="first_name">First Name</label>
<div class="col-md-6 input-group">
<span class="input-group-addon"><i class="fa fa-user fa-fw" style="color:gray"></i></span>
<input type="text" class="form-control" id="first_name" name="first_name" placeholder="First Name"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-4" for="last_name">Last Name</label>
<div class="col-md-6 input-group">
<span class="input-group-addon"><i class="fa fa-user fa-fw" style="color:gray"></i></span>
<input type="text" class="form-control" id="last_name" name="last_name" placeholder="Last Name"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-4" for="email">Email Address</label>
<div class="col-md-6 input-group">
<span class="input-group-addon"><i class="fa fa-envelope fa-fw" style="color:gray"></i></span>
<input type="email" class="form-control" id="email" name="email" placeholder="Email Address"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-4" for="comment">Question or Comment</label>
<div class="col-md-6 input-group">
<span class="input-group-addon"><i class="fa fa-comments fa-fw" style="color:gray"></i></span>
<textarea rows="6" class="form-control" id="comments" name="comments" placeholder="Your question or comment here"></textarea>
</div>
</div>
<div class="form-group modal-footer">
<div class="col-md-6">
<button type="submit" value="Submit" class="btn btn-custom pull-right">Send</button>
</div>
</div>
</form>


And here's the php script:


<?php
if(isset($_POST['email'])) {

// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "blah@blah.com";
$email_subject = "Mail from contact form";

function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}

// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}

$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$comments = $_POST['comments']; // required

$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z\s.'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";

function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}

$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";

// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
sleep(2);
echo "<meta http-equiv='refresh' content=\"0; url=http://www.blah@blah.com/thank-you.php\">";
?>

<?php
}
?>


Thanks people!

Tabassum
04-06-2017, 07:21 AM
Dear Searchmehead,

Try this one; our experienced developer suggested this,

:-)



+++++++++++++FORM +++++++

<form class="form-horizontal" name="commentform" method="post" action="modal_sendmail.php">
<div class="form-group">
<label class="control-label col-md-4" for="first_name">First Name</label>
<div class="col-md-6 input-group">
<span class="input-group-addon"><i class="fa fa-user fa-fw" style="color:gray"></i></span>
<input type="text" class="form-control" id="first_name" name="first_name" placeholder="First Name"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-4" for="last_name">Last Name</label>
<div class="col-md-6 input-group">
<span class="input-group-addon"><i class="fa fa-user fa-fw" style="color:gray"></i></span>
<input type="text" class="form-control" id="last_name" name="last_name" placeholder="Last Name"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-4" for="email">Email Address</label>
<div class="col-md-6 input-group">
<span class="input-group-addon"><i class="fa fa-envelope fa-fw" style="color:gray"></i></span>
<input type="email" class="form-control" id="email" name="email" placeholder="Email Address"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-4" for="phone_number">Phone Number</label>
<div class="col-md-6 input-group">
<span class="input-group-addon"><i class="fa fa-envelope fa-fw" style="color:gray"></i></span>
<input type="number" class="form-control" id="phone_number" name="phone_number" placeholder="Phone Number"/>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-4" for="comment">Question or Comment</label>
<div class="col-md-6 input-group">
<span class="input-group-addon"><i class="fa fa-comments fa-fw" style="color:gray"></i></span>
<textarea rows="6" class="form-control" id="comments" name="comments" placeholder="Your question or comment here"></textarea>
</div>
</div>
<div class="form-group modal-footer">
<div class="col-md-6">
<button type="submit" value="Submit" class="btn btn-custom pull-right">Send</button>
</div>
</div>
</form>


+++++++++++PHP SCRIPT TO PROCESS FORM +++++++++++


<?php
if(isset($_POST['email'])) {

// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "blah@blah.com";
$email_subject = "Mail from contact form";

function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}

// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['phone_number']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}

$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$phone_number = $_POST['phone_number']; // required
$comments = $_POST['comments']; // required

$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z\s.'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}

$number_exp = "/^[0-9\s.'-]+$/";
if(!preg_match($number_exp,$phone_number)) {
$error_message .= 'The Phone Number you entered does not appear to be valid.<br />';
}

if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";

function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}

$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Phone Number : ".clean_string($phone_number)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";

// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
sleep(2);
echo "<meta http-equiv='refresh' content=\"0; url=http://www.blah@blah.com/thank-you.php\">";
?>

<?php
}
?>

ScratchMeHead
04-06-2017, 07:11 PM
Hey Tabassum,

That worked perfectly for me. I realise that it was a pure beginner request that I posted, but we all have to start somewhere so Thank You for helping me with this one. I've gone through and compared both versions of the script and can see what's been added.

At first it didn't work for me because I removed the
<?php
} ?> from the end of the script, I presumed it was there in error as it has an opening and closing tag with just a bracket im between, I didn't know what it was for. Do you know what its purpose is in this script?

Once again, Thank you for your help..>!

jscheuer1
04-07-2017, 02:51 PM
When you have something like that in PHP it generally allows you to put in optional presentational text (HTML, javascript, and/or just plain text) just above the <?php tag. In this particular case, since it's outputting a meta tag redirect (which can be disabled in the browser), one could put in a link to the redirect as a fallback. But I would be inclined to use a PHP header redirect (which cannot be overridden) instead. Also I think "died" should be "die", but not having experience with the code, cannot say for sure.

ScratchMeHead
04-08-2017, 09:30 AM
Hmm - thanks for that John, I'll take a look at header redirect and see what that's all about. I'll take a look at the die section too. It'll be a few days before I can set aside time for it though, I'm off to cut trees that are running wild in the garden I don't suppose you have a script that shred branches? Chuckle! Thanks again...

Tabassum
04-10-2017, 05:24 AM
You are most Welcome ScratchMeHead!!!