Domanda

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();
?>
È stato utile?

Soluzione 4

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();
?>

Altri suggerimenti

change $user = "$output3"; to $user = $output3;

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.

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top