繁体   English   中英

Bigcommerce-如果未登录,如何将用户从首页重定向到登录页面

[英]Bigcommerce - How to redirect users to login page from homepage if not logged in

如果客户未登录,我如何让他们看到登录页面而不是主页? 我尝试使用以下代码,但是即使客户已登录,它也会重定向到登录页面。

<script language="javascript" type="text/javascript">//<![CDATA[
if (window.location.href.toString() == "http://www.mywebsite.com/")
{
    window.location.assign("http://www.mywebsite.com/login.php");
}
//]]></script>

您可以通过查看来自%%GLOBAL_LoginOrLogoutText%%代码的欢迎消息来检测用户是否已登录。

因此,如果未显示欢迎文本,请将其重定向到login.php页面。

还要注意,您需要警告一下,如果它们已经在该页面上,则无需再次(一次又一次地)重定向它们。

前几天我建立了这个仓库,可以检查是否从商店的任何页面登录了客户。

    //this will allow you to mention the cookie by index
    function getCookie(name) {
      var value = "; " + document.cookie;
      var parts = value.split("; " + name + "=");
      if (parts.length == 2) return parts.pop().split(";").shift();
    }
    //set variable that will check if login email exists
    var loggedIn = getCookie('LoginEmail');

    //logic that will output different content based on the loggedIn Status
    if(typeof loggedIn === 'undefined'){
        console.log("They are not logged in!");
        var notLoggedIn = '<ul><li><a href="/membership/">Become a Member</a></li></ul><p>Already a member? <a href="/login.php">Sign In >></a></p>';
        $(notLoggedIn).appendTo(".LandingInnerContent");
    }
    else{
        console.log("They are logged in! ");
        var isLoggedIn = '<ul><li><a href="/membership/">Shop Now</a></li></ul><p>Access <a href="/account.php">Account Page >></a></p>';
        $(isLoggedIn).appendTo(".LandingInnerContent");
    }

链接到回购

这将允许您基于cookie进行检查,并且可以显示其他内容或重定向到其他页面。

不幸的是,'%% GLOBAL_LoginOrLogoutText %%'变量通常不起作用,因此我想出了一个JavaScript解决方案。

首先,我检查%% GLOBAL_CurrentCustomerFirstName %%的值,然后使用jQuery填写登录名或注册名或注销“ li”。

<li class="login-register">
     <script type="text/javascript">
           var GlobalFname="%%GLOBAL_CurrentCustomerFirstName%%";

           if (GlobalFname !="" && GlobalFname!="Guest"){
               $('li.login-register').html('<a href="%%GLOBAL_ShopPath%%/login.php?action=logout">LOG OUT</a>');
           } else {
               $('li.login-register').html('<a href="%%GLOBAL_ShopPath%%/login.php">LOGIN</a> OR <a href="%%GLOBAL_ShopPath%%/login.php?action=create_account">REGISTER</a>');

          };
     </script>
</li>

您可以像这样简单地查找“签出”文本的存在。 对于店面-网页中的任何网页,此代码将显示在“网页详细信息”的“页面内容”上。 您必须使用编辑器上的HTML按钮并将其粘贴为原始HTML。

<script type="text/javascript">
$(document).ready(function(){

if( $(".header").text().indexOf('Sign out') >= 0){
  //alert("Customer is logged in");
  $("#div_logged_in").show();
  $("#div_not_logged_in").hide();
} else {
  //alert("Customer is NOT logged in");
  $("#div_logged_in").hide();
  $("#div_not_logged_in").show();
}

});
</script>

<div id="div_logged_in">
    <p>The customer IS logged in.</p>
</div>
<div id="div_not_logged_in">
    <p>The customer IS NOT logged in</p>
</div>

如果您希望在php中执行此操作,并且正在使用会话存储登录信息,则可以在首页顶部执行以下简单操作:

<?php
session_start();
//check if the user is already logged in.
if (!isset($_SESSION['user'])) {
    header('Location: login.php');
}

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM