Unerklärliche Doppelausführung

Unerklärliche Doppelausführung

am 26.10.2006 02:45:33 von mmollay

Liebe PHP-Meister,

stehe vor einem noch nie dagewesenen Rätsel!!

Folgedende Geschichte:
Ich habe eine Webseite geschrieben, wo aus einer Datenbank Seiten
generiert werden. Diese Seite wird nach jeden Besuch mit einen Counter
um eines hochgeschalten.

bsp.: mysql_query("UPDATE seite SET counter =3D counter+1 where id=3D 1");

soweit nach dem Aufrufen alles kein Problem zählt ganz normal hoch.

Aber jetzt kommt es:

Ich habe dann ein CSS eingebunden wo in manchen Fällen "
background-image: url($link); "
vorkommt. Wenn aber kein Pfad vorhanden ist, sprich
background-image:url() leer ist, dann passiert folgendes:

der mysql-Befehl wird doppelt ausgeführt!!!

den gleichen Effekt habe ich auch, wenn ich ein "" wo
nichts drinnen steht.

Nun ist es ja kein Problem diese Sachen einfach nicht anzuzeigen wenn
nichts vorhanden ist, allerdings würde ich gerne wissen, was diese
Sachen mit einer Doppelauführung von php-befehlen zu tun haben.

Dieser eigenartige Effekt passiert auch beim versenden von Emails
(function). Der Server schickt einfach alles doppelt weg....

Ich wäre sehr über einen Hinweis dankbar, da mich diese Sache schon
eine Woch plagt!!

Danke=20

Liebe Grüße Martin

Re: Unerklärliche Doppelausführung

am 26.10.2006 03:02:36 von Carsten Wiedmann

mmollay schrieb:

> Ich habe dann ein CSS eingebunden wo in manchen Fällen "
> background-image: url($link); "
> vorkommt. Wenn aber kein Pfad vorhanden ist, sprich
> background-image:url() leer ist, dann passiert folgendes:
>
> der mysql-Befehl wird doppelt ausgeführt!!!
>
> den gleichen Effekt habe ich auch, wenn ich ein "" wo
> nichts drinnen steht.

Gemäss den Regeln von relativen URIs, entspricht eine leere URI dem
aktuellen Dokument. Der Browser lädt also an diesen Stellen URI nochmals und
versucht das Geladene als CSS, gespektive Image, einzubinden. Der Zähler
wird also erhöht, da das Script ja (wiederholt) ausgeliefert wird, der
Browser zeigt nur nichts an, da er ja an diesen Stellen kein text/html
erwartet. Bei dem Bild könnte es je nach Seitenaufbau auch sein, dass der
Browser dann nur ein "X" anzeigt.

Gruß
Carsten