1x1 GIF Image With PHP

<html>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://java.com/js/deployJava.js"></script>
<script type="text/javascript">

function getFlashVersion(){
  // ie
  try {
    try {
      // avoid fp6 minor version lookup issues
      // see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
      var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
      try { axo.AllowScriptAccess = 'always'; }
      catch(e) { return '6,0,0'; }
    } catch(e) {}
    return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
  // other browsers
  } catch(e) {
    try {
      if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
        return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
      }
    } catch(e) {}
  }
  return '0,0,0';
}
 
var flashversion = getFlashVersion().split(',').shift();
var javaversion = deployJava.getJREs();


$(document).ready(function(){   
     
     $.ajax({
      type: "POST",
      url: "database-insert.php",
      data: { flashversion: flashversion, javaversion: javaversion }
    })
                           
}); 
</script>
</html>
<?php
Header('Content-type: image/gif');
echo base64_decode("R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==");
?>

Da li neko ima predstavu sta lose radim? Pokusavam da prosledim java i flash version da ubacim to u bazu a onda da napravim 1x1 gif i dobijam ovaj error: http://prntscr.com/5hlxwp

Mislim da je problem sto ovaj html kod ide pre PHP i zato mi baca ovaj warning, nije do praznog prostora kod php tagova sigurno, probao sam i ob_start(); al opet isto… Ima li neko ideju?

header mora ići prije bilo kakvog slanja html-a. Morao bi biti skroz na vrhu (prije taga)

Da znam ali tako mi se ne izvrsi ajax call, tako da sad gledam da ukombinujem a ne znam kako… Zeza me ovo sto moram da nadjem java i flash verziju pomocu js…

Gdje se nalazi taj tracking pixel? Na tvojoj stranici ili negdje gdje nemas pristupa?

Tracking pixel ide u e-mail i prati se da li je e-mail procitan i uzimaju se informacije korisnika koji otvori mail itd… web bug

Ja bih taj dio PHP code-a stavio posebno i uključio ga kao sliku.
Na primjer, daj dio koda staviš u datoteku “slika.php”, i onda je iz HTML-a pozoveš kao sliku, npr:

<img src="slika.php" alt="">

Ne moze tako jer content type mora biti image… Kad bih pokusao da ubacim link u gmail izbacilo bi mi da nije slika… http://prntscr.com/5hvfws

Ima li neko ideju?

Ne znam bas da li je moguce iskombinirat to sto ti hoces, ne mozes browseru rec da ti izvrsi js i onda da mu kazes da je to slika

1 Like

Dobro to sad i ja znam, ali moze da se izvrsi php kod pa da mu kazes da je slika, tako da mora postojati neki nacin da odredim java i flash verziju ili se barem samo nadam…

Ne mozes to na serveru ocitati, bojim se da nije moguce napraviti to sto zelis.

1 Like

Pa da… Logicno da ne mogu da proverim flash i java verziju browsera pomocu server-side jezika, a ovo sa kombinovanjem js i php ne ide… Hvala ljudi, ne znam sta cu sad :sunny:

Možda ti ovo da ideju onoga šta želiš napraviti?
http://w2.eff.org/Privacy/Marketing/web_bug.html
Kao što ti gore napisah, includaš .php datoteku kao sliku, a unutar te php datoteke pokreneš mysql i ostalo što ti treba (i naravno staviš header tog php file-a kao content-type slike).

Zna on to, ali njemu treba Java i Flash verzija, a to se ne moze ocitati na serveru.

Jel pokušao sa http://php.net/manual/en/function.get-browser.php ?

Ne jer mi get_browser() ne daje potrebne informacije…

(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

Priporucujem, da napravis ovako sa GET varijablama:

    <?php
          $im=imagecreate(1,1);
          $white=imagecolorallocate($im,255,255,255);
          imagesetpixel($im,1,1,$white);
          header("content-type:image/gif");
          imagejpeg($im);
          imagedestroy($im);
          if (isset($_GET['a'])) {
          // napravi nesto s a (zapisi u bazu)
          }
          if (isset($_GET['b'])) {
          // napravi nesto s b (zapisi u bazu)
          }
          if (isset($_GET['c'])) {
           // napravi nesto s c (zapisi u bazu)
          }
     ?>

i posle stavis kao sliku i stavis variable od flasha i jave(izgenerirane u javascriptu) u link:

<img src="http://example.com/pixel.gif?a=value1&b=value2&c=value3">

a ako ti treba image type za gmail u .htaccess napravi rewrite

RewriteEngine On
RewriteRule ^pixel.gif$ /pixel.php [L]

Ti tu menk nista nisi pomogao sto se konkretnog problema tice. Ne mogu ja da uzmem sa nekog levog mesta java i flash verziju pa da prosledim do PHP i preuzmem get metodom. Ti si ovde samo pokazao kako da kreiram img a to znam i sam mnogo jednostavnije.

Problem je u tome što se jQuery (niti ikakav javascript) ne može pokrenuti jer se cijeli file interpretira u browseru kao image (gif) zbog ovog slanja Headera.

Dakle, po meni, rješenje bi bilo prvo obaviti jQuery, i kada je dokument spreman, izmjeniti header dokumenta u image (ako ima smisla uopće to napraviti nakon toga).

Ili naći neko kompletno drugačije rješenje…

Bas to… Skontao sam ja da je nemoguce odraditi, zato sam i batalio.