Sbh*_*bry 5 drupal drupal-views drupal-6
我已经使用Finder模块和Views模块创建了一个客户端网站的搜索.问题是我的客户希望每次用户选择并搜索特定区域中的商家时,应将其作为会话或cookie存储在访问者的计算机上.这将确保重复访问者看到他之前所做的相同搜索.请查看网站:http://naplesres.designbracket.com/
此外,我还想知道如果基于之前的搜索,我可以以这样的方式配置视图:仅在其本地区域的业务上传递在网站上使用的其余视图中,即在Auto,Beauty等页面上.
任何形式的文件链接帮助,如何去做的指针将深表感谢.
谢谢
Joh*_*ala 10
如果您需要跟踪某些内容并且需要与未登录的用户合作,您要做的就是使用cookie来跟踪它.您无法使用会话为Drupal中的匿名访问者存储内容,因为它与用户对象相关联.
这里有一个描述 - http://www.w3schools.com/PHP/php_cookies.asp - 但是让我进入它.
你开始使用setcookie(name,value,expire) - 我们假设我们想要调用这个值business_search,我们将使用'80204'的测试值,这是一个邮政编码 - 这个效果一样好如果你使用'丹佛,CO'.我们不希望它过期六个月,所以我们想要打电话:
setcookie('business_search', '80204', time() + 3600 * 24 * 180);
Run Code Online (Sandbox Code Playgroud)
那段时间大约有六个月的时间被添加到现在的时间.
之后获取cookie会更容易 - 只需使用$ _COOKIE ['business_search'],它就会返回值.所以,我们可以使用这段代码:
<?php
function saveSerch($search_term) {
setcookie('business_search', $search_term, time() + 3600 * 24 * 180);
}
function readSearch() {
return $_COOKIE['business_search'];
}
?>
Run Code Online (Sandbox Code Playgroud)
当然可以,但这不是正常的 Drupal 方式。您通常所做的是将信息存储在会话中(使用sess_write/ sess_read),或者如果用户已登录,则存储在用户帐户信息中。
将信息保存在 cookie 中意味着它可以在客户端被篡改,并且您需要使您的代码更加万无一失,就像任何用户生成的数据一样。
如果将其保留在会话中,则只要会话存在,它就会保留,但此后就会消失。对于匿名用户来说,确实没有更好的办法了。OTOH,对于登录用户来说,存储信息意味着$user->data只要您不删除它们,它们就可用,因为它们将存储在表中users。
还要记住,从匿名切换到登录时,drupal会话cookie会重新生成,但保留会话内容,因此您可以将数据放入匿名会话中,并在用户登录时仍然拥有它,然后将它们存储在他的帐户数据中。查看includes/session.inc有关其工作原理的详细信息。
| 归档时间: |
|
| 查看次数: |
21776 次 |
| 最近记录: |