-2

I am trying to run this script but it throws 500 INTERNAL ERROR PROBLEM though the code does not throw any error.
The script throws an Internal Server 500 error, but when I remove the second $user mail, it works fine.I want to send a confirmation mail as well on successful submission and redirect to the thank you page.I hope I have coded correctly.please help

<?php
//output variables

$output="";

$host="databasehost.com"; // Host name 
$username="username"; // Mysql username 
$password="password"; // Mysql password 
$db_name="databasename"; // Database name 
$tbl_name="tablename"; // Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$result = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="property-value" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result1 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="firstname" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result2 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="lastname" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result3 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="from_email" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result4 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="houseflat-nos" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result5 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="street" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result6 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="towncity" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result7 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="postcode" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result8 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="telephone" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result9 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="outstanding-mortgage" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

//print values to screen
while ($row = mysql_fetch_assoc($result)) {
  //echo $row['ID'];
  $output =  $row['field_value'];
  $percentage = 75;

  $prelim = ($percentage / 100) * $output;
}

while ($row = mysql_fetch_assoc($result1)) {
  //echo $row['ID'];
  $output1 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result2)) {
  //echo $row['ID'];
  $output2 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result3)) {
  //echo $row['ID'];
  $output3 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result4)) {
  //echo $row['ID'];
  $output4 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result5)) {
  //echo $row['ID'];
  $output5 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result6)) {
  //echo $row['ID'];
  $output6 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result7)) {
  //echo $row['ID'];
  $output7 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result8)) {
  //echo $row['ID'];
  $output8 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result9)) {
  //echo $row['ID'];
  $output9 =  $row['field_value'];
}

// Free the resources associated with the result set
// This is done automatically at the end of the script
mysql_free_result($result,$result1,$result2,$result3,$result4,$result5,$result6,$result7,$result8,$result9);

// References to the name values in your HTML form
$field_property1 = $_POST['typeofproperty'];
$field_property2 = $_POST['bedrooms'];
$field_property3 = $_POST['bathrooms'];
$field_property4 = $_POST['toilets'];
$field_property5 = $_POST['reception'];
$field_property6 = $_POST['garage'];
$field_property7 = $_POST['garden'];
$field_property8 = $_POST['generalCondition'];
$field_property9 = $_POST['builtYear'];
$field_property10 = $_POST['centralHeating'];
$field_property11 = $_POST['doubleGlazing'];
$field_property12 = $_POST['structure'];
$field_property13 = $_POST['association'];
$field_property14 = $_POST['inblock'];
$field_property15 = $_POST['freehold'];
$field_property16 = $_POST['yearsleft'];
$field_property17 = $_POST['why'];
$field_property18 = $_POST['when'];
$field_property19 = $_POST['other'];
$field_property20 = $_POST['how'];
$field_property21 = $_POST['howLong'];
$field_property22 = $_POST['workforproperty'];
$field_property23 = $_POST['uniquefeatures'];
$field_property24 = $_POST['anythingelse'];

$user = "$output3";
$usersubject = "Thank You";
$userheaders = "From: mailsentfrom@email.com\n";
$usermessage = "Thank You for your Enquiry. A member of staff will be in contact shortly to discuss your requirements.";

// Since some emails are unknown, I reccomend using a known email sender to avoid messages to go directly to the SPAM folder
$field_sender = ' senderemail@email.com';

// In which address would you like to recieve the messages? Would you like a custom Subject for each?
$mail_to  = ' myemailid@email.com';
$subject  = '[QUALIFIED LEAD] Enuiry ';

