Miron Machnicki

Miron Machnicki Frontend Engineer

Temat: Prolem z htaccess w Firefox?

Witam,
Mam problem ze stroną. Polecenie mysql_query jest wykonywane kilkanaście razy zamiast raz. Dzieje się to tylko w Firefoxie i tylko przy użyciu przyjaznych linków.

http://berbus.pl/fartuchy/dodaj_do_koszyka/1/1/fartuch... - do bazy danych, do tabeli order_in dodawanych jest 10 rekordów z danymi idp='1', number='1'.

przy użyciu linka:
http://berbus.pl/fartuchy/index.php?go=koszyk&dodaj=1&... wszystko jes tok. Dodawany jest jeden rekord o tych danych.

w htaccess:
RewriteRule  ^dodaj_do_koszyka/([0-9]+)/([0-9]+)/(.+)/?$ index.php?go=koszyk&dodaj=$1&ilosc=$2 [L]


początek index.php,który odpowiada za to:

$go=$_GET['go'];
if ($go=="koszyk") {
$user_ip = getenv('REMOTE_ADDR');
$orders_select=mysql_query("SELECT * FROM orders WHERE ip='$user_ip' AND done='2'");
$orders_num=mysql_num_rows($orders_select);
if ($orders_num==0) {
$date=date('Y-m-d H:i:s');
$orders_insert=mysql_query("INSERT INTO orders SET ip='$user_ip', done='2', date='$date'");
$orders_select=mysql_query("SELECT * FROM orders WHERE ip='$user_ip' AND done='2'");
$orders_id = mysql_insert_id();
}
else {
$orders_row=mysql_fetch_array($orders_select);
$orders_id=$orders_row['id'];
$date=date('Y-m-d H:i:s');
$orders_update=mysql_query("UPDATE orders SET date='$date' WHERE id='$orders_id'");
}
if ($_GET['dodaj']) {
$dodaj=$_GET['dodaj'];
$ilosc=$_GET['ilosc'];
if ($ilosc==0) $ilosc=$_POST['ilosc_prod'];
$date=date('Y-m-d H:i:s');
$order_in_insert=mysql_query("INSERT INTO order_in SET ido='$orders_id', idp='$dodaj', number='$ilosc', date='$date'");
}
}


Zauważyłem dziwną prawidłowość.
Jeśli w HEAD jest linijka:
<script type="text/javascript" src="'.$dane_row['adres'].'/js/lightbox.js"></script>

To błąd występuje. Jeśli jej brakuje, to jest ok. Dodam, że w Firefoxie mam zainstalowanego FireBuga. Być może przez to polecenie jest wykonywane 10 razy?Miron Machnicki edytował(a) ten post dnia 02.09.10 o godzinie 19:56
Marek Wywiał

Marek Wywiał Programista,
administrator,
instruktor

Temat: Prolem z htaccess w Firefox?

zamiast GET użyj POST. get można wywołać swobodnie kilka razy, zapętlić, może otworzyć go google, prefetcher, itp.

Po udanym POST do akcji, na jej koniec wykonaj redirect GET np /koszyk, wtedy użycie F5 pokaże koszyk zamiast dodawać jeszcze raz towar.

Następna dyskusja:

Typy plików w FireFox




Wyślij zaproszenie do