0

fwriteとformsの組み合わせを使用して、インストーラーを作成しようとしています。これが私のコードです:

<?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
4

4 に答える 4

2

.行末にaがありません

[...]. $_POST['name'] . [<--] ";" ;)
于 2010-07-04T11:26:17.713 に答える
2

かなりの数の問題tbh..ソート

<?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);

注:この方法はお勧めしません。通常は、単純な構成ファイルのみを書き出してすべてのコードを静的に保つ方がはるかに優れていますが、上記は、発生するエラーに関する質問に答えます。

于 2010-07-04T11:37:59.573 に答える
0

問題がある可能性があります?>。あなたはそれを逃れる必要があります。<?phpまた、 confファイルの先頭を入れていません。

とにかくそれをphpファイルにしたいのはなぜですか。iniファイルとparse_ini_file()、またはxmlを使用してみませんか?

于 2010-07-04T11:26:03.010 に答える
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); 
?>
于 2010-07-04T11:30:43.033 に答える