如果客户未登录,我如何让客户看到登录页面而不是主页?我尝试使用以下代码,但即使客户已登录,它也会重定向到登录页面。
<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>
答案 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");
}
这将允许您根据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');
}
希望有所帮助。