【问题标题】:what is the best way to display website visitors a one time welcome message?向网站访问者显示一次性欢迎信息的最佳方式是什么?
【发布时间】:2012-02-04 19:00:49
【问题描述】:

我有一个网站,我想添加一条欢迎消息,该消息悬停在页面的某个部分,仅在访问者第一次登录时加载,并且不会再次加载(可能使用了 cookie) .并说“在此处调整您的设置..” 我不希望它是一个外部弹出窗口,而是在某个区域的页面上加载的东西,由我定义(PX-pixle 参考)

最好的编码语言是什么?谁有这方面的例子,或者任何基于网站的生成器? 谢谢

【问题讨论】:

  • 你想存储到你的系统还是客户端浏览器中
  • 任何语言都可以做到这一点。它只是一些 HTML 是否包含在页面中。如果您已经有一个登录过程,这意味着您已经在使用服务器端语言。使用你已经使用的。
  • 附加说明:不要为此使用 cookie,因为 cookie 对特定机器上的特定浏览器是紧密的。您希望对给定用户只发生一次:在数据库中为每个用户存储一个标志,指示他是否已经登录。
  • 好的,所以我正在考虑将它添加到数据库中,所以每个用户只会发生一次,我该如何设置?我会使用图像加载还是让javascript等加载/生成它?谢谢大家

标签: java php javascript html css


【解决方案1】:

使用lastlogin 在数据库中再创建一个字段。 创建用户后,将lastlogin 字段设为special

当用户下次从Login Page签名时,将lastlogin字段的值更新为regular

//查询得到lastlogin的值

//将css添加到要悬停的元素

<element class="<?php if($last-login == 'sepcial') { echo 'sepcialcss'; } else {echo 'regularcss'; }">

用 PHP 完成

【讨论】:

  • 登录后必须显示消息,为什么还要使用用户的IP?如果他已经登录,服务器就知道他是谁,并且它的 IP 地址(每次登录时可能不同)无关紧要。
  • 很好!这是一个很好的答案,不要使用 cookie 或会话!
【解决方案2】:

当您添加标签时,php 会这样做,实际上任何语言都可以。

通常你有两种方法可以做到这一点。

  1. 在您的服务器上执行。
  2. 在客户的计算机上执行。

对于第一种方式,您检查 cookie 并生成您想要的页面。
对于第二种方式,您需要将访问者看到的页面安排为java script

推荐方式 1,因为它加载的位数更少。哈哈

更新:

您的服务器支持php 对吗?这个页面,说它index.php,有一个特殊的区域,访问者第一次登录时会有所不同,对吧?

<?php
    if (firstLogin()){
        genSpecial();
    }
    else{
        genRegular();
    }
?>

firstLogin()函数中,您需要读取cookies并确定。
在其他两个函数中,只生成两个不同的部分,即一些 html 源代码。
对于您的问题,如果您需要加载一些图像,请在genSpecial() 中进行。并且如果选择第一种方式,js不用于生成特殊区域,只有在特殊区域需要一些js时才使用。

【讨论】:

  • 好的,那么我将如何在服务器上设置它?我会让它加载图像或从javascript等生成一些东西吗?谢谢
  • 好的,感谢到目前为止所做的一切,真的很有帮助,所以它看起来像这样吗,code 还有我如何在其中添加一个小关闭按钮来关闭消息? code code
  • 我将如何加载 jquaery 对话框?对于这个应用程序
  • @David 将其加载为普通 html,在 genSpecial()
  • 嗨@Topro 感谢您的回复,所以基本上,将所有要加载的内容添加到genspecial()
【解决方案3】:

可以通过javascript。向用户显示设置后,将结果存储在 cookie 中,只要您愿意就可以使用。下次用户登录时,验证是否设置了 cookie,然后继续。

创建 cookie 的示例代码:

function setCookie(c_name,value,exdays)
{
   var exdate=new Date();
   exdate.setDate(exdate.getDate() + exdays);
   var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
   document.cookie=c_name + "=" + c_value;
}

有关如何创建和使用 cookie 的更多详细信息,请参阅 this

【讨论】:

  • 我在想我想设置它以便每个用户只出现一次,而不是一台机器,我将如何在服务器上设置它?
  • 好吧,在这种情况下,将这些变量(用于设置)存储在数据库中是一个不错的方法。如果该值已在数据库中设置,则不显示设置。使用 PHP。最初将变量设置为 null。 if($data['settings']!=null){//do something}
  • 如果 cookie 从浏览器中删除,然后用户使用第一次选项登录会怎样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多