将PHP中的变量从一个文件传递到另一个文件

时间:2010-12-31 19:58:30

标签: php sql variables

所以这是我的代码。现在我如何在另一个文件中使用$ pubname。

mysqli_select_db($connect,"membership");
$retname = "select username from users where email='$globalname' limit 1";
$rn = mysqli_query($connect,$retname) or die(mysqli_error($connect));
$name = mysqli_fetch_array($rn);
    //connecting for mathcing username with fullname and displaying it
$pubname = mysqli_real_escape_string($name['username']);

include('profile.php');

echo $pubname;

这个代码也安全吗?我做到了......还没有用。

3 个答案:

答案 0 :(得分:6)

包含您希望变量可在其中访问的文件,如此

include('somefile.php')

并且在该文件的顶部,您可能需要输入[取决于服务器配置]

global $pubname

但在大多数情况下,您不需要这样做。

关于安全性,根据$pubname的设置方式,您的查询可能<或者<}> 易于sql injection.

注意:来自php.netinclude()include_once()require()require_once()文件还有其他方法:

  

以下文档也适用   要求()。这两个结构是   除了他们之外,各方面都相同   处理失败。 include()产生一个   在require()导致a时发出警告   致命错误。换句话说,使用   require()如果你想要一个丢失的文件   停止处理页面。   include()不会这样,   脚本将继续无论如何。   一定要合适   include_path设置也是如此。是   警告说需要解析错误   文件不会导致处理暂停   在PHP 4.3.5之前的PHP版本中。   从这个版本开始,就可以了。

答案 1 :(得分:1)

要在另一个脚本中使用$pubname,请将其保留为全局变量。你不需要回应它。 (需要注意的是:全局变量应该谨慎使用,最好集中在一个数组中。)

就安全性而言:您应该在使用之前使用mysqli_real_escape_string而不是$globalname。并在您在下一个查询中使用它之前,仅转义$pubname。现在看来,你是在不必要地编码输出,但是忘了逃避输入 - _escape_string实际意味着。

答案 2 :(得分:0)

在另一个文件中使用pubname。首先,您必须包含设置/创建pubname的文件。

然后使用include()require()函数来调用它。