0

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

<?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");
                    } 



    ?>
4

2 回答 2

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");
                    }
    }
}
?>
于 2013-01-31T18:19:34.613 回答
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
}
于 2013-01-31T18:35:08.040 回答