0

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

1 回答 1

0

从 PDF 中获取用户信息并不是一件简单的事情。如果您可以控制 .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. 减去原来的大盐数并使用uid。

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

于 2013-06-22T22:18:48.070 回答