Лол, похоже, этот вопрос никогда не задавался раньше в google.
Итак, я пытаюсь отправить электронную почту через php-форму. Сценарий этого зарегистрированного участника пригласит своего друга на нашу страницу, набрав столько же, сколько адрес электронной почты в текстовую область. Когда они отправят форму, форма отправит электронное письмо на весь адрес электронной почты, который они вводят в текстовой области.
Это письмо на самом деле является новостным письмом. Если в электронном письме будут представлены некоторые продукты, которые будут отображаться в адресованном письме.
Что я хочу делать с $ _SESSION в письме: когда люди, у которых есть адрес электронной почты, нажмите один из продуктов в новостном письме и зайдите на страницу, страница получит от кого он получил ссылку на страницу.
[РЕДАКТИРОВАТЬ]
Я не хочу этого делать с такой строкой: index.php?email=$email&username=$username
так как это может быть установлено только для одной ссылки, а не для глобальной ссылки, и этим могут также манипулировать новые люди.
Я имею в виду глобальную связь, поскольку, как я уже упоминал выше, будет много продуктов, которые я буду представлять в информационном бюллетене, например.. /product-a.php,../product-b.php,../product-c.php,../product-d.php и т.д. И это заставит нас создавать множество разных сеансов на всех страницах, потому что все пользователи, которые нажали один из продуктов, сначала исследуют веб-сайт, прежде чем решают купить продукт или зарегистрироваться на веб-сайте.
Итак, вот мой код для установки сеанса:
<?php
$kemail=$_POST['to'];
$to = "$kemail";
$referal_identity = "dsfsdf";
$referal_address = "[email protected]";
$_SESSION['referal_identity']=$referal_identity;
$_SESSION['referal_address']=$referal_address;
$subject = 'Your Friend is good';
// message
$message = '<html>
<head>
<title>From our company</title>
</head>
<body>
<p>Your friend invite you. Click this <a href="index"> link </a> </p>
</body>
</html>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Klaudia <[email protected]>' . "\r\n";
mail($to, $subject, $message, $headers);
?>
<form action="" method="post">
Email: <textarea name="to"></textarea>
<input type="submit" name="submit" value="send">
</form>
<?php
session_start();
$referal_identity=$_SESSION['referal_identity'];
$referal_address=$_SESSION['referal_address'];
?>
<body>
<?php echo $referal_identity ?>
<?php echo $referal_address ?>
<p><a href="test-referal.php">test-referal.php</a></p>
</body>
Если мы просто создали сеанс в письме, мы можем вызвать его за один раз на всех страницах для всех ссылок на веб-страницу. Вот почему я хочу сделать это с СЕССИЕЙ или что-то в этом роде.
Сеансы используются для отслеживания определенного пользователя, посещающего веб-сайт, в течение относительно небольшого периода времени. Они не делают то, что вы пытаетесь сделать.
Взгляните на ссылку в электронном письме:
Click this <a href="index"> link </a>
Эта ссылка - это все, что у вас есть, для передачи данных из этого тела электронной почты на веб-сайт. Таким образом, ссылка должна будет нести какой-то идентификатор.
Когда пользователь создает эти рефералы, генерирует какой-то токен. Любая уникальная строка будет выполнена. Сохраните этот токен в своей базе данных, чтобы идентифицировать информацию об этом рефереле. Это может включать любую информацию, которую вы хотите отслеживать. Затем включите этот токен в электронное письмо:
Click this <a href="http://somewebsite.com/index?referral=' . urlencode($someToken) . '"> link </a>
Таким образом, пользователь нажмет на это:
Click this <a href="http://somewebsite.com/index?referral=abc123"> link </a>
Теперь, когда этот пользователь нажимает на ссылку, чтобы посетить ваш сайт, вы можете получить этот токен:
$_GET["referral"]
И вы можете использовать это значение для проверки базы данных для любой из данных, которые вы отслеживаете. Это скажет вам, какой реферал привел к этому конкретному новому пользователю сайт.
Вы можете генерировать несколько токенов для нескольких целей по тому, как много измерений вы хотите отслеживать для рефералов.
у вас возникают некоторые заблуждения.
сеанс не будет передаваться по электронной почте. самый простой способ служить цели - это... да, токен.
перед тем как mail()
сгенерирует токен. (любая уникальная случайная строка будет делать)
при создании ссылок, например <a href="http://example.com/product1">Product 1</a>
вы добавите токен следующим образом:
<a href="http://example.com/product1?token=$token">Product 1</a>
этот шаг также перед отправкой почты. вам нужно сохранить этот токен от адреса электронной почты где-нибудь. например
ID email token
1 [email protected] abcdefg1
2 [email protected] abcdefg2
после этого отправьте почту
когда кто-то приходит на ваш сайт, следуя этому токену, вы можете проверить его в соответствии с приведенной выше таблицей и узнать, откуда он пришел.