1

我什至不确定是不是我需要的cookies,也许有更好的方法。

我目前有一个包含下载链接的页面。要访问此页面,用户必须提交他们的电子邮件地址。我正在使用插件 Contact Form 7 来输入电子邮件。然后我计划将其重定向到页面。该插件允许我将 ID 添加到提交按钮。

我应该在这里使用 JavaScript 设置 cookie 吗?我无法将 JavaScript 放入表单中,但我可以在我自己的页面模板上拥有该表单。

这是输出的html,我不愿意去尝试将其更改为插件..

<form action="/downloads/#wpcf7-f127-p124-o1" method="post" class="wpcf7-form" novalidate="novalidate">

<div style="display: none;">

<input type="hidden" name="_wpcf7" value="127" />
<input type="hidden" name="_wpcf7_version" value="3.4" />
<input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f127-p124-o1" />
<input type="hidden" name="_wpnonce" value="211b6bff7f" />

</div>

<p>Your Name (required)<br />

<span class="wpcf7-form-control-wrap your-name"><input type="text" name="your-name" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" /></span> </p>

<p>Your Email (required)<br />

<span class="wpcf7-form-control-wrap your-email"><input type="email" name="your-email" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-email wpcf7-validates-as-required wpcf7-validates-as-email" aria-required="true" /></span> </p>

<p><input type="submit" value="Send" class="wpcf7-form-control wpcf7-submit" /></p>

<div class="wpcf7-response-output wpcf7-display-none"></div>

4

1 回答 1

1

使用$_SESSION变量来确定用户是否设置了电子邮件。Cookies用户可以轻松更改或删除。当然,在这种情况下,您不必担心后者,但您明白了。另一方面,您的应用程序的任何用户都无法编辑SESSION变量。

示例 HTML:

<form method="post">
    <input type="email" placeholder="Enter email here..." name="email" />
</form>

示例 PHP

if(isset($_POST['email'])){
    // Set the session val
    $_SESSION['user_email_set'] = true;
}

// Check if user entered email

if(isset($_SESSION['user_email_set']) && $_SESSION['user_email_set']){
    // Show downloads page
}
于 2013-05-07T14:05:47.200 回答