Jquery语言对我来说有点像法语,所以如果这是我不太聪明的问题之一,请道歉但是请考虑一下:
page1.php中
<form action="page2.php" method="post">
some stuff
</form>
使page2.php
//form values posted 2 form2
<?php
session_start();
//Check if user is logged in
//if user not logged in display modalbox
if(!isset($_SESSION['members']) || !isset($_SESSION['FBID'])){
?>
<script type="text/javascript">
jQuery(document).ready(function() {
$.fancybox(
'<h2>Hi!</h2><p>This is where login form will be</p>',
{
'autoDimensions' : false,
'width' : 350,
'height' : 'auto',
'transitionIn' : 'none',
'transitionOut' : 'none'
}
);
});
</script>
<?php
}//if not logged in
?>
<?php
else{
//Do stuff with logged on user with values posted from page1.php
}
我的问题
无论用户是否登录,都会显示登录模式框。
根据我的逻辑,如果用户登录,则不应显示模态框,代码应转到其他部分
答案 0 :(得分:2)
根据你的回答
没有会员可以通过网站注册会员或通过FB FBID hench登录我检查两者
if(!isset($_SESSION['members']) || !isset($_SESSION['FBID'])){
表示如果其中一个未设置,您将获得登录
你想要
if(!isset($_SESSION['members']) && !isset($_SESSION['FBID'])){
或
if(!(isset($_SESSION['members']) || isset($_SESSION['FBID']))){
如果您没有通过A登录或未通过B登录,您正在进行操作......他们无法以两种方式登录
第一个答案......如果没有通过A登录而未通过B登录
如果没有第二个答案(通过A登录或通过B登录)
布尔逻辑,使用&#34; not&#34;可以绊倒你
答案 1 :(得分:2)
尝试更改此行
if(!isset($_SESSION['members']) || !isset($_SESSION['FBID'])){
到
if(!isset($_SESSION['members']) && !isset($_SESSION['FBID'])){
原因是您目前正在检查是否未设置任何一个会话变量...这意味着,如果一个是,而另一个不是,那么它将返回false。<\ n / p>
您想知道两者是否未设置 - 因此您需要使用&&
。
答案 2 :(得分:2)
if(!isset($_SESSION['members']) || !isset($_SESSION['FBID'])){
希望成为
if(!isset($_SESSION['members']) && !isset($_SESSION['FBID'])){
因此模式仅显示用户是否未通过任何一种方法登录
答案 3 :(得分:0)
这对jQuery没问题。你忘了开始你的会议。
在session_start()
。
Page2.php