我有一個web服務器能夠發送來自gmail帳戶的電子郵件。我有一個基於SQL查詢生成動態表單的頁面等。然後,我有一個表單輸入您的電子郵件地址,然後重定向到另一個頁面,顯示「發送消息」,並且該頁面上的代碼發送電子郵件。但是,如何更改電子郵件的內容,使其成爲上一頁生成的表格?我不想重新創建整個表並將其設置爲一個變量,因爲我認爲有一個更有效的方法來完成它。任何幫助,將不勝感激。在PHP郵件發送HTML表格
「的search.php」(此頁基於由先前的頁面執行的查詢表)
<html>
<head>
<style type="text/css">
table {
background-color: #C0C0C0;
}
th{
width: 150px;
text-align:center;
border-style: solid;
border-width: 2px;
border-color: black;
background-color: #008080;
font-family: Helvetica;
}
td {
border-style: solid;
border-width: 2px;
border-color: black;
font-family: Helvetica;
background-color: #FFFF00;
text-align:center;
}
body {
background-color:#1C2932;
}
h1 {
font-family: Helvetica;
font-size: 24px;
color: #989898;
}
p {
font-family: Helvetica;
font-size: 18px;
color: #989898;
}
</style>
</head>
<body>
<?php
include 'tablegen.php';
if(isset ($_POST['term'])) {
$x = $_POST['term'];
connect($x);
tableGen();
}//end main if
//area 52 what is going on...
echo "<form action='email.php' method = 'post'>";
echo "<p><b>Do you want this in an email?</b></p>";
echo "<input type='text' name='send'>";
echo "<input type='submit' name='submit' value='Send!' />";
echo "</form>";
?>
<br></br>
<form method="LINK" action="landing.php">
<input type="submit" value="Go Back!">
</form>
</body>
</html>
「email.php」(此頁實際發送的電子郵件)
<html>
<head>
<style>
body {
background-color:#1C2932;
}
p {
font-family: Helvetica;
font-size: 18px;
color: #989898;
}
</style>
</head>
<?php
$email = $_POST['send'];
$headers = array(
'From: [email protected]',
'Content-Type: text/html',
'Content-Type: text/css'
);
mail($email,'HTML Email','I want to send an HTML table!!!',implode("\r\n",$headers));
echo "<p>Email Sent!</p>";
?>
</html>
「tablegen.php」(用於顯示錶格的功能) - WORKS !!!
<?php
function connect(){
mysql_connect("localhost","root","water123") or die ('Error Reaching Database');
mysql_select_db("MathGuide");
}
//Area 51, idk what I'm doing
function tableGen($x) {
$term=$x;
$sql = mysql_query("select * from student_info where ID like '%$term%'");
echo "<h1>STUDENT DATA for ID: $search</h1>";
echo "<table>";
echo "<tr>
<th>ID</th>
<th>Project</th>
<th>Starter Project</th>
<th>Course</th>
<th>KDs Completed in your Course</th>
<th>Projects Completed</th>
<th>Project 1</th>
<th>P1KD1</th>
<th>P1KD2</th>
<th>P1KD3</th>
<th>P1KD4</th>
<th>P1KD5</th>
<th>Project 2</th>
<th>P2KD1</th>
<th>P2KD2</th>
<th>P2KD3</th>
<th>P2KD4</th>
<th>P2KD5</th>
<th>Project 3</th>
<th>P3KD1</th>
<th>P3KD2</th>
<th>P3KD3</th>
<th>P3KD4</th>
<th>P3KD5</th>
<th>Project 4</th>
<th>P4KD1</th>
<th>P4KD2</th>
<th>P4KD3</th>
<th>P4KD4</th>
<th>P4KD5</th>
</tr>";
while ($row = mysql_fetch_array($sql))
{
echo "<tr><td>";
echo $row['ID'];
echo "</td><td>";
echo $row['Project'];
echo "</td><td>";
echo $row['Starter Project'];
echo "</td><td>";
echo $row['Course'];
echo "</td><td>";
echo $row['KDs completed in your course'];
echo "</td><td>";
echo $row['Projects Completed'];
echo "</td><td>";
echo $row['Project 1'];
echo "</td><td>";
echo $row['P 1 KD 1'];
echo "</td><td>";
echo $row['P 1 KD 2'];
echo "</td><td>";
echo $row['P 1 KD 3'];
echo "</td><td>";
echo $row['P 1 KD 4'];
echo "</td><td>";
echo $row['P 1 KD 5'];
echo "</td><td>";
echo $row['Project 2'];
echo "</td><td>";
echo $row['P 2 KD 1'];
echo "</td><td>";
echo $row['P 2 KD 2'];
echo "</td><td>";
echo $row['P 2 KD 3'];
echo "</td><td>";
echo $row['P 2 KD 4'];
echo "</td><td>";
echo $row['P 2 KD 5'];
echo "</td><td>";
echo $row['Project 3'];
echo "</td><td>";
echo $row['P 3 KD 1'];
echo "</td><td>";
echo $row['P 3 KD 2'];
echo "</td><td>";
echo $row['P 3 KD 3'];
echo "</td><td>";
echo $row['P 3 KD 4'];
echo "</td><td>";
echo $row['P 3 KD 5'];
echo "</td><td>";
echo $row['Project 4'];
echo "</td><td>";
echo $row['P 4 KD 1'];
echo "</td><td>";
echo $row['P 4 KD 2'];
echo "</td><td>";
echo $row['P 4 KD 3'];
echo "</td><td>";
echo $row['P 4 KD 4'];
echo "</td><td>";
echo $row['P 4 KD 5'];
echo "</td></tr>";
}
echo "</table>";
}//end main if
您的mysql_query容易受到SQL注入指出,參見[此鏈接](http://stackoverflow.com/questions/60174/how-to-prevent- SQL注入在PHP中)的方式來避免它 – dequis 2013-04-30 01:31:40
其實,無論何時你包括用戶輸入,你應該消毒它以某種方式,請參閱[這個其他鏈接](http://stackoverflow.com/questions/129677/whats-the-best -method-for-sanitizing-user-input-with-php/130323),因爲html中的其他$術語容易受到XSS的影響 – dequis 2013-04-30 01:33:35
非常感謝您指出這一點!本週末我肯定會花一些時間來堵塞安全漏洞。由於數據已公開,因此我並不太擔心這一點,因爲我只是建立一個門戶網站來更快地搜索,而不是下載整個電子表格。無論如何,我可以通過電子郵件發送此表嗎? – Carpetfizz 2013-04-30 01:40:42