2012-11-01 78 views
0

我试图将一组用户Basic指向一种类型的配置文件页面mod_profile.php,另一组用户upgraded指向不同的配置文件页面mod_account.php。到目前为止,我有这个,但似乎有麻烦。当我打开mod_account.php关于它无法从mod_profile或其他配置文件页面重新声明某些功能时,我收到错误,但我不明白为什么,我只希望为每个用户类型加载一个页面。如果账户类型x包含y?

有人能告诉我我做错了什么吗?

profile.php页:

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

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

    <?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") { 
     include("includes/mod_profile/mod_profile.php"); 
    } 

    $profile_info3_set = get_profile_info3(); 

    while ($profile = mysql_fetch_array($profile_info3_set)) 
     if (isset ($profile_id)) 
     if ($user['account_type'] == "Basic 

    ---------- 

    ") { 
     include("includes/mod_profile/mod_account.php"); 
    } 
    ?> 
    <script type="text/javascript" src="assets/js/jquery.prettyPhoto.js"></script> 
    <?php include('includes/footer.php');?> 

我定义的函数代码:

// profile functions 
     function get_user_info() { 
      global $connection; 
      global $profile_id; 
      $query = "SELECT * 
         FROM ptb_users 
         WHERE id = \"$profile_id\" 
         AND account_status = \"Active\" "; 
      $user_info_set = mysql_query($query, $connection); 
      confirm_query($user_info_set); 
      return $user_info_set; 
     } 

function get_profile_info() { 
      global $connection; 
      global $profile_id; 
      $query = "SELECT * 
         FROM ptb_profiles, ptb_users 
         WHERE ptb_profiles.user_id = \"$profile_id\" 
         AND account_type = \"Basic\" 
         AND ptb_profiles.user_id = ptb_users.id"; 
      $profile_info_set = mysql_query($query, $connection); 
      confirm_query($profile_info_set); 
      return $profile_info_set; 

      } 


      function get_profile_info3() { 
      global $connection; 
      global $profile_id; 
      $query = "SELECT * 
         FROM ptb_profiles, ptb_users 
         WHERE ptb_profiles.user_id = \"$profile_id\" 
         AND account_type = \"Upgraded\" 
         AND ptb_profiles.user_id = ptb_users.id"; 
      $profile_info3_set = mysql_query($query, $connection); 
      confirm_query($profile_info3_set); 
      return $profile_info3_set; 

      } 

回答

0

好了,你的问题是,你在某些时候加载同一个文件并重新定义功能。 PHP提供了一个解决方案,这个:) http://php.net/manual/en/function.include-once.php

include_once "functions.php" 

这意味着,在任何页面的加载,将functions.php中只有当还没有它已经加载。

让我知道这是否解决您的问题。第二块代码是什么文件?