Skip to Content

php

Alfanumerički hash fiksne dužine

Moj trud može nekom zatrebati, stoga evo kratke funkcije koja vraća jedinstveni hash fiksne dužine 10 slova/brojeva:

function tenhash($s) {
  $rlast = dechex((int)substr(sprintf("%09d", $s), -10));
  for (; strlen($rlast) < 10; ) {
    $rlast = chr((($tx = rand(48, 90)) > 57) && $tx < 65 ? $tx+=9 : $tx ).$rlast;
  }
  return $rlast;
}

Jedna napomena, maskimalni broj za kojeg se generiše hash može imati devet cifara.

Podešavanje suEXEC za PHP na Virtualminu GPL

Napomena pre početka, ovako se radi u Debianu, veoma slično je i za ostale GNU/Linux distribucije.

Prvo, napraviti skel za nove hostove, kao root:

cd /etc/skel
mkdir -p etc/php5
cp /etc/php5/apache2/php.ini /etc/skel/etc/php5/php.ini
mkdir fcgi-bin
vi fcgi-bin/php5.fcgi

U fajl php5.fcgi upišite ovo:

#!/bin/bash

export PHPRC=$PWD/../etc/php5
umask 022
export SCRIPT_FILENAME=$PATH_TRANSLATED
exec /usr/bin/php-cgi

Promenite dozvole ovom fajlu:

chmod 744 fcgi-bin/php5.fcgi

Dalje, ulogujte se u Virtualmin, pa idite na System Settings -> Server Templates -> Default Settings -> Apache website i u polje Directives and settings ubacite sledeće:

ServerName ${DOM}
ServerAlias www.${DOM}
DocumentRoot ${HOME}/public_html
ErrorLog /var/log/virtualmin/${DOM}_error_log
CustomLog /var/log/virtualmin/${DOM}_access_log combined
DirectoryIndex index.html index.htm index.php index.php4 index.php5

<Directory ${HOME}/public_html>
Options -Indexes IncludesNOEXEC FollowSymLinks ExecCGI
allow from all
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper ${HOME}/fcgi-bin/php5.fcgi .php
</Directory>

<Directory ${HOME}/cgi-bin>
AddHandler cgi-script cgi
allow from all
</Directory>

Pa kliknite na Save.

I to je to. Sada će se PHP fajlovi izvršavati preko suEXEC što znači da fajlovi koje uplodujete preko PHP skripti unutar nekog CMS-a, recimo, moći biti promenjeni ili obrisani ukoliko se ulogujete preko FTP ili SSH.

Važno je samo zapamtiti da PHP fajlovi i wrapper skripta ne smeju biti world/grou writable. Ukoliko nešto ne bude u redu, pogledati u /var/log/apache2/suexec.log.

Instaliranje PHP-GTK na Ubuntu 9.04

PHP-GTK je ekstenzija za PHP programski jezik koja implementira GTK toolkit. Ukratko, služi da u PHP-u pravimo samostalne grafičke aplikacije.

Ovde je opisana instalacije PHP-GTK 2.0.1 na Ubuntu 9.04 operativni sistem. Paket se ne nalazi u repozitoriji koja bi omogućila brzo i jednostavno instaliranje, već se mora kompajlirati iz izvornog koda.

Prvo instalirajte sve pakete potrebne za kompajliranje:

sudo apt-get install m4 gawk build-essential

PHP-GTK se može skinuti ovde, zatim raspakujte skinutu arhivu:

tar xzf php-gtk-2.0.1.tar.gz

PHP paket trenutno ima bag, te se pre kompajliranja mora napraviti ovaj trik:

cd /usr/share/aclocal
cp libtool.m4 libtool-orig.m4
cat lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 >> libtool.m4

Dalje ste spremni za kompajliranje po uputstvu sa PHP-GTK sajta. Ukratko:

./buildconf
./configure
make
sudo make install

I ne zaboravite da dodate sledeću liniju u /etc/php5/cli/php.ini:

extension=php_gtk2.so

To je to.

Jedinstveni matični broj građanina

JMBG je broj koji je dat svim građanima SFRJ, uveden je 1976. godine, a ostao je u upotrebi u svim državama koje su nastale raspadom SFRJ.

Ukoliko treba da radite sa JMBG brojem, ove informacije će vam pomoći.

Broj je napravljen od 13 cifara u formi „DD MM GGG RR BBB K“ (bez belih mesta), gde su:

DD – dan rođenja

MM – mesec rođenja

GGG – zadnje tri cifre godine rođenja

RR – politički region rođenja (za građane rođene pre 1976. godine politički region gde su trenutno živeli)

* 00-09 – stranci koji su dobili SFRJ državljanstvo
* 10-19 – Bosna i Hercegovina (10 - Banja Luka, 17 - Sarajevo)
* 20-29 – Crna Gora
* 30-39 – Hrvatska (33 - Zagreb)
* 40-49 – Makedonija (45 - Skoplje)
* 50-59 – Slovenija ( 50 - Ljubljana )
* 60-69 – (Neupotrebljeno iz nepoznatog razloga)
* 70-79 – Uža Srbija (71 - Beograd)
* 80-89 – Autonomna Pokrajina Vojvodina (80 - Novi Sad)
* 90-99 – Autonomna Pokrajina Kosovo i Metohija

BBB – jedinstveni broj

* 000-499 – muški
* 500-999 – ženski

Što se tiče K, kontrolnog broja, važi sledeće pravilo:

Ako je JMBG napisan u formatu ABCDEFGHIJKLM onda je:

M = 11 - ( 7*(A+G) + 6*(B+H) + 5*(C+I) + 4*(D+J) + 3*(E+K) + 2*(F+L) ) / 11

Tj. sabrati 1. i 7., 2. i 8., 3. i 9., 4. i 10., 5. i 11., te 6. i 12. broj matičnog broja. Dobijenih 6 suma pomnožiti sa 7, 6, 5, 4, 3 odn. 2 i sabrati dobijene umnožke. Taj broj podeliti sa 11 i ostatak tog deljenja oduzeti od 11.

Evo i jedne PHP funkcije koja radi upravo to, proverava kontrolnu cifru:

function proveri_jmbg($jmbg) {
  // jmbg je uvek broj
  if (!is_numeric($jmbg)) return false;
  // dugacak je 13 brojeva
  if (strlen($jmbg) != 13) return false;
  $b1 = (int)$jmbg[0];
  $b2 = (int)$jmbg[1];
  $b3 = (int)$jmbg[2];
  $b4 = (int)$jmbg[3];
  $b5 = (int)$jmbg[4];
  $b6 = (int)$jmbg[5];
  $b7 = (int)$jmbg[6];
  $b8 = (int)$jmbg[7];
  $b9 = (int)$jmbg[8];
  $b10 = (int)$jmbg[9];
  $b11 = (int)$jmbg[10];
  $b12 = (int)$jmbg[11];
  $b13 = (int)$jmbg[12];
  $orig = 7*($b1+$b7) + 6*($b2+$b8) + 5*($b3+$b9) + 4*($b4+$b10) + 3*($b5+$b11) + 2*($b6+$b12);
  $control = 11 - ( $orig - (11*floor($orig / 11)));
  if ($control != $b13) return false;
  return true;
}

Kako naučiti PHP

A još na sprskom jeziku?

Rešenje nam je dala programerska firma AlefBrain u vidu kompletne dokumentacije za učenje PHP programerskog jezika. Evo šta kažu zašto i kako:

"Posle dva PHP treninga odrzana uzivo u Kragujevcu, odlucili smo da kompletan materijal sa tih dogadjaja postavimo na web kako bi smo Internet programiranje priblizili sto vecem broju ljudi. Slobodno download-ujte lekcije u PDF formatu, delite ih sa svojim prijateljima i ucite zajedno. Kada postanete Internet programeri, javite se, mozda imamo posao za vas."

Syndicate content