如果用户被阻止php包含页面,否则包括其他?

时间:2013-01-31 17:52:42

标签: php mysql

有人可以帮助我,我正在尝试合并这段代码:

<?php
$blocked_users = blocked_users();
while ($block = mysql_fetch_array($blocked_users)) {
if ($block['blocked'] == '1')  {
include("includes/mod_profile/mod_blocked.php");
}
}
?>

将这段代码作为else语句:

$profile_info_set = get_profile_info();
while ($profile = mysql_fetch_array($profile_info_set)) 


        if (isset ($profile_id))
        if ($user['account_status'] == "Active")
        if ($user['account_type'] == "Escort") {
        include("includes/mod_profile/mod_profile.php");

        }

我的数据库中有一个表,用户阻止状态从0到1.如果用户阻止某人并且该用户尝试访问他们的个人资料,那么我正在尝试创建它以便用户转到另一个页面说被封锁了。我是通过<?php include(.. ?>

这样做的

目前我刚试过把它放在页面顶部:

<?php
$blocked_users = blocked_users();
while ($block = mysql_fetch_array($blocked_users)) {
if ($block['blocked'] == '1')  {
include("includes/mod_profile/mod_blocked.php");



                }
}
?>

虽然它正在工作并且包含页面mod_blocked.php,但它也会调出mod_profile.php,这是默认的配置文件页面并重叠。所以基本上如果用户没有阻止他们应该去mod_profile.php,如果用户阻止他们去mod_blocked.php。

有人可以告诉我哪里出错了以及如何实现这个目标?

以下是整个代码页:

<?php
        $page_title = "Profile";
        include('includes/headerframe.php');


    // GET PROFILE ID FROM URL
    if (isset ($_GET['id'])) {
        $profile_id = $_GET['id'];
    }
    ?>
    <?php
    $blocked_users = blocked_users();
    while ($block = mysql_fetch_array($blocked_users)) {
    if ($block['blocked'] == '1')  {
    include("includes/mod_profile/mod_blocked.php");



                    }
    }
    ?>


    <?php
    $user_info_set = get_user_info();
    if (!$user = mysql_fetch_array($user_info_set)) {
        include ('includes/mod_profile/mod_noprofile.php');

    }

        else if (!isset($profile_id)) {
                        include("includes/mod_profile/mod_noprofile.php");
                    }

    $profile_info_set = get_profile_info();
    while ($profile = mysql_fetch_array($profile_info_set)) 


        if (isset ($profile_id))
        if ($user['account_status'] == "Active")
        if ($user['account_type'] == "Escort") {
                        include("includes/mod_profile/mod_profile.php");



                    }

                    else if ($block['blocked'] == '1')  {
                        include("includes/mod_profile/mod_noprofile.php");
                    }





                    $profile_info3_set = get_profile_info3();
    while ($profile = mysql_fetch_array($profile_info3_set)) 

        if (isset ($profile_id))
        if ($user['account_status'] == "Active")
        if ($user['account_type'] == "Client") {
                        include("includes/mod_profile/mod_account.php");
                    } 



    ?>

2 个答案:

答案 0 :(得分:0)

在这里结合选择。

像这样添加breakdie()

<?php
$blocked_users = blocked_users();
while ($block = mysql_fetch_array($blocked_users)) {
if ($block['blocked'] == '1')  {
include("includes/mod_profile/mod_blocked.php");
break;
}
}
?>

或者,将其包围在else

<?php
$page_title = "Profile";
include ('includes/headerframe.php');

// GET PROFILE ID FROM URL
if (isset($_GET['id'])) {
    $profile_id = $_GET['id'];
    die();
}

$blocked_users = blocked_users();
while ($block = mysql_fetch_array($blocked_users)) {
    if ($block['blocked'] == '1') {
        include ("includes/mod_profile/mod_blocked.php");
    } else {
        $user_info_set = get_user_info();
        if (!$user = mysql_fetch_array($user_info_set)) {
            include ('includes/mod_profile/mod_noprofile.php');
        } else if (!isset($profile_id)) {
            include ("includes/mod_profile/mod_noprofile.php");
        }

        $profile_info_set = get_profile_info();
        while ($profile = mysql_fetch_array($profile_info_set))

            if (isset($profile_id))
                if ($user['account_status'] == "Active")
                    if ($user['account_type'] == "Escort") {
                        include ("includes/mod_profile/mod_profile.php");
                    } else if ($block['blocked'] == '1') {
                        include ("includes/mod_profile/mod_noprofile.php");
                    }

        $profile_info3_set = get_profile_info3();
        while ($profile = mysql_fetch_array($profile_info3_set))

            if (isset($profile_id))
                if ($user['account_status'] == "Active")
                    if ($user['account_type'] == "Client") {
                        include ("includes/mod_profile/mod_account.php");
                    }
    }
}
?>

答案 1 :(得分:0)

我不确定我是否完全理解你的目标,但当我的问题正确时,你可以通过以下方式实现:

$page_title = "Profile";
include('includes/headerframe.php');

// stores the correct include file...
$toInclude = false;


// GET PROFILE ID FROM URL
if (isset ($_GET['id'])) {
    $profile_id = $_GET['id'];
}

// look up for blocked user..
$blocked_users = blocked_users();
while ($block = mysql_fetch_array($blocked_users)) {
    if ($block['blocked'] == '1')  {
        // don't do the include inside the loop
        // we simply set the $toInclude
        $toInclude = "includes/mod_profile/mod_blocked.php";
        break;
    }
}
$user_info_set = get_user_info();
// in case no include is set, and there is no profile...
if ( !$toInclude  && (!$user = mysql_fetch_array($user_info_set) || 
     !isset($profile_id)) ) {
    // we set the $toInclude now
    $toInclude = 'includes/mod_profile/mod_noprofile.php';
}


if($toInclude) {
    // either blocked or no-profile
    include($toInclude);
} else {
    // user is not blocked, and you have a profile
    // proceed with your code for normal user handling here
}