Seite 1 von 1

Counter über ein Bild , muss man ein Bild senden?

Verfasst: 27.02.2010, 16:08
von smilla
Hi,

damit ein Counter überwiegend echte Besucher zählt, läuft der aufruf über ein Bild (image.php?products_id=1 oder image.php?categories_id=1).

damit hier niemand manipulieren kann enthält der parameter noch einen hash wert.

Nun zeige ich derweil ganzen unten dann auch wirklich ein Bild an:

Code: Alles auswählen

// show some image
$filename = $_SERVER['DOCUMENT_ROOT'] . "/images/1px.gif";
$image = @imagecreatefromjpeg($filename);      
if ($image != "")
{
   header("Content-type: image/jpeg"); 
   imagejpeg($image, '', 100);  
   imagedestroy($image);
   exit;
}
Nun frage ich mich, ob man diesen Code unten ggf. durch was anderes ersetzen kann und welche Auswirkungen das hat:

1. Man lässt es so wie es ist und ich glaube es hat keine Nachteile
2. Man sendet stumpf einen Header 404 Not Found (hat ggf. Qualitäts Nachteile, wenn eine Seite Bilder anzeigt, die nicht vorhanden sind, aber Sumas werden immer intelligenter)
3. Könnte man ggf. einfach einen Header 200 Senden und fertig?


Also ich weiß nicht wirlich wie man das besser lösen kann oder ob ich es so lassen sollte.

Freue mich auf Feedback

Verfasst:
von
Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Verfasst: 27.02.2010, 16:50
von t-rex
Hi,

ein bisschen weniger Resourcen benötigt die folgende Lösung

Code: Alles auswählen

  header("HTTP/1.0 200 OK");
  header("Content-Type: image/gif");
  header("Content-Length: 43");
  // 1 x 1 gif
  echo chr(0x47).chr(0x49).chr(0x46).chr(0x38).chr(0x39).chr(0x61).chr(0x01).chr(0x00).
     chr(0x01).chr(0x00).chr(0x80).chr(0x00).chr(0x00).chr(0x04).chr(0x02).chr(0x04).
     chr(0x00).chr(0x00).chr(0x00).chr(0x21).chr(0xF9).chr(0x04).chr(0x01).chr(0x00).
     chr(0x00).chr(0x00).chr(0x00).chr(0x2C).chr(0x00).chr(0x00).chr(0x00).chr(0x00).
     chr(0x01).chr(0x00).chr(0x01).chr(0x00).chr(0x00).chr(0x02).chr(0x02).chr(0x44).
     chr(0x01).chr(0x00).chr(0x3B);
  exit;
Sonnige Grüsse
HaPe

Verfasst: 27.02.2010, 17:29
von Mork vom Ork
t-rex hat geschrieben:

Code: Alles auswählen

echo chr(0x47).chr(0x49).chr(0x46).chr(0x38).chr(0x39).chr(0x61).chr(0x01).chr(0x00).
     chr(0x01).chr(0x00).chr(0x80).chr(0x00).chr(0x00).chr(0x04).chr(0x02).chr(0x04).
     chr(0x00).chr(0x00).chr(0x00).chr(0x21).chr(0xF9).chr(0x04).chr(0x01).chr(0x00).
     chr(0x00).chr(0x00).chr(0x00).chr(0x2C).chr(0x00).chr(0x00).chr(0x00).chr(0x00).
     chr(0x01).chr(0x00).chr(0x01).chr(0x00).chr(0x00).chr(0x02).chr(0x02).chr(0x44).
     chr(0x01).chr(0x00).chr(0x3B);
Und die 43 hässlichen chr()-Aufrufe kriegen wir auch noch weg ;)

Code: Alles auswählen

echo "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x04\x02\x04\x00\x00\x00\x21\xF9\x04\x01\x00\x00\x00\x00\x2C\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3B"; 
Eigentlich könnte man sich aber auch mit gar nichts behelfen, wortwörtlich:

Code: Alles auswählen

header("HTTP/1.0 204");
exit;
Ich weiß allerdings nicht, ob Browser daraufhin die Kaputtes-Bild-Grafik anzeigen.

Verfasst:
von

Verfasst: 27.02.2010, 18:12
von smilla
Jo, vielen Dank für Infos, habe erst mal den Code ohne die Chr Aufrufe integriert :)

Re: Counter über ein Bild , muss man ein Bild senden?

Verfasst: 27.02.2010, 22:02
von 800XE
smilla hat geschrieben:Hi,
damit ein Counter überwiegend echte Besucher zählt, läuft der aufruf über ein Bild
Suchst du manchmal Dinge in der der Google JavaScriptDings?

javascript.google.de/images?q=Counter
images.google.de/images?q=Counter

Verfasst: 27.02.2010, 23:09
von t-rex
Mork vom Ork hat geschrieben: Und die 43 hässlichen chr()-Aufrufe kriegen wir auch noch weg ;)
Danke !!!

Re: Counter über ein Bild , muss man ein Bild senden?

Verfasst: 28.02.2010, 11:23
von smilla
800XE hat geschrieben: Suchst du manchmal Dinge in der der Google JavaScriptDings?
Nein, aber wenn ich das als Bild laufen lasse, fallen viele Bots schon mal weg. Und beim Bildaufruf kann ich immer noch einige gängige host überprüfen und fürs zählen ignoreren.

Die genaue Zahl interessiert auch nicht, es geht nur darum Daten zu sammeln, mit der später Relevanzen besser berechnet werden können. ;)