0

I have a webpage saved as contact_us.php but when I load it (hosted) it just returns blank.

I used the code here (answer with green tick and 23 votes): Send email with PHP from html form on submit with the same script

The code I have (at the top of the page) is:

<?php 
if(isset($_POST['submit'])){
$to = "abc123@hotmail.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];

$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
// You can also use header('Location: thank_you.php'); to redirect to another page.
}
?>

And (within body):

<form action="" method="post">
            First Name: <input type="text" name="first_name"><br><br>
            Last Name: <input type="text" name="last_name"><br><br>
            Email: <input type="text" name="email"><br><br>
            Message:<br><textarea rows="5" name="message" cols="30"></textarea><br><br>
            <input type="submit" name="submit" value="Submit">
</form>

Can someone see any errors?

I tested it in XAMPP and it was working fine - sending 2 emails and saying thank you etc, but when I put it 'live' I get the white screen of death?

Community
  • 1
  • 1
AndrewNR
  • 134
  • 1
  • 2
  • 13
  • 1
    Do you have error reporting turned on for your PHP code ? – Maximus2012 Jul 30 '15 at 18:10
  • http://stackoverflow.com/questions/6575482/how-do-i-enable-error-reporting-in-php – Maximus2012 Jul 30 '15 at 18:10
  • It is also possible that the error is in the mail sending part. – Maximus2012 Jul 30 '15 at 18:22
  • 2
    possible duplicate of [PHP mail form doesn't complete sending e-mail](http://stackoverflow.com/questions/24644436/php-mail-form-doesnt-complete-sending-e-mail) – Jay Blanchard Jul 30 '15 at 18:28
  • 1
    White screen of death usually means problems somewhere. Check your logs if you have access to them, and/or... Add error reporting to the top of your file(s) right after your opening PHP tag for example ` – Funk Forty Niner Jul 30 '15 at 18:31
  • 1
    There's nothing wrong with the code, so the issue is host-based. Check the server's error logs. – j08691 Jul 30 '15 at 18:44
  • Replace your present line with `if(mail($from,$subject2,$message2,$headers2)){ echo "mail 2 sent also"; } else{ echo "misfired"; }` if you see **mail 2 sent also** then the second mail call would have done its job. I tested your code and it too worked fine for me. You'll also need to make sure that **all** fields get filled in. – Funk Forty Niner Jul 30 '15 at 18:57
  • I can only assume there is an error with hosting .php pages as I removed all php code and tried loading up contact_us.php but still I get the white screen of death. it's being hosted by Go Daddy if that makes any difference. – AndrewNR Jul 31 '15 at 11:45

1 Answers1

0

I have now managed to get this to work (and wasted plenty of time calling Go Daddy getting no where).

  • I created a new .php file name contact.php
  • copied over the code from contact_us.php to contact.php one step at a time and tested it on Go Daddy's servers to make sure it worked.

The only differences were:

<!DOCTYPE html>
<html>

Instead of

<?xml version=”1.0” encoding=”UTF-8”?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

I also put the php code within body instead of at the top of the document but I doubt this makes any difference.

Would that make that much difference?

AndrewNR
  • 134
  • 1
  • 2
  • 13