// This builds the message
$body_message = 'From: '.$output1."\n";
$body_message  .= 'Phone: '.$output8."\n";
$body_message  .= 'Email: '.$output3."\n\n";
$body_message  .= 'Flat: '.$output4."\n";
$body_message  .= 'Street: '.$output5."\n";
$body_message  .= 'City: '.$output6."\n";
$body_message  .= 'ZIP: '.$output7."\n\n";
$body_message  .= 'Property Value: '.$output."\n\n";
$body_message  .= 'Offer Value: '.$prelim."\n";
$body_message  .= 'Outstanding Value: '.$output9."\n\n";
$body_message  .= 'Type of Property: '.$field_property1."\n";
$body_message  .= 'Number of Bedrooms: '.$field_property2."\n";
$body_message  .= 'Number of Bathrooms: '.$field_property3."\n";
$body_message  .= 'Number of Separate Toilets: '.$field_property4."\n";
$body_message  .= 'Number of Reception Rooms: '.$field_property5."\n";
$body_message  .= 'Garage: '.$field_property6."\n";
$body_message  .= 'Garden: '.$field_property7."\n";
$body_message  .= 'General Condition of Property: '.$field_property8."\n";
$body_message  .= 'Property Built In: '.$field_property9."\n";
$body_message  .= 'Central Heating: '.$field_property10."\n";
$body_message  .= 'Double Glazing: '.$field_property11."\n";
$body_message  .= 'Structure of Property: '.$field_property12."\n";
$body_message  .= 'Ex-Council/Housing association: '.$field_property13."\n\n";
$body_message  .= 'Property in a Block: '.$field_property14."\n";
$body_message  .= 'Freehold/Leasehold: '.$field_property15."\n";
$body_message  .= 'Years of Leashold Left: '.$field_property16."\n";
$body_message  .= 'Reason for Quick Sale: '.$field_property17."\n\n";
$body_message  .= 'How soon: '.$field_property18."\n\n";
$body_message  .= 'Any Loans Secured on Property: '.$field_property19."\n\n";
$body_message  .= 'How Much Loan Secured: '.$field_property20."\n\n";
$body_message  .= 'Property Currently in Market: '.$field_property21."\n\n";
$body_message  .= 'For How Long: '.$field_property22."\n\n";
$body_message  .= 'Any Work Done: '.$field_property23."\n\n";
$body_message  .= 'Any Unique Feature: '.$field_property24."\n\n";
$body_message  .= 'Additional Details to Buyer: '.$field_property25."\n\n";


// Email headers 'From' a known email address to avoid being taken as SPAM and 'Reply-to' the one that filed in the form
$headers  = 'From: '.$field_sender."\r\n";
$headers       .= 'Reply-To: '.$field_email."\r\n";

// Status, builds whole email structure
mail($mail_to, $subject, $body_message, $headers);

mail($user,$usersubject,$usermessage,$userheaders);

