0

我有一个表单,发送时会打开另一个 php 文件。我想获取表单信息,并创建一个表格,但如果有人写了表格中的某个单词,代码应该回显“对不起”。代码的第一部分正在工作,它获取表单,并在 index.php 中创建一个表,但是当我创建相同的表单时,它再次发送:S 我如何更改它?

<?

$original_list = file_get_contents("index.php");

$file = fopen("index.php","w") or exit("Unable to open file!");

$since = $_POST["since"];
$since2 = "<tr><td class=\"since\"> $since </td><br/>";

$user = $_POST["user"];
$user2 = "<td class=\"content\"> $user </td><br/>";

$due = $_POST["due"];
$due2 = "<td class=\"due\"> $due </td></tr>\n";

if (strpos("index.php","word") === true) {
     echo "Sorry"
}elseif ($_POST["since"] <> "");{
    fwrite($file,"$since2$user2$due2$original_list");
} 
fclose($file);

?>
4

2 回答 2

2

改变这一行:

if (strpos("index.php","word") === true) {

if (strpos($original_list,"word") !== false) {

strpos() 返回值

返回针相对于 haystack 字符串开头的位置(与偏移量无关)。另请注意,字符串位置从 0 开始,而不是 1。

如果未找到针头,则返回 FALSE。

于 2013-09-17T13:07:45.077 回答
0

试试这个,因为你没有查看文件内容:

<?

$original_list = file_get_contents("index.php");

$file = fopen("index.php","w") or exit("Unable to open file!");

$since = $_POST["since"];
$since2 = "<tr><td class=\"since\"> $since </td><br/>";

$user = $_POST["user"];
$user2 = "<td class=\"content\"> $user </td><br/>";

$due = $_POST["due"];
$due2 = "<td class=\"due\"> $due </td></tr>\n";

if (strpos($original_list,"word") ) {  // <- this is the changed line
      echo "Sorry"
}elseif ($_POST["since"] <> "");{
    fwrite($file,"$since2$user2$due2$original_list");
} 
fclose($file);

?>
于 2013-09-17T13:09:44.377 回答