2

単純なクエリでも、PHPが同じデータを2回挿入していることに気付きました。以下は、私のインデックスファイルです。

<?php
require("constants.php"); //contains database settings
$database = new PDO("$type:host=$host;dbname=$name", $user, $pass); 
$query = $database->prepare('INSERT into test (test) VALUES (?)');
$query->execute(array(rand()));
echo $database->lastInsertId();

テーブルにはtest、自動インクリメント列idとvarchar列がありますtest。PHPとmysqlを実行するためにWAMPを使用しています。

rand()ページへの各リクエストは、(呼び出しからの)異なる値を持つ2つのエントリを挿入します。最初の挿入IDのみがエコーされます。この動作は、Chrome、Firefox、IEでも同じです。

これは、書き換えルールが原因です。

RewriteEngine on
RewriteRule .* index.php

透過的にリクエストされるrobots.txtやfavicon.icoのようなファイルがあると思います。

4

2 に答える 2

2

index.php にリダイレクトできる書き換え/エラードキュメントのルールはありますか? インデックスにリダイレクトされている別のリソース (ファビコンなど) を読み込もうとしているページ/ブラウザでしょうか?

于 2011-02-15T19:18:11.320 に答える
1

これと応答攻撃を防ぐために、フォーム トークン/ノンスを使用する必要があります。

http://www.phpro.org/tutorials/Preventing-Multiple-Submits.html

于 2011-02-15T19:20:55.987 に答える