ugrás a tartalomhoz

Minden insert duplázódik

monghuz · 2006. Júl. 24. (H), 13.20
A problémám hogy akármilyen insert utasitást akarok mysqlben végre hajtani mindig kétszer hajtja végre:
pl látogatás naplózás:

<?php
	$date = date ("Y-m-d H:i:s", mktime());
	$ip = $_SERVER['REMOTE_ADDR'];
	$modul=''; //a weblapon merre járt a látogató
	foreach ($_GET as $key => $value) {
		$modul.=($key=='page') ? '?' : '&';
		$modul.=$key.'='.$value;
	}
	$user_id = isset($_SESSION['felhasznalo_id']) ? $_SESSION['felhasznalo_id'] : 0;
	
	$endtime = timer();
	$loadtime = $endtime - $starttime;
	$loadtime = number_format($loadtime, 4);
	$insert = mysql_query("INSERT INTO latogatasok VALUES ('', '".$date."', '".$ip."', '".$modul."', '".$user_id."', '".$loadtime."') ");
        echo $loadtime;
a $loadtime a php futási idejét adja vissza, ez csak a hiba keresés miatt van.

ez az index.php legvégén található utána már csak az esetleges mysql hibákat iratom ki.

erre mindig valami ilyesmit kapok az adatbázisban:
id| latogatas ideje | ip | megnezett oldal |userid| loadtime
5 | 2006-07-24 12:56:09 | 127.0.0.1 | ?page=modules/hirek&akt=0 | 0 | 0.5087
6 | 2006-07-24 12:56:09 | 127.0.0.1 | ?page=modules/hirek&akt=0 | 0 | 0.2356

minden ugyan az kivéve a betöltési időt... és amit végkép nem tudok felfogni , hogy az oldalon mindig a felső (nagyobb) betöltési idő jelenik meg és nem az ami utána lett tárolva az sql-ben..

valami ötlet hogy ez miért lehet? esetleg hogyan tudom kivédeni?
bye Tomi
u.i:ha külön föggvénynek irom és meghivom akkor is ugyan ez a hiba
 
1

nem lehet, hogy máshol van a hiba?

PiG · 2006. Júl. 24. (H), 13.27
Nem lehetséges, hogy az oldalon máshol van a hiba, mondjuk valahol belekeveredik egy ciklusba... és aztán kétszer jut el arra a részre, amit becopyztál... vagy esetleg valahol tök másik részen is szerepel egy naplózás?
2

nem hiszem

monghuz · 2006. Júl. 24. (H), 14.40
a bemásolt kód elött vannak while ciklusok, de azok le vannak zárva.. ez volt az első amit megnéztem...

Az a fura hogy ez az index.php legvégén is jelentkezik és akkor is ha egy include_once() fv.el betöltöm pl a hirek_beszur.php -t ott pedig csak egy szál insert volt, semmi ciklus

más ötlet?
3

hi

Anonymous · 2006. Júl. 24. (H), 19.15
egyrészt megadnék egy kapcsolatazonosítót a mysql_query-nek, másrészt, ha 2x insert-el, akkor az echo $loadtime; miatt 2x kéne a lodatime-ot is kiírja, ha ezt nem teszi meg, akkor lehet header-ezel valahol. a header-el egyébként vigyázni kell, ha nem akarod, hogy lefusson az utána lévő php kód, akkor ajánlott egy exit();-et rakni utána.
4

kapcsolat azonosíto?

monghuz · 2006. Júl. 24. (H), 20.01
az egész oldalon egy darab header van de mikor kiszedtem akkor se változott a helyzet
header("Content-Type: text/html; charset=iso-8859-2");
nem tudom pontossan mit is jelent hogy kapcsolat azonosító, de olyat próbáltam hogy bezártam egy if-be a mysql-t mivel minden linkem igy néz ki: index.php?page=hirek
if(isset($_GET['page'])) { 
mysql_query() } 
ilyesmi módszerrel oldottam meg hogy a hirek felvitelnél ne duplázodjanak az adatok.. ott mükszik is de itt nem .. :( még mindig két adatom van egy oldal betöltésről két elrérő php generálási idővel és az echo $loadtime még mindig az elöbb felvitt rekord loadtime értékét mutatja :-/
5

az még érdekesebb...

Anonymous · 2006. Júl. 25. (K), 07.57
ha az 1 először insert-elt loadtime-ot írja ki, valahová ki kéne írja a másikat is...
a kapcsolatazonosító nem lényeg, míg csak egy adatbázist használsz, mert mindig a legutolsó mysql_connect() által megnyitott kapcsolatot használja.