1)使用$ _GET ['id']定义mysql行 2)从数据库,包括电子邮件地址和 3)发送电子邮件到提取的电子邮件地址。
没有错误报告错误报告(注意粘贴代码已将它们注释掉),但下面的变量($ street2和$ email)似乎不通过包含文件保留。当回声没有被注释掉时,回声都可以正常工作。当我用实际的电子邮件地址替换$ email变量(在包含文件上,未显示)时,一切都可以正常发送。
我认为要注意的主要是在第9行,如果我定义$ id,那么一切工作正常。但是,如果我尝试使用$ _GET来定义$ id变量,那么回显的变量仍然显示正常(表示db查询成功),但包含文件不起作用。
这是我的代码。它位于HTML表单上方。我已经在代码中包含了一些注释,以便您可以更好地了解工作与否。
<?php
session_start() or die("Could not start session.");
//error_reporting(E_ALL);
//ini_set('display_errors', '1');
$id = 0;
if(isset($_GET['id']) && is_numeric($_GET['id']))
$id = (int)$_GET['id'];
//$id=4;
//if Line 9 is not commented out, then the whole script works fine and email is sent
require('connect.php');
$query1 = mysql_query("SELECT street2 FROM prop_one WHERE sellerID='$id'") or die("OOPS: Bad query1");
$row1 = mysql_fetch_assoc($query1, MYSQL_NUM);
$street2 = $row1[0];
//echo "This is $street2";
$query2=mysql_query("SELECT email FROM account WHERE sellerID='$id'") or die("OOPS: Bad query2");
$row2 = mysql_fetch_assoc($query2, MYSQL_NUM);
$email = $row2[0];
//echo "<br>This is $email";
if (isset($_POST['submit']))
{
include_once("emailSeller_inc.php");
}
?>
这里是形式:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" name="emailToSeller">
<fieldset>
<legend>Your Contact Info
</legend>
<label for="conFName">First name*</label>
<input name="conFName" type="text" id="conFName" value="<?php echo stripslashes(htmlentities($conFName)) ?>" placeholder="required" required = "required" size="35" maxlength="50"/>
<label for="conLName">Last name</label>
<input name="conLName" type="text" id="conLName" value="<?php echo stripslashes(htmlentities($conLName)) ?>" size="35" maxlength="50"/>
<label for="conEmail">Email*</label>
<input name="conEmail" type="email" id="conEmail" value="<?php echo stripslashes(htmlentities($conEmail)) ?>" placeholder="required" required="required" size="35" maxlength="50"/>
<label for="conTel">Phone</label>
<input name="conTel" type="text" id="conTel" value="<?php echo stripslashes(htmlentities($conTel)) ?>" placeholder="" size="25" maxlength="15"/> e.g., 555.555.5555
</fieldset>
<fieldset style="text-align: center; position: absolute; top: -200; z-index: -1000;">
<input class="teaser" type="submit" name="submit" id="submit" value="Submit"/>
</fieldset>
<fieldset>
<legend>Your Message
</legend>
<label for="conSubject">Subject*</label>
<input name="conSubject" type="text" id="conSubject" value="<?php echo stripslashes(htmlentities($conSubject)) ?>" placeholder="required" required="required" size="35" maxlength="50"/>
<label for="conMessage">Message*</label>
<textarea name="conMessage" type="textarea" id="conMessage" placeholder="required" required="required" cols="50" rows="8" maxlength="400"/><?php echo stripslashes(htmlentities($conMessage)) ?></textarea>
<label class="teaser">Email</label>
<input class="teaser" name="validate" id="validate" type="text" autocomplete="off" />
</fieldset>
<fieldset style="text-align: center">
<input class="button" type="submit" name="submit" id="submit" value="Send email"/>
</fieldset>
</form>
</div>
echo $ _GET ['id']会发生什么? – scalopus 2012-04-19 15:57:37
尝试is_int而不是is_numeric,否则就像“4e12a”也是有效的 – Mohammer 2012-04-19 16:02:29
其中是connect.php?是在正确的路径?也许你可以激活php.ini中的显示错误(或检查日志)来查看php – kappa 2012-04-19 16:03:45