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


PDF/DOCX data extract and create a link with unique ID

我想在我的链接末尾或html代码中的某个位置添加唯一ID,该代码位于我的发票中。该链接将人们带到一个页面,在那里他们接受贸易条款,然后发送电子邮件作为确认。我可以在Word中编辑我的发票,并将其以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);
}
?>

从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个字母作为校验和

收到数据后,执行反向操作:

  1. base_64解码您的校验和
  2. 将您的40个字母添加到uid中(与以前相同!),使用SHA1哈希。如果前8个字母匹配,那么你的uid没有被篡改
  3. base_64解码uid
  4. 减去原来的大salt数,然后使用uid

然后使用uid从数据库中提取用户信息以预填充表单。