我想要做的是,尝试用用户输入的与数据库连接有关的详细信息写一个文件。但我无法这样做。该文件尚未创建。
我的PHP代码:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['config'] == 'save_config')
{
$string = '<?php
$mysql_database = "'.$_POST["databasename"].'";
$mysql_user = "'.$_POST["username"].'";
$mysql_password = "'.$_POST["password"].'";
$mysql_host = "'.$_POST["host"].'";
$db = mysql_connect($mysql_host, $mysql_user, $mysql_password);
if (!$db)
{
die("Failed to connect to database server!<br>".mysql_error());
}
mysql_select_db($mysql_database, $db) or die("Failed to select database<br>".mysql_error());
?>';
$file="./config.php";
if(!file_exists($file)){
if(!($handle=fopen($file, "w"))){
die("Cannot create the file!");
}
else{
fwrite($handle, $string);
fclose($handle);
}
}
}
?>
我的HTML代码:
<form name="setup" method="post" action="index.php" enctype="text/plain" id="Form1">
<input type="hidden" name="config" value="save_config">
<input type="submit" id="Submit" name="" value="Submit" style="position:absolute;left:14px;top:270px;width:75px;height:31px;z-index:4;">
<input type="text" id="databasename" style="position:absolute;left:181px;top:21px;width:223px;height:22px;line-height:22px;z-index:5;" name="databasename" value="" required="required">
<input type="text" id="username" style="position:absolute;left:181px;top:81px;width:223px;height:22px;line-height:22px;z-index:10;" name="username" value="" required="required">
<input type="password" id="password" style="position:absolute;left:181px;top:145px;width:223px;height:22px;line-height:22px;z-index:11;" name="password" value="" required="required">
<input type="text" id="host" style="position:absolute;left:181px;top:211px;width:223px;height:22px;line-height:22px;z-index:12;" name="host" value="" required="required" placeholder="localhost">
</form>
答案 0 :(得分:2)
在php中,只要你有三个字母<?php
或两个字母?>
彼此相邻,它就意味着“在这里开始/结束php代码”,即使它在一个中间''
引用对。只需将它们与这样的连接分开:
$string = '<'.'?php
....
?'.'>';
你也可以在这里使用HEREDOC语法,它可以在不分离标记的情况下工作:
$string = <<<EOD
<?php
....
?>
EOD;
另外,在php中你可以省略结尾?>
。文件结束将正常工作告诉解释器它是一个php块的结束。