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

时间:2013-11-06 02:45:00

标签: javascript php jquery bigcommerce

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

<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>

5 个答案:

答案 0 :(得分:1)

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

因此,如果没有显示该欢迎文本,请将它们重定向到login.php页面。

另请注意,您需要一个警告,如果他们已经在该页面,您不需要再次重定向(一次又一次)。

答案 1 :(得分:0)

我前几天建了这个,我能够检查客户是否从商店的任何页面登录。

    //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");
    }

link to repo

这将允许您根据cookie进行检查,您可以显示不同的内容或重定向到其他页面。

答案 2 :(得分:0)

不幸的是,&#39; %% GLOBAL_LoginOrLogoutText %%&#39;变量通常不起作用,所以我提出了一个JavaScript解决方案。

首先,我检查%% GLOBAL_CurrentCustomerFirstName %%的值,然后填写登录或注册,或注销&#39; li&#39;相应地使用jQuery。

<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>

答案 3 :(得分:0)

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

 <tbody>
    <tr ng-repeat="flat in someObj.flatsArray | filter:searchFlat">
       <td>{{ flat.occupant_name || flat.owner_name}}</td>
       <td>{{flat.flat_no}}</td>
       <td class="text-center">
     <input class="" name="{{flat.flat_no}}" ng-attr-title="{{(selectedUserMapIdArray.indexOf(flat.user_map_id) >= 0 && selectedFlatNumArray.indexOf(flat.flat_id) < 0) ? 'This user has been already invited' : ''}}"
         ng-disabled="selectedUserMapIdArray.indexOf(flat.user_map_id) >= 0 && selectedFlatNumArray.indexOf(flat.flat_id) < 0 "
     type="checkbox" ng-change="checkChanged(flat.isChecked, flat)" ng-model="flat.isChecked" />
              </td>
</tr>
</tbody>

答案 4 :(得分:-1)

如果您希望在php中执行此操作,并且您正在使用会话来存储登录信息,那么您可以在主页顶部执行类似这样的操作:

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

希望有所帮助。