if(mail($mail_to, $subject, $body_message, $headers)){
header("Location: http://websitename.com/thankyou-page/);
}else{
header("Location: http://websitename.com");
}
exit;


?>

<?php 
// close connection 
mysql_close();
?>
AnFi
  • 10,493
  • 3
  • 23
  • 47
Skyweb Studios
  • 1
  • 1
  • 1
  • 5
  • 2
    A "500 Internal Server Error" status code (or a blank page) means that your script is throwing an error but you haven't configured PHP to display error messages. That's something you need to fix before you go further; it's impossible to code properly without the aid of error messages. Here's a [brief explanation](http://stackoverflow.com/a/5680885/13508). – Álvaro González Jan 16 '14 at 13:21
  • I suggest you to see the apache logs where you can get the exact error – Freak Jan 16 '14 at 13:25
  • Thanks for the prompt response... Do you mean I add code to show error... I do not have access to php.ini or htaccess file. Is there any other way around? – Skyweb Studios Jan 16 '14 at 13:26
  • $user = "$output3"; ... is correct? I thing it should be $user = $output3; – user1844933 Jan 16 '14 at 13:28
  • ofcorse , if you place "" then this thing will turn into string – Freak Jan 16 '14 at 13:28
  • Where is the closing `"` of your first `header` call? – Bart Friederichs Jan 16 '14 at 13:30
  • I hope so... The field values are being called from a previous form that is filled. I am assuming it to be correct since it displays the values properly.. – Skyweb Studios Jan 16 '14 at 13:30
  • alot of errors in the file. @user3202666 You need to see closely this file and try to learn how to use double qoutes – Freak Jan 16 '14 at 13:31
  • Everything works fine until the confirmation mail is added... When I add the second mail script, it turns upside down! – Skyweb Studios Jan 16 '14 at 13:32
  • Can anyone be kind enough to show me the errors or show me the proper code? Please... – Skyweb Studios Jan 16 '14 at 13:33
  • Ok... Issue is the site is hosted with iPage and it doesnot allow access to SQL server remotely.. Other than that most issues fixed. Any ideas how t turn this around? – Skyweb Studios Jan 16 '14 at 16:25
  • `header("Location: http://websitename.com/thankyou-page/);` is definitely a problem, if you haven't already fixed it (add " before closing ) ). – Phil Perry Jan 17 '14 at 15:51

4 Answers4

0
change $user = "$output3"; to $user = $output3;
user1844933
  • 3,296
  • 2
  • 25
  • 42
  • $result3 and $output3 should be a string anyway (email address), so no harm done (just a few wasted cycles). – Phil Perry Jan 17 '14 at 15:43
0

500 Internal Server Error is shown if your php code has fatal errors but error displaying is switched off. You may try this to see the error itself instead of 500 error page:

In your php file:

ini_set('display_errors', 1);

You can also check Apache error logs, if you have access to them.

Hassan
  • 742
  • 7
  • 13
0

If you remove/comment out the second mail() call, it works? You do know that you can put multiple "to" addresses and use just one mail(), don't you?

$mail_to  = ' myemailid@email.com, '.$user;

I'm not sure if the leading space is causing any harm (try removing it if nothing else works). Now, is $user a legitimate email address? Have you printed it out to check it?

Or, you can add a "cc: " email address in the header, if you'd rather send it to the person that way.

Phil Perry
  • 2,126
  • 14
  • 18
0

Thanks for all the brilliant response guys! ( Álvaro G. Vicario, freak, Bart Friederichs, Bart Friederichs and not to forget Hassan)

It finally is sorted. Please find the be working code below: (feel free to modify it if you like)

<?php

 ini_set('display_errors', 1);   

//output variables

$output="";

$host="databasehost.com"; // Host name 
$username="username"; // Mysql username 
$password="password"; // Mysql password 
$db_name="databasename"; // Database name 
$tbl_name="tablename"; // Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$result = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="property-value" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result1 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="firstname" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result2 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="lastname" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result3 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="from_email" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result4 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="houseflat-nos" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result5 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="street" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result6 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="towncity" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result7 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="postcode" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result8 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="telephone" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

$result9 = mysql_query('SELECT `field_value` FROM `tablename` WHERE `field_name`="outstanding-mortgage" ORDER BY `submit_time` DESC LIMIT 1') or die('Invalid query: ' . mysql_error());

//print values to screen
while ($row = mysql_fetch_assoc($result)) {
  //echo $row['ID'];
  $output =  $row['field_value'];
  $percentage = 75;

  $prelim = ($percentage / 100) * $output;
}

while ($row = mysql_fetch_assoc($result1)) {
  //echo $row['ID'];
  $output1 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result2)) {
  //echo $row['ID'];
  $output2 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result3)) {
  //echo $row['ID'];
  $output3 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result4)) {
  //echo $row['ID'];
  $output4 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result5)) {
  //echo $row['ID'];
  $output5 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result6)) {
  //echo $row['ID'];
  $output6 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result7)) {
  //echo $row['ID'];
  $output7 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result8)) {
  //echo $row['ID'];
  $output8 =  $row['field_value'];
}

while ($row = mysql_fetch_assoc($result9)) {
  //echo $row['ID'];
  $output9 =  $row['field_value'];
}

// Free the resources associated with the result set
// This is done automatically at the end of the script
mysql_free_result($result,$result1,$result2,$result3,$result4,$result5,$result6,$result7,$result8,$result9);

// References to the name values in your HTML form
$field_property1 = $_POST['typeofproperty'];
$field_property2 = $_POST['bedrooms'];
$field_property3 = $_POST['bathrooms'];
$field_property4 = $_POST['toilets'];
$field_property5 = $_POST['reception'];
$field_property6 = $_POST['garage'];
$field_property7 = $_POST['garden'];
$field_property8 = $_POST['generalCondition'];
$field_property9 = $_POST['builtYear'];
$field_property10 = $_POST['centralHeating'];
$field_property11 = $_POST['doubleGlazing'];
$field_property12 = $_POST['structure'];
$field_property13 = $_POST['association'];
$field_property14 = $_POST['inblock'];
$field_property15 = $_POST['freehold'];
$field_property16 = $_POST['yearsleft'];
$field_property17 = $_POST['why'];
$field_property18 = $_POST['when'];
$field_property19 = $_POST['other'];
$field_property20 = $_POST['how'];
$field_property21 = $_POST['howLong'];
$field_property22 = $_POST['workforproperty'];
$field_property23 = $_POST['uniquefeatures'];
$field_property24 = $_POST['anythingelse'];

