-2

顧客がフォームに入力すると、フォーム データが mysql に送信され、顧客が送信した最後のフォーム データのみが記載された電子メールが送信されます。すべてが機能していますが、問題は電子メール「mysql data」にあるだけで、インラインテキストではありません。それで、これを行う方法は?PHPでやっています。PHPの経験はわずか2週間です。サンプルコードを以下に示します。助けてください。

<?php


define('DB_NAME', 'sandi565_form11');
define('DB_USER', '********');
define('DB_PASSWORD', '********');
define('DB_HOST', 'localhost');

$link = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

//Start Posting the data in Mysql database from Form Input

$value = $_POST['input1'];
$value2 = $_POST['MAmount'];

$sql = "INSERT INTO demo (input1, MAmount) VALUES ('$value', '$value2')";

if (!mysql_query($sql)) {
    die('Error: ' . mysql_error());

}

//start print the database on form processing page

$data = mysql_query("SELECT * FROM demo ORDER BY ID DESC LIMIT 1")
 or die(mysql_error()); 
 Print "<table border cellpadding=3>"; 
 while($info = mysql_fetch_array( $data )) 
 { 
 Print "<tr>"; 
 Print "<th>ID:</th> <td>".$info['ID'] . "</td> "; 
 Print "<th>Input1:</th> <td>".$info['input1'] . "</td> "; 
 Print "<th>MAmount:</th> <td>".$info['MAmount'] . " </td></tr>"; 
 } 
 Print "</table>"; 

mysql_close();


//end print the database on form processing page

//start emailing the data


date_default_timezone_set('Asia/Kolkata');

require_once('class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail             = new PHPMailer();

//$body             = preg_replace("[\]",'',$body);

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "ssl://stevie.********.org"; // SMTP server
$mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
$mail->Host       = "stevie.********.org";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server
$mail->Username   = "contact@********.com";  // GMAIL username
$mail->Password   = "********";            // GMAIL password

$mail->SetFrom('contact@********.com', 'HAL');

//$mail->AddReplyTo("user2@gmail.com', 'First Last");

$mail->Subject    = "Halmira 469";
//$body             = "gdssdh";

//THE PROBLEM IS HERE WHEN I WANT TO SEND THE DATA AS BODY TO EMAIL FROM MYSQL IT IS NOT WORKING. SHOWING ERROR MESSAGE BODY EMPTY.

$Body = "Print the data"; @MYSQL_CONNECT("localhost","********","********");
@mysql_select_db("sandi565_form11");
$query["SELECT * FROM demo ORDER BY ID DESC LIMIT 1"];
$result = @MYSQL_QUERY($query);


//$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$address = "********@gmail.com";
$mail->AddAddress($address, "user2");

//$mail->AddAttachment("images/phpmailer.gif");      // attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
//end email the data

?>
4

1 に答える 1

0

うわー、それはうまくいくはずですか?

$Body = "Print the data"; @MYSQL_CONNECT("localhost","********","********");
@mysql_select_db("sandi565_form11");
$query["SELECT * FROM demo ORDER BY ID DESC LIMIT 1"];
$result = @MYSQL_QUERY($query);

関数名 (大文字) が間違っていると、クエリが文字列に正しく割り当てられない

試す

$Body = "Print the data"; mysql_connect("localhost","********","********");
@mysql_select_db("sandi565_form11");
$query="SELECT * FROM demo ORDER BY ID DESC LIMIT 1";
$result = mysql_query($query);
于 2013-01-04T19:39:22.390 に答える