[英]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.