我正在尝试使用fwrite和表单的组合来创建安装程序。这是我的代码:
<?php
$myFile = "db_config.php";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, "$host = " . $_POST['host'] . ";\n $username = " . $_POST['username'] . ";\n $password = " . $_POST['password'] . ";\n $name = " . $_POST['name']";" ;);
fwrite($fh, 'mysql_connect("{$host}", "{$db_username}", "{$db_password}")\n or die(mysql_error());\n mysql_select_db("{$db_name}")\n or die(mysql_error()); ?>' ;);
fclose($fh);
?>
这是错误:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home2/runetyco/public_html/ballpointradio/new/install_action.php on line 4
答案 0 :(得分:2)
您在行尾
缺少.
[...]. $_POST['name'] . [<--] ";" ;)
答案 1 :(得分:2)
相当多的问题tbh .. sorted
<?php
$myFile = "db_config.php";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, '<?php' . PHP_EOL . '$host = "' . $_POST['host'] . '";' . PHP_EOL . '$username = "' . $_POST['username'] . '";' . PHP_EOL . '$password = "' . $_POST['password'] . '";' . PHP_EOL . '$name = "' . $_POST['name'] . '";' . PHP_EOL );
fwrite($fh, 'mysql_connect($host, $db_username, $db_password)' . PHP_EOL . 'or die(mysql_error());' . PHP_EOL . 'mysql_select_db($db_name) or die(mysql_error());' . PHP_EOL);
fclose($fh);
注意:我不建议这样做,通常更好地只写出一个简单的配置文件并保持所有代码都是静态的,但上面的回答是关于你得到的错误的问题。
答案 2 :(得分:0)
问题可能出在?>
。你必须逃脱它。另外,您没有将<?php
放在conf文件的开头。
为什么你想让它成为php文件呢?为什么不使用ini文件和parse_ini_file(),或者xml?
答案 3 :(得分:0)
它发出错误的原因是因为它在第4行寻找变量$ host - 如果你将双引号更改为单引号它应该解决问题 - 见下文:
<?php
$myFile = "db_config.php";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, '$host = ' . $_POST['host'] . ';\n $username = ' . $_POST['username'] . ';\n $password = ' . $_POST['password'] . ';\n $name = ' . $_POST['name'] . ';\n\n';
fwrite($fh, 'mysql_connect("{$host}", "{$db_username}", "{$db_password}")\n or die(mysql_error());\n mysql_select_db("{$db_name}")\n or die(mysql_error()); ?>' ;);
fclose($fh);
?>