Set Session в PHP электронной почте не работает

0

Лол, похоже, этот вопрос никогда не задавался раньше в 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>

Некоторые тесты в index.page

                <?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>



Если мы просто создали сеанс в письме, мы можем вызвать его за один раз на всех страницах для всех ссылок на веб-страницу. Вот почему я хочу сделать это с СЕССИЕЙ или что-то в этом роде.


Теги:
email
session

2 ответа

1

Сеансы используются для отслеживания определенного пользователя, посещающего веб-сайт, в течение относительно небольшого периода времени. Они не делают то, что вы пытаетесь сделать.

Взгляните на ссылку в электронном письме:

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"]

И вы можете использовать это значение для проверки базы данных для любой из данных, которые вы отслеживаете. Это скажет вам, какой реферал привел к этому конкретному новому пользователю сайт.

Вы можете генерировать несколько токенов для нескольких целей по тому, как много измерений вы хотите отслеживать для рефералов.

  • 0
    Спасибо за ответ. Это очень приятно. Однако, если я установлю токен, вы увидите, что это только для одной ссылки. Что я пытаюсь сделать с новостным письмом, так это представить наши продукты, где у каждого продукта будет своя ссылка.
  • 0
    @klaudia: вы можете добавить токен на несколько ссылок. Переменные могут быть использованы повторно. Как только пользователь заходит на сайт, вы можете постоянно отслеживать в базе данных реферала, который их изначально туда привел. Каждый раз, когда вы генерируете какой-либо вывод для этого пользователя в любой момент в будущем, вы можете условно изменить этот вывод на основе данных, которые вы отслеживали для этого пользователя, так же, как и в любом веб-приложении, управляемом данными. Ничто не мешает вам делать то, что вы пытаетесь сделать.
0

у вас возникают некоторые заблуждения.

сеанс не будет передаваться по электронной почте. самый простой способ служить цели - это... да, токен.

шаги:

  • перед тем как 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
    
    • после этого отправьте почту

    • когда кто-то приходит на ваш сайт, следуя этому токену, вы можете проверить его в соответствии с приведенной выше таблицей и узнать, откуда он пришел.

  • 0
    Итак, можете ли вы помочь мне, как скрыть токен в URL браузера, но все еще в состоянии получить его?
  • 0
    вам не нужно прятать токен.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню