Sunday, April 29, 2012

Jednostavna PHP statistika

Prilikom razvoja web aplikacija, česti su zahtevi za evidentiranjem broja posetilaca na celokupnom nalogu ili u okviru pojedinačnih stranica. Na internetu su dostupna mnogobrojna rešenja koja će "odraditi" posao i obezbediti kvalitetnu statistiku, ali svakako da poželimo sasvim običan kod koji će uz jednostavnu implementaciju pružiti minimum potrebnih podataka.

U nastavku sledi primer jednostavnog koda koji je potrebno da kopirate na bilo koju stranicu na kojoj želite praćenje poseta (najčešće početna stranica prezentacije).



<?php
 function counter($file)
 {
  $contents = ((file_exists($file)) ? (preg_split("/((\r(?!\n))|((?!\r)\n)|(\r\n))/", file_get_contents($file))) : (array()));
 
  $incremented = false;
  if(count($contents) > 0)
   foreach($contents as &$line)
   {
    $line = explode("\t", $line);
    if($line[0] == $_SERVER["REMOTE_ADDR"])
    {
     $line[1]++;
     $line = implode("\t", $line);
     $incremented = true;
     break;
    }
    $line = implode("\t", $line);
   }
 
  if(!$incremented)
   $contents[] = $_SERVER["REMOTE_ADDR"]."\t1";
 
  $contents = implode("\r\n", $contents);
  file_put_contents($file, $contents);
 }
 
 counter("log.txt");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <style type="text/css">
   h1
   {
    font: normal 32px "Lucida Sans Unicode", "Lucida Grande", Verdana, sans-serif;
   }
 
   pre
   {
    font: 12px Consolas, Monaco, monospace;
    overflow: auto;
   }
  </style>
  <title>Statistika poseta</title>
 </head>
 <body>
  <h1>Log</h1>
  <pre><?php require "log.txt"; ?></pre>
 </body>
</html>


Log fajl koji se kreira sadrži listu IP adresa svih posetilaca za brojem pristupa koji su ostvareni.

Wednesday, April 25, 2012

Socijalizacija u 3 koraka

Facebook, Twitter, Google+.  Deo realnosti bez koje ne funkcionišemo na najbolji način ili istovremena šansa da poslovne ciljeve ostvarimo i preko socijalnih mreža?
Svakako da su obe pretpostavke tačne, jer deo korisnika socijalne mreže koristi privatno iako u poslednje vreme  sve značajniji deo koristi i u poslovne svrhe.

Često dobijamo pitanja od korisnika kako na stranici da postave „Like “ za Facebok , opcije za Twitter i sl.

Evo nekoliko konkretnih stranica na kojima možete generisati potrebne funkcionalnosti:

Facebook: 
http://developers.facebook.com/docs/reference/plugins/like/
Twitter:
https://twitter.com/about/resources/buttons?tw_p=twt#tweet
Google+:
http://www.google.com/webmasters/+1/button/

Monday, April 16, 2012

Zaštita sadržaja preko .htaccess i .htpasswd

U cilju korišćenja .htaccess fajla za zaštitu sadržaja foldera, neophodno je da Apache server podešavanje bude konfigursano kao AllowOverride All. Ovo podešavanja podrazumeva da Apache server sledi instrukcije  .htaccess fajla, što je podrazumevno podešavanja za većinu Linux hosting rešenja, ali svakako proverite.

Prvo, kopirajte sledeći tekst u vaš .htaccess fajl koji je neophodno da upload-ujete u folder koji želite da zaštitite:

AuthName “Password Protect Directory”
AuthType Basic
AuthUserFile /home/username/.htpasswd
<Limit GET POST PUT>
Require valid-user
</Limit>

Pristupite vašem hosting nalogu i izvršite sledeću komandu:

htpasswd -c /home/username/.htpasswd your_desire_username

ili  iskoristite bilo koji internet servis za generisanje .htpasswd fajla.

Tuesday, April 10, 2012

Facebook Chat smajli :)

Smile :-) :) :] =)
Frown :-( :( :[ =(
Tongue :-P :P :-p :p =P
Grin :-D :D =D
Gasp :-O :O :-o :o
Wink ;-) ;)
Glasses 8-) 8) B-) B)
Sunglasses 8-| 8| B-| B|
Grumpy >:( >:-(
Unsure :/ :-/ :\ :-\
Cry :'(
Devil 3:) 3:-)
Angel O:) O:-)
Kiss :-* :*
Heart <3
Kiki ^_^
Squint -_-
Confused o.O O.o
Upset >:O >:-O >:o >:-o
Pacman :v
Curly Lips :3
Robot :|]
Chris Putnam :putnam:
Shark (^^^)
Penguin <(")

Monday, April 2, 2012

Linux MySQL kroz terminal?

Kreiranje i upload MySQL baze podataka:

mysql -u root -p -e ‘create database mydatabase’
mysql -u sales -p mydatabase < mydatabase.sql


Brisanje MySQL baze podataka:

show databases;
rop database mydatabase;

Eksportovanje baze podataka:

mysqldump -u {database_username} -p {database_name} > mysqlbackup.sql