用htmlspecialchars($ _ SERVER [ 'PHP_SELF'])

时间:2014-10-08 06:18:37

标签: forms action

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.';
}
}

否则    $ error ='未连接'; }

当执行上面的代码时,我的网页显示“localhost / www-edusec / site / index”。我不知道我做错了什么。我的表格行动如下:

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST">

1 个答案:

答案 0 :(得分:0)

action属性无论如何都默认为当前页面,因此这段代码肯定是多余的。

问题是PHP_SELF也返回文件的路径。完全摆脱动作线,它应该工作正常。

编辑:

另外,你的脚本中途切断的原因是,在打印出目录后你有一个exit;