Моя форма PHP с полем html <select>, отправляющим форму на разные электронные письма, не выполняется - PullRequest
0 голосов
/ 19 сентября 2011

Я все еще новичок в php, так что я уверен, что это где-то глупая ошибка, но я не могу понять, почему моя форма не отправляется ни на одно из писем, которые я назначил в ящике пользователя,Я думал, что это будет просто утверждение «если», но когда я нажимаю «отправить» в форме, насколько я могу судить, это ни к чему не приводит.Это даже не выполняется.Посмотрите на мой код и посмотрите, нет ли у вас проблем с синтаксисом или чем-то вроде:

<?php
$hostname  =  "db.example.com";
$database  =  "poweri3_blank";
$username   =  "script";
$password   =  "xxxxxx";
$conn  =   mysql_connect($hostname, $username, $password) or DIE("Unable to connect to database"); 
$dbconnection  =  $conn;
mysql_select_db($database) OR DIE("Unable to select database");

/* Subject and Email Variables- */
$emailSubject = 'Request for Provider'; 
$webMaster = 'me@gmail.com'; 

/*Gathering Data Variables*/
$firstName  =  $_POST['firstName'];
$lastName  =  $_POST['lastName'];
$email  =  $_POST['email'];
$zipCode = $_POST['zipCode'];
$provider = $_POST['provider'];
$comment = $_POST['comment'];

//send e-mail to different providers
if($provider=="p1") $sendTo = "p1@gmail.com";
if($provider=="p2") $sendTo = "p2@gmail.com";
if($provider=="p3") $sendTo = "p3@gmail.com";
if($provider=="p4") $sendTo = "p4@gmail.com";

$body = <<<EOD
<br><hr><br>//--------CONTACT--------//<br><br>
Name: $firstName $lastName<br><br>
Email: $email<br><br>
Cable or Satellite Provider: $provider<br><br>
Zip/Postal Code: $zipCode<br><br>
Your Message: $comment<br><br>
EOD;

$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster,$emailSubject,$body,$headers);

//Enter Data Into Table
$sql = "INSERT INTO poweri3_blank.provider_contact (
            firstName,
            lastName,
                        email,
                        zip_code, 
                        provider, 
                        comment                       
            )
        VALUES(
            '".$firstName."',
            '".$lastName."',
                        '".$email."',
                        '".$zipCode."',
                        '".$provider."',
                        '".$comment."')";

$result  =  mysql_query($sql) or die("Couldn't execute query: $sql");
//$result  =  mysql_query($sql) or die(mysql_error());

// Kill connection
mysql_close($conn);

/*Results rendered as HTML


$theResults = <<<EOD
<html>
<head>
<title>Yourpage title</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-color: #f1f1f1;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
line-height: normal;
font-weight: normal;
color: #666666;
text-decoration: none;
}
-->
</style>
</head>

<div>
<div align="left">Thank You For Your Interest. </div>
</div>
</body>
</html>
EOD;


echo "$theResults";*/
?>

Я работаю в MODx, если кому-то интересно.Благодарю.Извините, я обычно не спрашиваю, но я полностью потерян.Если на странице произошла ошибка, это была бы одна вещь, но она просто ничего не делает (насколько я могу судить).

Ответы [ 3 ]

0 голосов
/ 19 сентября 2011
$success = mail($webMaster,$emailSubject,$body,$headers);

должно быть

$success = mail($sendTo,$emailSubject,$body,$headers);

Если вы используете почтовую функцию, вам нужно настроить SMTP на вашем сервере.

Если вы не знаете, как настроить, попробуйте с помощью PHPMailer .

0 голосов
/ 19 сентября 2011

Вы имели в виду $success = mail($sendTo,$emailSubject,$body,$headers);?

0 голосов
/ 19 сентября 2011

Я не уверен, в чем смысл вашего

//send e-mail to different providers
if($provider=="p1") $sendTo = "p1@gmail.com";
if($provider=="p2") $sendTo = "p2@gmail.com";
if($provider=="p3") $sendTo = "p3@gmail.com";
if($provider=="p4") $sendTo = "p4@gmail.com";

, поскольку вы, похоже, совсем не используете $ sendTo позже в скрипте.

Если вы хотитечтобы узнать, что он делает, используйте несколько операторов echo, в том числе один из них в переменной $success.if(!$success) echo "error"; или что-то в этом роде.

Кроме того, какие ошибки выдаются в данный момент?

...