$user = "$output3";
$usersubject = "Thank You";
$userheaders = "From: mailsentfrom@email.com\n";
$usermessage = "Thank You for your Enquiry. A member of staff will be in contact shortly to discuss your requirements.";

// Since some emails are unknown, I reccomend using a known email sender to avoid messages to go directly to the SPAM folder
$field_sender = ' senderemail@email.com';

// In which address would you like to recieve the messages? Would you like a custom Subject for each?
$mail_to  = ' myemailid@email.com, '.$user;
$subject  = '[QUALIFIED LEAD] Enuiry ';

// This builds the message
$body_message = 'From: '.$output1."\n";
$body_message  .= 'Phone: '.$output8."\n";
$body_message  .= 'Email: '.$output3."\n\n";
$body_message  .= 'Flat: '.$output4."\n";
$body_message  .= 'Street: '.$output5."\n";
$body_message  .= 'City: '.$output6."\n";
$body_message  .= 'ZIP: '.$output7."\n\n";
$body_message  .= 'Property Value: '.$output."\n\n";
$body_message  .= 'Offer Value: '.$prelim."\n";
$body_message  .= 'Outstanding Value: '.$output9."\n\n";
$body_message  .= 'Type of Property: '.$field_property1."\n";
$body_message  .= 'Number of Bedrooms: '.$field_property2."\n";
$body_message  .= 'Number of Bathrooms: '.$field_property3."\n";
$body_message  .= 'Number of Separate Toilets: '.$field_property4."\n";
$body_message  .= 'Number of Reception Rooms: '.$field_property5."\n";
$body_message  .= 'Garage: '.$field_property6."\n";
$body_message  .= 'Garden: '.$field_property7."\n";
$body_message  .= 'General Condition of Property: '.$field_property8."\n";
$body_message  .= 'Property Built In: '.$field_property9."\n";
$body_message  .= 'Central Heating: '.$field_property10."\n";
$body_message  .= 'Double Glazing: '.$field_property11."\n";
$body_message  .= 'Structure of Property: '.$field_property12."\n";
$body_message  .= 'Ex-Council/Housing association: '.$field_property13."\n\n";
$body_message  .= 'Property in a Block: '.$field_property14."\n";
$body_message  .= 'Freehold/Leasehold: '.$field_property15."\n";
$body_message  .= 'Years of Leashold Left: '.$field_property16."\n";
$body_message  .= 'Reason for Quick Sale: '.$field_property17."\n\n";
$body_message  .= 'How soon: '.$field_property18."\n\n";
$body_message  .= 'Any Loans Secured on Property: '.$field_property19."\n\n";
$body_message  .= 'How Much Loan Secured: '.$field_property20."\n\n";
$body_message  .= 'Property Currently in Market: '.$field_property21."\n\n";
$body_message  .= 'For How Long: '.$field_property22."\n\n";
$body_message  .= 'Any Work Done: '.$field_property23."\n\n";
$body_message  .= 'Any Unique Feature: '.$field_property24."\n\n";
$body_message  .= 'Additional Details to Buyer: '.$field_property25."\n\n";


// Email headers 'From' a known email address to avoid being taken as SPAM and 'Reply-to' the one that filed in the form
$headers  = 'From: '.$field_sender."\r\n";
$headers       .= 'Reply-To: '.$field_email."\r\n";

// Status, builds whole email structure


if(mail($mail_to, $subject, $body_message, $headers)){
header("Location: http://websitename.com/thankyou-page/");
}else{
header("Location: http://websitename.com");
}
exit;


?>

<?php 
// close connection 
mysql_close();
?>
Skyweb Studios
  • 1
  • 1
  • 1
  • 5