2

我有,比如说 5 个电子邮件线程(a、b、c、d、e),每封电子邮件都是不同的。每封电子邮件都包含一个指向登录页面的链接。

然后我有一个 php 登录页面线框,它从 SQL 数据库(当前是 mysql,但可能会使用 PDO 进行更改)来填充不同的内容,具体取决于查看器来自哪个电子邮件线程。所以 1 个 php 登陆页面,但数据库中有 5 行来填充该登陆页面的 5 个不同版本,具体取决于哪个电子邮件查看器链接。

我的着陆页中的当前查询如下所示:

<?php
       $result = "SELECT body_copy FROM low_engagement WHERE thread_segment = 'a3'";
       $stmt = $connection->prepare($result);
       $stmt->execute();
       $body_copy = "";
       while($row = $stmt->fetch()) {
       $bodyCopy = $row['body_copy'];
       }
?>

如果我在“a1”、“a2”、“a3”、“a4”和“a5”的值之间手动更改名为thread_segment的WHERE子句,我的登录页面会根据 5 个线程中的每一个更新相应的内容。

我的问题是,是否有可能在 HTML 电子邮件中标记 href,因此当该链接链接到登录页面时,它可能会如何与登录页面进行交互,告诉它它来自 5 个电子邮件/电子邮件链接中的哪一个并动态更改thread_segment 值合适吗?

我对 PHP/PDO 相当陌生,所以我愿意接受建议和/或方向。我目前对此事的研究让我仍在研究可能通过几种方式之一传递变量,但我发现的大部分内容都是关于表单的。

非常感谢任何见解!

4

2 回答 2

4

是的,只需在电子邮件的 href 中传递 thread_segment,例如: some.url.com/page.php?s=a3 并将您的 pdo 更改为:

<?php
   $result = "SELECT body_copy FROM low_engagement WHERE thread_segment = :s";
   $stmt = $connection->prepare($result);
   $stmt->bind_param(':s', $_GET['s']);
   $stmt->execute();
   $body_copy = "";
   while($row = $stmt->fetch()) {
       $bodyCopy = $row['body_copy'];
   }
?>
于 2013-03-26T18:20:21.850 回答
1

您可以使用 HTTP GET 变量通过 URL 传递信息。

例如链接:http: //yourlink.org ?segment=a1

与value?segment=a1关联,您可以通过分隔添加更多参数,如下所示:segmenta1&?segment=a1&language=en

我在这里对变量名称非常明确,通常您会尝试使 url 尽可能短。

然后,您可以使用以下方法在 PHP 中访问此变量$_GET

$_GET["segment"]

查看 PHP 文档以获取更多信息 http://www.php.net/manual/en/reserved.variables.get.php

于 2013-03-26T18:28:46.023 回答