我的PHP代码需要一些帮助。我想在查看隐藏图像时重定向到我的PHP脚本。
它将显示图像,但不会重定向到带有ID的send.php脚本。
以下是代码:
<?php
include('config.php');
require '../PHPMailerAutoload.php';
if (isset($_POST['send'])) {
$from = 'rob@robertsite.org';
$toArr = explode(",",$_POST['to']);
$subject = $_POST['subject'];
$message = $_POST['message'];
$sendDateTime = date("Y-m-d h:i:s");
foreach($toArr as $to)
{
mysql_query("insert into tracker(email, sendDateTime,isRead) values('$to', '$sendDateTime', '0')");
$selSendEmailID = mysql_query("select id from tracker order by id desc");
$rowSendEmailID = mysql_fetch_array($selSendEmailID);
$rowEmailID = $rowSendEmailID['id'];
$message .= "<img src=\"http://robertsite.org/phpmailer/examples/blank.jpg?http://robertsite.org/phpmailer/examples/send.php?id=".$rowEmailID."\" style=\"width:0px; min-height: 0px; height:0px;\" alt=\" \">";
$mail = new PHPMailer;
$mail->IsSMTP();
$mail->Host = "mail.robertsite.org";
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = 'rob@robertsite.org';
$mail->Password = 'mypassword';
$mail->Port = 465; //25, 465 or 587
$mail->FromName = 'Robert Test Mail';
$mail->From = $from;
$mail->WordWrap = 50;
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $message;
$mail->addAddress($to);
$mail->send();
}
echo "Email has been sent!";
}
?>
我正在为电子邮件跟踪器执行此操作,我可以看到是否有人阅读了我的电子邮件。我尝试使用没有blank.jpg,它将显示空图像,所以我必须使用blank.jpg显示为无法看到的空白图像。
当我查看blank.jpg图片时,你知道如何运行带有ID的send.php脚本吗?
编辑:这是send.php脚本:
<?php
include('config.php');
if($_GET['id'] != ''){
$id = $_GET['id'];
$readDateTime = date("Y-m-d h:i:s");
mysql_query("update tracker set isRead='1', readDateTime='$readDateTime' where id='$id'");
}
if (!empty($_POST['message']))
{
$emails = explode("\n", $_POST['message']); // explode textarea on a line break into an array
$email_str = implode(", ", $emails); // take each of the emails and implode together with the ,
echo '<script> closePopUp(); </script>'; //call javascript function
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Send Email</title>
<link type="text/css" rel="stylesheet" href="style.css" />
<script src="jquery-1.12.0.js"></script>
<script>
$(document).ready(function(){
$('#popup').click(function(event) {
event.preventDefault();
var popup = window.open("add_address.php", "_blank", "toolbar=yes, scrollbars=yes, resizable=yes, top=100, left=500, width=400, height=400");
if (popup != null && !popup.closed) {
var element = popup.document.getElementById("thePopupField");
var text = $('#theField').val();
if(text != ''){
var count = (text.match(/,/g) || []).length;
popup.my_count = count+1;
popup.my_special_setting = text.replace(/,/g, '\n');
}
}
});
});
</script>
</head>
<body>
<!---->
<form action="pr_send.php" method="POST" id="theForm">
<table>
<!-- <tr>
<td>From:</td>
<td><input type="text" name="from"></td>
</tr> -->
<tr>
<td><input type="button" name="to" value="" style="height:24px; width:24px; background:url('addressbook.png'); border:none;" id="popup" > To:</td> <!--onClick="Popup()"-->
<td><input type="text" id="theField" name="to" value="<?php if (!empty($email_str)) { echo $email_str; } ?>" style="height:15px; width:650px"> (<span id="noOfEmails">0</span>)</td>
</tr>
<tr>
<td>Subject:</td>
<td><input type="text" name="subject" style="height:15px; width:650px"></td>
</tr>
<tr>
<td>Message:</td>
<td><textarea name="message" cols="90" rows="20"></textarea></td>
</tr>
<tr>
<td colspan="2" align="left">
<input type="submit" name="send" value="" style="height:35px; width:100px; background:url('send.png'); border:none">
</td>
</tr>
</table>
</form>
</body>
<!--<script type="text/javascript">
var popup = null;
function Popup()
{
window.open("add_address.php", "_blank", "toolbar=yes, scrollbars=yes, resizable=yes, top=100, left=500, width=400, height=400");
}
function closePopUp()
{
if (popup)
{
popup.close();
}
}
</script>-->
</html>
答案 0 :(得分:0)
相反
$message .= "<img src=\"http://robertsite.org/phpmailer/examples/blank.jpg?http://robertsite.org/phpmailer/examples/send.php?id=".$rowEmailID."\" style=\"width:0px; min-height: 0px; height:0px;\" alt=\" \">";
你必须使用
$message .= "<img src=\"http://robertsite.org/phpmailer/examples/send.php?id=".$rowEmailID."&img=".urlencode('http://robertsite.org/phpmailer/examples/blank.jpg')."\" style=\"width:0px; min-height: 0px; height:0px;\" alt=\" \">";
在send.php脚本中添加几个字符串
if($_GET['id'] != ''){
$id = (int)$_GET['id'];
$readDateTime = date("Y-m-d h:i:s");
mysql_query("update tracker set isRead='1', readDateTime='$readDateTime' where id='$id'");
if(!empty($_GET['img'])) {
header('location: '.$_GET['img']);
exit;
}
}