如果条件,Jquery不会跳过php

时间:2015-07-17 14:04:45

标签: javascript php jquery fancybox fancybox-2

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
    }

我的问题

无论用户是否登录,都会显示登录模式框。

根据我的逻辑,如果用户登录,则不应显示模态框,代码应转到其他部分

4 个答案:

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