htmlspecialchars($ _ SERVER ['PHP_SELF'])
问题描述:
if($_POST) {
$mysql_pass = '';
$connect = @mysql_connect($_POST['dbHost'], $_POST['dbUser'], $mysql_pass);
if($connect) {
if(@mysql_select_db($_POST['dbName'])) {
$dir = $_SERVER['SERVER_NAME']. $_SERVER['REQUEST_URI'];
$redirectUrl = str_replace("configForm.php","site/index", $dir);
print $redirectUrl; exit;
$dbConf = dirname(__FILE__).'/dbConfig/dbconf.php';
$handle = fopen($dbConf, 'w') or die('Cannot open file: '.$dbConf);
$data = '<?php $userName="'.$_POST['dbUser'].'";'."\n";
$data .= '$passWord=" ";'."\n";
$data .= '$dbName="'.$_POST['dbName'].'";'."\n";
$data .= '$host="'.$_POST['dbHost'].'"; ?>';
fwrite($handle, $data);
header('Location: site/index');
}
else {
$error = 'Could not select database.';
}
}
else $ error ='Not connected'; }
当上面的代码执行时,我的网页刚刚显示“localhost/www-edusec/site/index”。我不知道我在哪里做错了。我的表单动作是象下面这样:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST">
答
的action
属性默认为当前页面无论如何,所以这段代码肯定是多余的。
问题是PHP_SELF
也返回文件的路径。只需彻底摆脱行动路线,它应该可以正常工作。
编辑:
另外,你的脚本被切断一半的原因,你有一个exit;
它打印出该目录之后。
我根据你所说的做了一些编辑。但是,我收到了此消息“ CDbException CDbConnection无法打开数据库连接。” – jenny 2014-10-08 06:36:33
这是你的SQL的一个不同的问题,我建议你在这里提出另一个关于这个错误的问题,以及你所有与连接有关的PHP代码,或者用你的SQL代码扩展这个问题。 – 2014-10-08 07:01:48