php文件之间的变量
Posted
技术标签:
【中文标题】php文件之间的变量【英文标题】:Variable between php files 【发布时间】:2014-03-07 07:26:35 【问题描述】:在有人指出我的代码在安全性或其他方面存在缺陷之前,我知道我是一个 php 菜鸟,并且不介意您转发一些帮助来解决这个问题,而不是仅仅大喊它很糟糕。
我也在下面尝试过,但它对我不起作用,因为它将它存储到会话中(除非会话比我想象的更安全。我假设用户可以从中提取数据,对吗?): http://tinyurl.com/myqx3xo
至于我的问题,我如何能够在我的用户函数中访问变量 $connectdb?当我这样做时,它给了我“未定义的变量”错误,并且没有检测到它是否存在。两者都是在每个页面加载的main\folder\start.php
中的要求,在这些页面上我试图调用该函数,但它给了我失败。当我尝试将 $connectdb 的变量硬编码到函数中时,代码运行良好,但同样有充分的理由不这样做。如果需要,将添加其他详细信息。
未定义变量:main\folder\folder1\users.php 中以 $data 开头的行中的 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;
main\folder\folder2\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);
?>
【问题讨论】:
您是否将 connect.php 包含到您的 users.php 文件中 没有?我想我试过了,但没有用。 include("connect.php") 文件比尝试。 @Darkaaja 检查我的答案 【参考方案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;
【讨论】:
警告:include(../folder2/connect.php):打开流失败。当我尝试这样做时会发生...... :(【参考方案2】:在你需要添加的 users.php 文件中
include "../folder2/connect.php";
【讨论】:
以上是关于php文件之间的变量的主要内容,如果未能解决你的问题,请参考以下文章