所以这是我的代码。现在我如何在另一个文件中使用$ 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;
这个代码也安全吗?我做到了......还没有用。
答案 0 :(得分:6)
包含您希望变量可在其中访问的文件,如此
include('somefile.php')
并且在该文件的顶部,您可能需要输入[取决于服务器配置]
global $pubname
但在大多数情况下,您不需要这样做。
关于安全性,根据$pubname
的设置方式,您的查询可能<或者<}> 易于sql injection.
注意:来自php.net的include()
,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()
函数来调用它。