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() 戻り値

干し草の山文字列の先頭に対する針の位置を返します (オフセットとは関係ありません)。また、文字列の位置は 1 ではなく 0 から始まることに注意してください。

針が見つからなかった場合は 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 に答える