PDF / DOCX数据提取并创建具有唯一ID的链接

时间:2013-06-22 21:42:55

标签: php ms-word extraction

我想在我的链接末尾或html代码中的某处添加唯一ID,该ID放在我的发票中。该链接将人们带到他们接受交易条款的页面,然后电子邮件将作为确认发送。我可以在Word中编辑我的发票,并以docx或PDF格式发送给我的客户。有没有办法从这些文件中提取工作ID或他们的名字,并将其添加到他们点击的链接,然后使用确认电子邮件转发该信息,以便我可以跟踪谁接受了这些条款?

以下是我收到电子邮件确认的代码:

<?php
session_start();
if(!isset($_SESSION))
    session_start();

if(isset($_POST['Submit']) && $_POST['termsoftrade'] == 'termsoftrade') {
    $youremail = 'email@mail.com';
    $from = 'Invoice';
    $subject = "Terms accepted";
    $message = $_POST['message']; 
    $to = $youremail;
    $headers = 'From: ' . $from . "\r\n" . 'X-Mailer: PHP/' . phpversion(); 
    $body = 'xxx has accepted the terms of trade.'; 
}

$check = $_POST['termsoftrade']; 
if ($check==false) {
    include "errormsg.php";
} else {
    include "thanks.php";
    mail($to, $subject, $body, $headers);
}
?>

1 个答案:

答案 0 :(得分:0)

从PDF获取用户inf并不是一件简单的事情。如果您可以控制.pdf的生成,那么使用GET最简单。

创建返回页面的链接,包括必要的数据。大多数PDF查看器都允许遵循链接,但最好完整地显示链接,以便用户可以根据需要剪切并粘贴它。

link= mypage.php?uid=fsdhgfwyrt&checksum=kfgsdfgA

uid和校验和由一个简单的算法创建:

  1. 向你的uid添加一个大号。有很多数字的东西,例如:36183645290。
  2. 获取总和的base_64编码并将其作为uid发送。
  3. 在您的uid字符串中添加40个字母。拿这个的SHA1哈希和base_64编码吧。
  4. 将前8个字母作为校验和发送。
  5. 收到数据后,执行相反的操作:

    1. base_64解码您的校验和。
    2. 将你的40个字母添加到uid(与以前相同!),取SHA1哈希值。如果第8个字母匹配,那么你的uid就没有摆弄过。
    3. base_64解码uid
    4. 减去原来的大盐编号并使用uid。
    5. 然后使用uid从数据库中提取用户信息以预填充表单。