0

我有以下文件。由于某种原因,我的 JavaScript(在 PHP 'echo' 标签内)不起作用:

HTML (index.php):

<form action="submit.php" method="post">
<div id="edit-box">
<INPUT type="submit" name="save-text" id="save-text" value="Save">
<textarea id="editor" name="editor">
<?php echo $content; ?>
</textarea>
</div>
</form>

PHP(提交.php):

<?php

include('connect-db.php');

$submit_date = date("Ymd");
$content = mysql_real_escape_string(htmlspecialchars($_POST['editor']));
$ip_address = getRealIPAddress();

if ($content != '') { 
mysql_query("INSERT source SET submit_date='$submit_date', ip='$ip_address', content='$content'")
or die(mysql_error());

// The following line is not working! I need help here!
echo '<script type="text/javascript"> alert("Your file saved!");</script>';  

mysql_close($connection);
}
?>

“submit.php”没有任何其他 PHP 或 HTML 脚本/标签。我知道我使用的是过时的 PHP/MySQL API(而不是 PDO/MySQLi),但这不是重点。

4

2 回答 2

0

它应该打印一个警报。确定要打印脚本吗?我可以看到它可能会因查询中的错误而死。

如果不是这种情况,您在 connect-db.php 中包含什么,可能是您在所需文件中的某处弄乱了输出缓冲区..

我也很确定 sql 不正确:

INSERT source SET submit_date='$submit_date', ip='$ip_address', content='$content'
INSERT INTO source (submit_date, ip, content) values('$submit_date','$ip_address','$content');

然而,这不是一个安全的查询……那是无关紧要的。

以下是可能发生这种情况的更多原因:

  1. 可能会终止脚本的include("connect-db.php');执行。
    • 如果里面有问题。
  2. 查询可能会死掉。
  3. 输出被重定向到其他地方,在 php 配置中,或者在“connect-db.php”内部
  4. getRealIPAddress()没有记录,并可能导致脚本中断。
  5. 可能有一些虚假的东西$_POST['editor']可能会破坏导致 sql 死亡。
于 2013-03-09T21:41:41.967 回答
-1

试试下面的代码

<?php

include('connect-db.php');

$submit_date = date("Ymd");
$content = mysql_real_escape_string(htmlspecialchars($_POST['editor']));
$ip_address = getRealIPAddress();
$content = $_POST["editor"];
if ($content != '') { 
mysql_query("INSERT source SET submit_date='$submit_date', ip='$ip_address', content='$content'")
or die(mysql_error());

// The following line is not working! I need help here!
echo '<script type="text/javascript"> alert("Your file saved!");</script>';  

mysql_close($connection);
}
?>
于 2013-03-09T21:09:45.440 回答