Php $mysql_uuu正在消失?
嗨,我正在编写一个安装程序。。我遇到了麻烦,因为。。创建global.php文件时,$mysql_uuu连接不会显示在文件中,而其他所有内容都会显示 我正在试着插入这个Php $mysql_uuu正在消失?,php,mysql,Php,Mysql,嗨,我正在编写一个安装程序。。我遇到了麻烦,因为。。创建global.php文件时,$mysql_uuu连接不会显示在文件中,而其他所有内容都会显示 我正在试着插入这个 $mysql_host = 'localhost'; $mysql_user = 'root'; $mysql_name = '-----'; $mysql_pass = '-----'; 在global.php中,它提供了: = 'localhost'; = 'root'; = '-----'; = '-----';
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_name = '-----';
$mysql_pass = '-----';
在global.php中,它提供了:
= 'localhost';
= 'root';
= '-----';
= '-----';
注意到$mysql_uu丢失了吗
这是安装程序中的代码:
$db_name = trim($_POST['db_name']);
$db_user = trim($_POST['db_user']);
$db_pass = trim($_POST['db_pass']);
$db_host = trim($_POST['db_host']);
$handle = fopen($setting['config']['folder'] . $setting['config']['file'], 'w');
$input = "<?php
$mysql_host = '".$db_host."';
$mysql_user = '".$db_user."';
$mysql_name = '".$db_name."';
$mysql_pass = '".$db_pass."';
?>
";
fwrite($handle, $input);
fclose($handle);
$db_name=trim($_POST['db_name']);
$db_user=trim($_POST['db_user']);
$db_pass=修剪($_POST['db_pass']);
$db_host=trim($_POST['db_host']);
$handle=fopen($setting['config']['folder'].$setting['config']['file'],'w');
$input=”
";
fwrite($handle,$input);
fclose($handle);
有人能帮忙吗?
谢谢$input=“”;
在双引号字符串中,$符号类似于串联。如果要在字符串中插入美元符号,应使用
\
反斜杠对其进行转义。由于在字符串中使用双引号,PHP将解释它在字符串中看到的变量名,并输出变量值而不是变量名
这是一个php特性,允许您在字符串中嵌入变量,而无需重复打开和关闭字符串。具有讽刺意味的是,这正是您对实际PHP变量所做的
您有两个选择:
$
符号,您不希望PHP解释它
如果您继续使用双引号,您还可以选择像我说的那样将变量嵌入字符串中,因此不需要一直打开和关闭引号。在本例中,您的代码如下所示:
$input = "<?php
\$mysql_host = '{$db_host}';
\$mysql_user = '{$db_user}';
\$mysql_name = '{$db_name}';
\$mysql_pass = '{$db_pass}';
?>
";
$input=”
";
$\u POST
读取变量时,您并不是在转义$db\u xx
变量。这意味着,例如,如果用户的名称或密码中包含引号字符,将导致生成无效的PHP代码
此外,用户还可以使用此错误作为将任意PHP代码注入系统的技术。虽然此脚本显然只用于首先设置系统时,但这是代码中的一个主要安全缺陷,应该予以纠正。现在,$db\u主机无法从上面的脚本中获取。现在显示$mysql_host=''$mysql_user=''$mysql_name=''$mysql_pass=''@用户2172990您确定
$db\u主机
,$db\u用户
。。。变量定义正确/不为空?问题不在上面的代码中。打开所有PHP错误。
$input = "<?php
\$mysql_host = '{$db_host}';
\$mysql_user = '{$db_user}';
\$mysql_name = '{$db_name}';
\$mysql_pass = '{$db_pass}';
?>
";