php文件之间的变量

时间:2014-02-10 04:36:46

标签: php mysql variables mysqli database-connection

在任何人指出我的代码在安全性或其他方面存在缺陷之前我知道我是一个非常熟悉的PHP菜鸟并且不介意你提供一些帮助来解决这个问题,而不仅仅是大喊大叫它是非常糟糕的。

我也尝试过这个,它对我不起作用,因为它将它存储到会话中(除非会话比我想象的更安全。我假设用户可以从一个提取数据,对吗?): http://tinyurl.com/myqx3xo

至于我的问题,如何在我的用户功能中访问变量$ connectdb?当我这样做它给我'未定义的变量'错误,并没有检测到它存在任何。在每个页面加载的main\folder\start.php中都需要这两个页面,并且在我试图调用该函数的那些页面上,它给了我一个失败。当我尝试将$ connectdb的varible硬编码到函数中时,代码工作正常,但又有充分的理由不这样做。如果需要,将添加其他详细信息。

未定义的变量:以$ data

开头的行中的main \ folder \ folder1 \ users.php中的connectdb

main \ folder \ folder1 \ users.php功能:

function user_data($id) {
    $data = array();
    $user_id = (int)$id;
    $func_num_args = func_num_args();
    $func_get_args = func_get_args();
    if ($func_num_args > 1) {
        unset($func_get_args[0]);
        $fields = '' . implode(', ', $func_get_args) . '';
        $data = mysqli_fetch_assoc(mysqli_query($connectdb,"SELECT $fields FROM users WHERE id = $id"));
        return $data;
    }
}

主要\文件夹\文件夹2 \ connect.php:

<?php
$connect_fail = 'Example connection failure.';

$dbhost = 'host';
$dbuser = 'user';
$dbpass = 'pass';
$db     = 'database';
$connectdb = mysqli_connect($dbhost, $dbuser, $dbpass, $db) or die($connect_fail);
?>

2 个答案:

答案 0 :(得分:1)

将您的connect.php包含到您的user.php

include('../fodler2/connect.php');

function user_data($id) {
    $data = array();
    $user_id = (int)$id;
    $func_num_args = func_num_args();
    $func_get_args = func_get_args();
    if ($func_num_args > 1) {
        unset($func_get_args[0]);
        $fields = '' . implode(', ', $func_get_args) . '';
        $data = mysqli_fetch_assoc(mysqli_query($connectdb,"SELECT $fields FROM users WHERE id = $id"));
        return $data;
    }
}

答案 1 :(得分:0)

在您的users.php文件中

,您需要添加

include "../folder2/connect.php";