我有一个电子邮件列表和一个与每封电子邮件关联的个性化PDF(一对一的关系)。我还有一台托管PDF的服务器。我想使用指向我服务器上文件的链接向每个人发送他们的个性化PDF。当我发送链接的人时,我想跟踪他们是否已下载文件。
我建议使用此download.php script(完整代码),因为我可以将我的链接包含在http://yourdomain.com/download.php?email={!email}
中,以便在单击它们时,脚本将写入MySQL数据库以跟踪点击的电子邮件地址链接然后提供文件。
download.php脚本
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db('dbname');
$sql = "INSERT INTO downloads (email) VALUES ('" . mysql_real_escape_string($_GET['email']) . "')";
mysql_query($sql);
header("Content-type: application/pdf");
readfile("/path/to/thefile.pdf");
?>
我的问题是代码的最后一行readfile("/path/to/thefile.pdf");
看起来好像需要编写它包含单个文件的路径,这对我的目的不起作用。我是否正确地阅读了代码,如果是这样,有没有办法根据我的目的修改它?
答案 0 :(得分:0)
我希望我能正确理解你的问题。您必须在服务器上粘贴PDF的路径。例如http://www.youdomain.com/pdfs/october.pdf
避免使用mysql函数并始终使用PDO。
这是你在PDO中的表现方式
$hostname = 'localhost';
$username = 'username';
$password = 'password';
$con = new PDO("mysql:host=$hostname;dbname=dbname", $username, $password);
$user_mail = $_GET['email'];
$sql = "INSERT INTO downloads (email) VALUES (:emailVal)";
$statement = $con_db->prepare($sql);
$statement->execute(array(':emailVal'=> $user_mail));
header("Content-type: application/pdf");
readfile("/path/to/thefile.pdf"); //paste to your PDF on your server