2016-10-23 2 views
0

У меня возник вопрос о том, почему моя форма не отправляет данные на мой PHP-скрипт. Чтобы отказаться от подписки на список рассылки электронной почты, который я настроил, я отправляю пользователя, который отменил подписку на электронное письмо с формой, в которой размещены некоторые данные.Форма в HTML-формате Электронная почта Не публикуется

<html> 
<body> 
<div> 
    <p>This is a confirmation message to confirm that you unsubscribed from the sci-eng email list.</p> 
    <p>Click on the button below to confirm your unsubscription.</p> 
    <form id="unsubform"> 
     <div class="form-in"> 
      <input type="hidden" id="emailkey" name="emailkey" value="key"> 
      <input type="hidden" id="email" name="email" value="[email protected]"> 
      <button class="btn" id="submit" type="submit" formaction="http://redlinks.ca/sci-eng/db/unsubscribe.php" formmethod="post">Unsubscribe</button> 
     </div> 
    </form> 
    </div> 
    </body> 
</html> 

Когда на странице, что форма POST ред, я получаю ошибку «нет данных», который я поставил, если нет данных в переменной $_POST["email"]. Я пробовал использовать var_dump($_POST), но это просто возвращается с array(0) { }, и это не работает для меня.

То, что меня смущает больше всего, это когда я копирую точный html из письма и вставляю его на пустую страницу, когда я нажимаю кнопку отправки/отмены подписки, он публикует данные просто отлично, а в другом месте на моем сайте я имеют тот же самый скрипт, единственное отличие в том, что формация без него/db. Страница, на которую отправляется, ведет себя так, как должна, показывая массив данных propper вместо ничего. Это единственное различие.

Если это имеет значение, я использую Thunderbird для Windows 10 в качестве моего почтового клиента.

Тот, кто думает, что они могут помочь буду оценен :)

метода

ответ

1

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

Лучшей практикой для включения отмены подписки является использование ссылки. Вы можете передать любой параметр requierd для отмены подписки на ссылку, например http://www.example.com/[email protected].

0

по умолчанию GET, не POST; вам нужно указать

<form method="post" ...> 

Может ссылку на эту форму размещенную на сайте может быть лучшей идеей; некоторые почтовые клиенты не поддерживают показ писем; и, возможно, больше клиентов могут отказаться отправлять или публиковать их из-за проблем с безопасностью (например, веб-интерфейсы).

+0

На кнопке у меня уже есть атрибут ute, который является formaction = "post", поэтому это, вероятно, не проблема. – RedXTech

+0

formaction указывает действие (= URL) формы, а не метод. – phi1010

+0

К сожалению, я имел в виду метод. Это также не работает:/ – RedXTech

0

TRY С:

<html> 
<body> 
<div> 
    <p>This is a confirmation message to confirm that you unsubscribed from the sci-eng email list.</p> 
    <p>Click on the button below to confirm your unsubscription.</p> 
    <form id="unsubform" action="http://redlinks.ca/sci-eng/db/unsubscribe.php" method="post"> 
     <div class="form-in"> 
      <input type="hidden" id="emailkey" name="emailkey" value="key"> 
      <input type="hidden" id="email" name="email" value="[email protected]"> 
      <button class="btn" id="submit" type="submit">Unsubscribe</button> 
     </div> 
    </form> 
    </div> 
    </body> 
</html> 
+0

Просто попробовал, не работает к сожалению :( – RedXTech

0

ЕСЛИ вы не будете использовать метод POST, чтобы ваши значения форм могли быть отправлены на phpScript. Попробуйте следующий код.

<html> 
<body> 
<div> 
<p>This is a confirmation message to confirm that you unsubscribed 
    from the sci-eng email list.</p> 
<p>Click on the button below to confirm your unsubscription.</p> 
<form id="unsubform" method="POST" action="http://redlinks.ca/sci-eng/db/unsubscribe.php"> 
    <div class="form-in"> 
    <input type="hidden" id="emailkey" name="emailkey" value="key"> 
    <input type="hidden" id="email" name="email" value="[email protected]">   
    <button class="btn" id="submit" type="submit" >Unsubscribe</button> 
    </div> 
</form> 
</div> 
</body> 

0

Не отправлять форму для подтверждения.Выполните следующие действия:

  1. Сформировать уникальный зашифрованный ключ для тех, кто по электронной почте, которые Монолитная и хранить в базе данных

  2. ссылку Отправить подтверждение на конкретный адрес электронной почты пользователя с ключом, как (http://domainurl/confirm.php?key=1533c67e5e70ae7439a9aa993d6a3393)

  3. Теперь проверить ключ для соответствующей электронной почты и отписаться, а также удалить ключ из базы данных

Смежные вопросы