Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pomoc naprednom pocetniku,tj. preporuka neke knjige

[es] :: PHP :: pomoc naprednom pocetniku,tj. preporuka neke knjige

Strane: 1 2 3 4

[ Pregleda: 17302 | Odgovora: 65 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

amitkic
student
zvechan

Član broj: 186610
Poruke: 42
82.114.95.*



Profil

icon pomoc naprednom pocetniku,tj. preporuka neke knjige26.12.2008. u 01:05 - pre 186 meseci
Naucio sam html i css. Naucio osnove PHP i MYSQL, ono sto mi treba je preporuka neke knjige, moze i na engleskom, o samom postupku pisanja neke web aplikacije. Znaci od pocetka pa do kraja pravljenja neke aplikacije, da na primer opisuje sam raspored foldera, pisanje klasa, funkcija itd., nadam se da ste razumeli kakva mi knjiga treba.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.net.upc.cz.



+2 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige26.12.2008. u 17:02 - pre 186 meseci
Ako si vec naucio sve osnove zasto ne pocnes sam da pravis, tako ces najbolje da naucis.
Ako zelis, "uz dopustenje admina", mozemo da iskoristimo ovu temu da napravimo jedan sajt od pocetka do kraja :)
Znaci da definisemo sve sto je potrebno i da sve napravimo ovde.
Najbolje da sve bude iz naseg rukava, pa da posle iskoristimo vec postojece klase da unapredimo aplikaciju.
Sta mislis o tome?

---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige26.12.2008. u 22:30 - pre 186 meseci
Ovo nije bas za advanced PHP...

Generalno mozes da preuzmes neku od popularnih OpenSource aplikacija i da analiziras kod da vidis kako se snalazis i primenis neke od tih principa, takodje moze da se pozabavis ucenjem ili analizom nekog frejmworka za PHP.

Ova knjiga nije bas za PHP ali ti moze koristiti ako te zanima web:

Software Engineering for Modern Web Applications: Methodologies and Technologies,
Daniel M. Brandon


Takodje (nisam je citao ali sam pregledao i deluje ok za to sto ti treba):

Advanced PHP Programming - George Schlossnagle

U svakom slucaju Borisova ideja je ok i mozete tako nesto da radite...
 
Odgovor na temu

amitkic
student
zvechan

Član broj: 186610
Poruke: 42
82.114.95.*



Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige27.12.2008. u 01:30 - pre 186 meseci
sto se tice knjiga nabavio sam :
http://www.apress.com/book/view/1590599063
http://www.manning.com/reiersol/
http://www.apress.com/book/view/1590599098
http://www.amazon.com/Object-O...-Techniques-Code/dp/1593270771

a evo kod koji sam danas napravio za registracionu formu, koji radi, ali treba da se sredi pa recite sta treba da uradim ili gde gresim
Prikačeni fajlovi
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
91.148.79.*

Sajt: norway.dakipro.com


+190 Profil

icon Organizacija strukture sajta27.12.2008. u 11:11 - pre 186 meseci
evo nekoliko principa organizacije projekta sa kojima sam se susretao i koji su mi ok. Sa nekima i radim svakodnevno.
Potpuno modularni sistem
Code:

/admin/index.php      --admin specific logika
/class/                    --mesto za generalne klase, mailere, adodb, smarty, seo, config, validacija...

/modules/               --mesto gde svaki modul drzi svoje fajlove, tako da se lako dodaju/brisu moduli, samo se ceo folder doda

//pojedinacni moduli:
/modules/banner/admin/index.php  --admin logika za taj modul
/modules/banner/class              --objekti koji cine taj modul, handleri za objekte modula
/modules/banner/templates        --templejti module, public i admin
/modules/banner/images            --slike koje taj module koristi, ikonica za admin meni, neke specificne za public
/modules/banner/css                
/modules/banner/translations      --prevodi labela modula
/modules/banner/js                   --specificni js za taj modul, 
/modules/banner/sql                  --sql za instalaciju i deinstalaciju modula
/modules/baner/index.php          --public logika modula


/themes/           --teme celog sajta

/uploads/ime_modula                  --svi uploadi kroz aplikaciju

/scripts                  --js i css generalnog dela

/config.php

index.php     --public related logika



drugi inspirisan zend frameworkom koji je malo manje modularan po strukturi, jer su svi moduli dinamicki kontrollisani iz baze. Imaju svoje prednosti (brzinu) i imaju ogranicenja po neka, jer svi koriste iste resurse pa je malo tricki menjati nesto. naravno, posto nasledjuju generalni objekat, samo se dopise metoda i svi moduli pice kako njima odgovara.
Code:

/www/index.php       --folder kome se pristupa iz browsera, svi ostali fajllovi su skriveni u folderu ispod www root-a
/www/scripts/         --svi jsovi, editori i css fajlovi sajta, podfolder po temama
/logic/          admin.php i public.php        --specificna logika za admin ipublic
/logic/admin/  (/public/)       --svi kontroler fajlovi za logiku sajta (tu se ustvari pozivaju metode objekata, recimo users_log.php, category_log.php)
/class/           --sve klase koje se koriste na sajtu
/templates/    --svi templejti sajta, uglavnom imenovani po modulima, pod folder sa nazivom teme


Gornji princip instalira odredjeni modul veoma lako, samo se copy-paste folder iz repository, kroz superadmin se instalira i poveze se menijima, a donji princip ne moze tek tako da instalira nov modul, vise se menja po bazi recimo nego po fajlovima, fajlovi se dodaju na puno razlicitih mesta pa je zaista tricky. iako mislim da bi se nakon malo ulaganja u instalciju modula, slicno moze postici i donjim principom.

Takodje je dobra Aleksandrova preporuka, skini neki projekat i vidi kako tamo organizuju to, i tako pici. Mozes procitati i zend framework jer tamo dobro opisuju organizaciju zasto i kako. nemoras da je usvojis, ali ces imati ideju. Naravno, probaj nesto da menjas po kodu, cisto da imas uvid u to kako to zaista radi i gde je sta, sto se funkcionalnosti tice.
A jos bolje bi bilo da nadjes nekog mentora koji ce to da ti objasni uzivo i na nekom primeru ;)
AKo te zanimaju konkretniji delovi aplikacija, ti pisi.


Pogledao sam tvoj kod, i sad pricam o organizaciji.
U oba ova slucaja gore se koristi fuze-in-box metoda, tj sve ide kroz jedan index.php fajl, hvataju se neka podesavanja pa se posle logika grana prema potrebama.
Znaci url koji kaze /index.php?module=blog vodi na taj blog, /index.php?module=blog&section=post_new grana do dela koji prikazuje formu. U tvom slucaju:


index.php

Code:

//uvuci neke config parametre, konekciju na bazu, definisi konstante sajta (napravi neki BASE_PATH, potrazi forum cemu sluzi), naziv, seo, menije, najcesce koriscene funckije itd.

//switch koji odredjuje koja logika sajta je trenutno aktuelna (koji modul se koristi)

switch (get[module]){


//razni casovi, tj moduli
case "kontakt" :
//require  kontakt logika
break;



}



kontakt_log.php
Code:

//neka podesavanja za trenutni modul, seo, selektovani meni, naziv sajta itd

//switch sekcije modula

switch (section){

default:
case "post_form"


//akoje forma submitovana, ubaci je u bazu
if (post-hiddenField==1){
  //znaci forma ima neki hidden field kojim znamo da je forma submitovana
  //obradimo i ubacimo kontakt u bazu ili posaljemo na mail
  //ako je sve ok, redirektujemo na hvala stranicu, ako nesto ne valja, samo pustimo kod dalje koji ce da prikaze formu
}

//izvadis templejt i prikazes ga korisniku. ako nesto ima u postu, prosledis to templejtu, tako da ako je nesto pogresno uneo, naprivmer email format, ostala polja ce mu biti sacuvana


break;



case "hvala_na_kontaktu"
   //prikaze se obavestenje da je forma poslata
break;

}




Ovo je kratko kratko, ako te zanima ovakav pristup ili nesto iz njega, pisi.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.net.upc.cz.



+2 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige27.12.2008. u 11:19 - pre 186 meseci
Hvala Mister_rap
Posto smo dobili zeleno svetlo da napravimo aplikaciju onda je bitno da krenemo iz pocetka.
Baziracemo se na pukoj osnovi bez koriscenja ikakvih sporednih alata.
Kad aplikacija bude gotova, onda ce mo je unaprediti dodatnim alatima i pokazati njihovu moc u odnosu na ono sto smo do tad koristili.

Zadatak:
Napraviti aplikaciju/sajt koji ima dinamicko dodavanje strana, vise jezicku podrsku i administraciju texta i slika koje se nalaze na sajtu.

Redosled pravljenja aplikacije:
1. Analiza sajta i ocena broja sati za pravljenje istog.
2. Izbor alata potrebnih za pravljenje sajta.
3. Postavljanje kostura.
4. Zapocnimo pravljenje klasa a zatim i stranica :)

Rad
1. Analiza sajta
dinamicko dodavanje strana - ovo ce mo realizovati preko baze podataka putem tabele pages.
administracija texta i slika - relaizovati takodje preko baze podataka putem tabele paragraph.
vise jezicka podrska - realizovati preko baze podataka putem tabele languages, i napraviti vezu sa 1-M sa tabelom pages i paragraph.

Broj sati potrebnih za konstrukciju sajta:
Buduci da ce mo pisati iz pocetka (od 0) citavu aplikaciju bez koriscenja ikakvih pomagala bice potrebno dosta vremena da ovo napravimo.
Mnogo vise nego sto se to moze postici sa koriscenjem dodatnih alata.
Recimo da ce nam trebati oko 80 sati da ovako nesto napravimo.


2.Izbora alata
Buduci da ce mo sajt praviti od 0 ovaj korak mozemo da preskocimo.
Iskoristicu ovaj deo da napomenem par stvari koje ce biti osnovne u radu.
Koriscenje engleskog jezika je "a must" :)
Koristicemo phpDocumentator (http://www.phpdoc.org) za komentarisanje.
To su neke osnove koje ce mo koristiti tokom rada.


3. Postavljanje kostura

- cms (ovde ce mo staviti sve sto je potrebno za kreiranje cms sistema)
-- base (osnova u koju ce mo staviti sve klase koje su potrebne da se ucitaju na pocetku)
-- pages (ovde ce mo staviti sve strane koje ce biti koriscene u procesu)
-- tools (folder u kome se nalaze ostali alati potrebni za rad)
- base (osnova u koju ce mo staviti sve klase koje su potrebne da se ucitaju na pocetku)
- pages (ovde ce mo staviti sve strane koje ce biti koriscene u procesu)
- tools (folder u kome se nalaze ostali alati potrebni za rad)
- uploads (cuvanje svih uplodovanih fajlova)
-- users (fajlovi koje ce korinik stavljati)
-- sys (sistemeski fajlovi koje ce mo mi postaviti)


4. Zapocinjanje pravljenja klasa i same aplikacije
Klase potreben za rad
- DB: klasa za kontrolu data base sistema NAPRAVLJENA http://www.elitesecurity.org/t348963-0#2149953
- Session: klasa za kontrolisanje sesije
- UrlHandler: klasa koja ce kontrolisati sve sto se tice url-a.


Za sad ce mo postaviti samo ovo sto je gore navedeno zatim ce mo tokom procesa kreiranja sajta dodavati nove klase i verovatno povecati kostur.
Ovaj post ce biti menjan shodno promenama koje mi budemo pravili. Svaka promena ce biti obelezena drugom bojom i datumom promene.


Za sad toliko od mene a uskoro slede postovi sa osnovnim kodom za gore navedene klase. Ti postovi ce biti takodje menjani kako budu klase rasle, a svaka promena ce biti oznacena bojom i datumom.

[Ovu poruku je menjao b0ris dana 28.12.2008. u 13:03 GMT+1]

[Ovu poruku je menjao b0ris dana 28.12.2008. u 13:03 GMT+1]

[Ovu poruku je menjao b0ris dana 28.12.2008. u 13:03 GMT+1]

[Ovu poruku je menjao b0ris dana 28.12.2008. u 13:04 GMT+1]

[Ovu poruku je menjao b0ris dana 28.12.2008. u 13:05 GMT+1]
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.net.upc.cz.



+2 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige27.12.2008. u 11:26 - pre 186 meseci
Cool objasnjenje pristupa kreiranju sajta. Mislim da bi bilo bolje da objasnimo sve od pocetka i napisemo ovde, buduci da to nama nije neki problem.
Sve sto vidim na forumu je postovanje linkova knjiga i govorkanje kako je google najbolji prijatelj.
Ajde da napisemo sve od pocetka sa detaljnim objasnjenima i na taj nacin pomognemo svima a i prosirimo nase znanje.
Ako preterujem sa ovim molim vas da mi na to skrenete paznju.
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.net.upc.cz.



+2 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige28.12.2008. u 12:02 - pre 186 meseci
DB klasa

Code:

<?php
/**
* Class for DB management. In here we will create connection to our DB and execute queries. 
* This is just basic class which will be changed later. All errors will be handled later.
* @version 0.1 beta
* @author www.elitesecurity.org (written by member b0ris)
*/

class DB{
    /**
    * Connection parameter which holdes information about host account
    * @access private
    * @name host
    */
    private $db_host = "";
    
    /**
    * Connection parameter which holdes information about password
    * @access private
    * @name password
    */
    private $db_password = "";
    
    /**
    * Connection parameter which holdes information about data base to which we are going to connect.
    * @access private
    * @name database
    */
    private $db_database = "";
    
    /**
    * Connection parameter which holdes user information.
    * @access private
    * @name user
    */
    private $db_user = "";
    
    /**
    * MYSQL Link indentifier
    * @access private
    * @name linkId
    */
    private $db_linkId = 0;    
                   
    /**
    * In here we will set up inital settings for database and connect to our DB
    * @param string host host to define
    * @param string user username used to connect to database
    * @param password password used for connection
    * @param databse database name used for connection
    * @return bool|MYSQL_Link returns bool if something went wrong or MYSQL Link if everything went ok 
    */
    function DB($host, $user, $password, $database){
      /**
      * Setting up parameters
      */
      $this->db_host = $host;
      $this->db_user = $user;
      $this->db_password = $password;
      $this->db_database = $database;
      
      /**
      * Establishing connection
      */
      return $this->connect();   
    }
    
    /**
    * Creating mysql connection.
    * @return bool connection established or not
    */
    function connect(){
      /**
      * Checking if everything is filled up so we can establish connection.
      * We can also use empty() function in this if statment.
      */
      if(($this->db_host != "") && ($this->db_user != "") &&  ($this->db_password != "") && ($this->db_database != "")){
        $this->db_linkId = mysql_connect($this->db_host, $this->db_user, $this->db_password);
        if(!$this->db_linkId){
          /**
          * Handle error.
          */
          return false;
        }else{
          if(!@mysql_selectdb($this->db_database, $this->db_link)){
            /**
            * Handle error.
            */
            return false;  
          }
        }
        return true;
      }else return false;
    }
    
    /**
    * Executing query.
    * @param string query Query for mysql
    * @return mysql_result|die_msg Return result of query or error message 
    */
    function query($query){
        return mysql_query($query, $this->db_linkId) or die(mysql_error());        
    }
    
    /**
    * Executing query.
    * @param string query Query for mysql
    * @return array Returns result of query in array
    */
    function getrows($query){
      /**
      * Query result array
      */
      $myRes = array();
      /**
      * Running thorough results and storing them in our result array
      */
      while($row = mysql_fetch_array($this->query($query))){
        $myRes[] = $row;
      }  
      return $myRes;
    }
}  
?>

---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

MilanRS
BL, R. Srpska, Srbija

Član broj: 94839
Poruke: 95
62.68.98.*

Sajt: www.rtvportal.com


+1 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige05.01.2009. u 17:54 - pre 186 meseci
Hajde izmijeni svoj post.
Ono "ce mo" spoji, izgleda mnogo ruzno.

Ja ću
Ti ćeš
On će.
Mi ćemo.
Vi ćete.
Oni će.

Kada bi bilo ispravno "će mo", onda bi bilo i "će š", a ne postoje riječi "mo" i "š".

S poštovanjem.
 
Odgovor na temu

centaur
Beograd

Član broj: 65691
Poruke: 407
94.189.236.*

ICQ: 249678363
Sajt: www.pavko.net


+24 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige05.01.2009. u 20:21 - pre 186 meseci
@b0ris
Svaka čast ako nađeš vremena i isteraš ovo što si počeo do kraja.
Sigurno da bi bilo veoma korisno svima koji počinju da rade PHP i OOP.

Mala sugestija:
Ako se već ovo radi u advanced PHP forumu, bilo bi korisno upotrebiti i neke, da kažem advanced, mogućnosti OOP.
Ova klasa za DB može da implementira singleton design pattern (dobra praksa mada ne i neophodno) i da ima statičke metode (omogućava se pozivanje metoda iz bilo kog opsega bez ikakve "gimnastike").
Takođe, bilo bi lepo da ima i metodu za eskejpovanje promenjivih koje se upisuju u bazu kako bi sve bilo na jednom mestu.

U svakom slučaju, respect i za ideju i za volju za da se ideja sprovede u delo :)






Powered by Slackware 13
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.net.upc.cz.



+2 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige06.01.2009. u 11:26 - pre 186 meseci
@MilanRS Znam za "ce mo" ali ne mogu da editujem poruke koje su tu duze od 48h :|. U svakom slucaju hvala na zamerci.
@centaur Planiram da ubacim i singletone objekte. Mislio sam prvo da napravim najosnovniji model a da posle to nadogradimo, kako bi ljudi mogli da vide razliku. Odradi cu do kraja posto mi je muka da vidim kako neko nesto zapocinje a ne zavrsava. Mozda malo potraje, posto imam i drugih obaveza, ali cu isterati do kraja.

Sve sto vidite da sam pogresio i lose napisao molim vas da mi skrenete paznju. Jos jednom hvala MilanRS na zamerci, zao mi je sto ne mogu to da ispravim.
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.net.upc.cz.



+2 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige06.01.2009. u 11:58 - pre 186 meseci
Session klasa
Code:

<?php
/**
* Class for session management. It will be used to put in and take out values from session.
* This is just basic class which will be changed later. All errors will be handled later.
* @version 0.1 beta
* @author www.elitesecurity.org (written by member b0ris)
*/

class Session{
    
    /**
    * @desc To be defined later.
    */
    function Session(){
    }
    
    /**
    * @desc Places value under desired name into session. This will be an array.
    * @param string name Name under which value will be remembered.
    * @param string|int value Value which will be saved under name.
    */
    function addValue($name, $value){
        $_SESSION[$name][] = $value;
    }
    
    /**
    * @desc Returns value or array, depending on how many values are stacked under same name.
    * If name does not exist program will be terminated.
    * @param strin name Name under which value or values are stacked.
    * @return string|int|array
    */
    function getValue($name){
        /**
        * Does given name exists?
        */
        if(isset($_SESSION[$name])){
            /**
            * If there is only one value in array we will return it. If more we will return whole array.
            */
            if(count($_SESSION[$name]) == 1) return $_SESSION[$name][0];
            else return $_SESSION[$name];
        }
        /**
        * No! We should handle an error here.
        */
        else return false;
    }
    
    /**
    * @desc This method will remove all the values under given name.
    */
    function removeValue($name){
        unset($_SESSION[$name]);
    }
    
    /**
    * @desc This method will start up session. It should only be called after all the classes are loaded, and before any output begins.
    */
    function startSession(){
        session_start();
    }
}
?>


Izmena umesto linije "else exit(1);" postavljena je "else return false;"

[Ovu poruku je menjao b0ris dana 07.01.2009. u 17:22 GMT+1]
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
91.148.79.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige06.01.2009. u 12:56 - pre 186 meseci
jedno kratko, zasto se cuva niz za vrednosti po defaultu?
Nekako bi mi bilo logicnije da ako zelis niz u nekoj vrednosti, njoj i dodelis niz, ponajvise zbog kljuceva niza i kasnijem pristupu. Recimo

$_SESSION['user_details']['username']. Ovo niti se moze dodeliti u sesiju niti iz nje uzeti ovako, ili mozda gresim?

Iskreno, nikad nisam koristio klasu za rad sa sesijama pa mozda ne vidim celu sliku odmah, nekako mi dodje nepotrebno. Koristim samo getSESSION($value, $default) koji proverava isset() i vrati default ako je prazno polje koje trazim, inace nista naprednije. Jedino sto vidim kao korisno ako kasnije premestis sesije u bazu ili u fajl pa rucno managujes to, ali me opet buni predjasnji pristup dodeli promenjivih
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
91.148.79.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige06.01.2009. u 13:04 - pre 186 meseci
Takodje, razmisli da u getValue ne ide bas na kraju ako vrednost ne postoji

else exit(1);

, mozda bolje da vrati false ili drugi parametar kao defaultnu vrednost, ali ne bas da cela aplikacija stane jer korisnik nema nesto setovano u sesiji. Ili mozda opet nesto ne pratim kao i malopre?
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.net.upc.cz.



+2 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige07.01.2009. u 08:47 - pre 186 meseci
Pisem klase iz glave.
Upotreba session klase je nista drugo do dobra praksa, pritom se moze pokazati kao korisna kasnije. Moze se prosiriti da radi i sa cookie. Onda imas i dalje jednu metodu za dodavanje promenljive i ne mora da razmisljas o tome.
Sto se tice dodavanja promenljive tu si upravu. Mogao bi malo vise da razmislim o tome i napravim nesto malo fleksibilnije.
exit(1) sam stavio jer trenutno nema nikakve obrade greski, to sam mislio da dodam naknadno.
Mada sad kad razmislim, bolji je tvoj predlog da se vrati false nego da ubijam izvrsavanje tu. Moze da dodje do toga da korisniku istekne sesija :|

Hvala na komentarima. Promisli cu o novom dodavanju vrednosti pa cu to da izmenim.



---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
89.216.215.*



+2 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige18.01.2009. u 13:09 - pre 185 meseci
URL handler

Code:

<?php
/**
* Class for url management. This class will take all the parameters and give them back in one unified way.
* Functions which will process all $_SERVER data should be created here.
* This is just basic class which will be changed later. All errors will be handled later.
* @version 0.1 beta
* @author www.elitesecurity.org (written by member b0ris)
*/

class urlHandler{

    /**
    * @desc Contains all POST values in an array.
    * @access private
    * @name post_vars 
    */
    private $post_vars;
    
    /**
    * @desc Contains all GET values in an array.
    * @access private
    * @name get_vars 
    */
    private $get_vars;
    
    /**
    * @desc In here we will catch all the post and get variables and process them. 
    * We will add this checkups when we create security class.
    */
    function __construct(){
    }
    
    /**
    * @desc Will be processed upon creation of security class.
    */
    private function processGet(){
    }
    
    /**
    * @desc Will be processed upon creation of security class.
    */
    private function processPost(){
    }

    /**
    * @desc Returns value this regarding the method. 
    * If values have the same name, then second parameter can be used to define a method.
    * @param string name Takes name of the value
    * @param post|get method Type of parameter which you want to take. Can be Post or Get.
    * @return string
    */
    function getValue($name, $method=""){
        if(!$method){
          if(isset($_POST[$name])) return $_POST[$name];
          if(isset($_GET[$name])) return $_GET[$name];
        }
        else{
          $var = '_'.$method;
          if(isset($$var[$name])) return $$var[$name];
        }
    }
    
    /**
    * @desc Process domain name and returns domain name.
    * @return string Domain name
    */
    function getDomainName(){
        return $_SERVER['HTTP_HOST'];
    }
    
    /**
    * @desc Used to create url links. To be build up more later. 
    * For now it is good to use it because all links will be created through this function, so when we do some changes to url
    * we will only do it in this function.
    * @param string page_name Name of the page.
    * @return string Url 
    */
    function createUrl($page_name){
        return $page_name;
    }
}
?>


---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

amitkic
student
zvechan

Član broj: 186610
Poruke: 42
82.114.95.*



Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige27.03.2009. u 21:04 - pre 183 meseci
e a bas smo dobro poceli i vi stadoste, ajde nastavak, posto je tema veoma interesatna i za ostale korisnike.
Znaci imamo neke klase, ajmo jos neke.

Hvala za dosadasnje objasnjenje i klase.
 
Odgovor na temu

iizuzetan

Član broj: 186478
Poruke: 375
*.adsl.verat.net.



+16 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige29.03.2009. u 22:00 - pre 183 meseci
Ja kad sam naucio koliko toliko PHP i Html pre nekih 3 meseca, i kad sam hteo da krenem sa izradom sajta isto sam se susreo sa tim problemom kako primeniti znanje. U globalu ja sam znao kako napraviti PHP "web mehaniku i dinamiku" sajta ali nisam odmah skontao kako da povezem to sa "web statikom". Najprostije receno kako PRIKAZATI PHP rezultate u HTML-u.

Citao sam nesto malo o tome i znam da postoje nekoliko pristupa, ali nigde nije dato detaljno objašnjenje bilo kog pristupa (ili bar ja nisam uspeo da naletim na tako nešto), i zato sam krenuo sam da se snalazim.

Kao prvo, nisam krenuo odmah u izradu ovog sajta koga sad imam (zbog koga sam i krenuo da ucima PHP) vec sam krenuo da izradjujem najprostiji nazovimo to sajtom, kako bi skontao i uvezbao mehanizam prikaza. Hocu da kazem da pocetnik u "gradjevinarstvu" ne treba odma da počne da gradi "nebodere", vec neka sagradi najpre "ŠUPU".

Naravno ja sad nemam namere da pišem taj mini sajt ali cu da ga opišem kakav je bio.

Pošto sam pre svega toga izradio sve delove vezane za registraciju, logovanje i ostalo, ubacio sam registraciju. Želeo sam da napravim najprostije da se moze registrovati i ulogovati, i da taj registrovani "napiše - objavi" nešto online na sajtu. E sad kad napise kroz html formu to nesto, da mu se kreira dinamicki dugme na sajtu, i kad se klikne na to dugme da se na sredini strane ispise taj njegov tekst. Znaci to je ceo sajt. Medjutim kad sam sve to napravio i kad sam poceo da ubacujem razne tekstove ali kroz sajt, kao sto mi svi ubacujemo ove teme ovde na forumu, shvatio sam principe dinamičkih sajtova.

E sad da pokušam da objasnim taj princip.

Zapravo PHP je glavan na sajtu i pokretac svega. To znači da moj sajt nema ni jedan fajl koji se zavrsava ekstenzijom .htm !!! Šta to znači? To znači da su svi HTML kodovi zapravo smešteni kao stringovi u PHP promenjljivima !!!!!!! Drugo, moje cele html tabele, ili ti delovi stranica su smestene u funkcijama. Na primer jedna funkcija takva se zove clanovidugme(). Nadam se da i pomoću imena funkcije otprilike shvatate sta hocu da objasnim. I kad pozivam tu funkciju zapravo to ne znaci direktno prikazivanje strane na sajtu vec ja funkciji prosledjujem promenjljive koje sadrže rezultate utkane kao html kod ali kroz string. I ta indeks funckcija te promenjljive zapravo postavi na ona mesta u html tabeli gde hocu da vidim te rezultate. Tu promenjljivu koju je vratila funkcija ja dodajem na primer kao parametra za prikaz u novoj funkciji koja prikazuje na primer index stranu ovako:

Code:

echo indekstrana($dugmeclanovi, $tabelasve, $korisnikid);exit;


A jedna promenjljiva u koja sadrži HTML kodove kao string izgleda ovako:

Code:

$navigacija='  <table cellpadding="0" cellspacing="0" width="657" height="41">
                       <tr>
             <td valign="middle">&nbsp;</td>
             <td bgcolor="#00FFFF"><p align="center"><b><font face="Arial">Strane:</font></b></td>
             <td bgcolor="#00FFFF">&nbsp;</td>
             <td bgcolor="#00FFFF" height="28"><p align="left">'.$s.'</td>
        </tr>

                <tr>
             <td width="422"></td>
             <td width="81"></td>
             <td width="13"></td>
             <td width="141" height="13"></td>
        </tr>
                    </table>
                    </p><table cellpadding="0" cellspacing="0" width="669" height="120"></table></p>
                 ';  


Promenjljiva $s sadrži neke podatke koje ubacujem u HTML kod a sve to zajedno "nosi" promenjljiva $navigacia, koju posle na primer mogu proslediti nekoj funkciji koja ce i tu promenjljivu utkati u neki html koga sadrži neka promenjljiva za prikaz, na primer za prikaz cele jedne stranice sajta.

Naravno neko ce reci da je ovakvo programiranje uz pomoc funkcija staromodno, neekonomicno i sta ti ja znam kakvo sve ali licno mislim da je pocetnicima najbolje da prvo shvate kroz funkcija kako sve funkcionise. Da naprave neke mini sajtove da bi videli kako komponovati sajtove. Kasnije u njima da dodaju malo dizajna, pa da krenu da dodaju jos delove sajta i malo sve da usložnjavaju itd itd. Pa tek kad steknu rutinu sa web objektima tek onda da ih grupisu u klase i da objektno programiraju. Jer po meni glavna stvar u objektnom programiranju je da se najpre dobro shvati i razbistri u glavi sta su to objekti, kako prepoznati slicne objekte i grupisati ih itd itd.

[Ovu poruku je menjao iizuzetan dana 30.03.2009. u 00:54 GMT+1]
 
Odgovor na temu

Zmaj
Predrag Krstić
web developer
Zrenjanin

Član broj: 1035
Poruke: 382

Sajt: https://pkrstic.wordpress..


+4 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige30.03.2009. u 09:30 - pre 183 meseci
Citat:
iizuzetan: Ja kad sam naucio koliko toliko PHP i Html pre nekih 3 meseca

vec na nekoliko temo vidim da si sklon da delis savete, nakon toliko meseci iskustva. Ovde na forumu ima ljudi koji se godinama bave PHPom pa ne dele tako olako savete. Ovo ti kazem cisto dobronamerno jer nemas dosat iskustva i prakse da bi mogao bilo koga da savetujes.

Citat:
Zapravo PHP je glavan na sajtu i pokretac svega. To znači da moj sajt nema ni jedan fajl koji se zavrsava ekstenzijom .htm !!! Šta to znači? To znači da su svi HTML kodovi zapravo smešteni kao stringovi u PHP promenjljivima !!!!!!!

Da si malo citao po internetu onda bi nasao da je ovo usporava izvrsenje stranice. Zato je dobra praksa MVC (potrazi po forumu ovaj pojam), gde ces u view delu staviti sav kod koji se tice ispisa i to van promenljivih. Drugo ovo je ekstremno losa praksa da imas bilo kakav html kod u tvojim funkcijama jer kad budes resio da menjas izgleda tvog sajta moraces da menjas funkcije.

Citat:
Na primer jedna funkcija takva se zove clanovidugme(). Nadam se da i pomoću imena funkcije otprilike shvatate sta hocu da objasnim.

Ovo ti je isto losa praksa, da promenljive i funkcije krstis na nasem jeziku, razlog sto ima mnogo padeza, Zato je najbolje koristi engleski i neko drugi ce moci da menja tvoj kasnije, makar taj neko ziveo u kini.

Citat:
Naravno neko ce reci da je ovakvo programiranje uz pomoc funkcija staromodno, neekonomicno i sta ti ja znam kakvo sve ali licno mislim da je pocetnicima najbolje da prvo shvate kroz funkcija kako sve funkcionise. Da naprave neke mini sajtove da bi videli kako komponovati sajtove. Kasnije u njima da dodaju malo dizajna, pa da krenu da dodaju jos delove sajta i malo sve da usložnjavaju itd itd.

Kao sto sam rekao, nemoj davati savete pocetnicima o tome kako da urade neku stvar, pomozi im tako sto ces odgovoriti na pitanje kao da rese problem, neki sa kojim si se susreo, a ne da pocinjes temu da bi nekog nesto naucio ili kao sto je ovde slucaj da prekidas temu u kojoj ljudi daju korisne savete. Bolje se ne javljai citaj sta se ovde pise.

Citat:
Pa tek kad steknu rutinu sa web objektima tek onda da ih grupisu u klase i da objektno programiraju. Jer po meni glavna stvar u objektnom programiranju je da se najpre dobro shvati i razbistri u glavi sta su to objekti, kako prepoznati slicne objekte i grupisati ih itd itd.

Da bi namestio dobar sajt nemoras da znas objektno programiranje, a ni da i h programiras objektno. Iza sebe imam nekoliko desetina sajtova koja sam odradio bez objekata, i dalje mogu da ih radim tako. PRoblem je sto kod takvih sajtova, kod se se razvija vremenom i vec sam poceo da gubim nit sta je na kom sajtu uradjeno bolje, pa kad krecem nov projekat da se to kopira u nov na jednom mestu. Iz tog razloga sam presao na CodeIgnitier, php framework koji je lagan i brz za ucenje, storen za male projekte. Koga zali da se bije sa teskom artiljerijom tu je ZendFramework, koji ima mnogo tutorijala po netu ali relativno glomazan, sto vraca svojim mogucnostima.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: pomoc naprednom pocetniku,tj. preporuka neke knjige30.03.2009. u 09:50 - pre 183 meseci
Citat:
iizuzetan:E sad da pokušam da objasnim taj princip.

Taj princip, odnosno, stil pisanja web aplikacije još i može da prođe na nekim manjim ili one-man projektima. A zamisli samo kad bi trebao da radiš u nekom timu ljudi, ili ne mora to, nego samo pomisli šta bi sve morao da uradiš kad bi hteo da promeniš izgled sajta, recimo da promeniš templejt... Ja ne smem ni da pomislim.

Danas se već uveliko koristi tkz. troslojna arhitektura pri izradi sajtova. Evo Predrag ti je spomenuo MVC (Model View Controler), na kome je zasnovana većina Framework-ova za PHP. To ne znači da ti sad moraš da koristiš neki Framework, ali bi bar trebao da imaš u vidu to razdvajanje slojeva pri kreiranju nekog sajta. U tom cilju, možda bi bilo dobro da za početak probaš Smarty, najpoznatiji (po mom mišljenju i najbolji ) template engine za PHP. Probaj recimo da taj sajt koji si spomenuo u poruci odradiš sa Smarty-jem, i koristeći taj prinicip razdavajanja logičkog i prezentacionog sloja. Videćeš koliko će kod da ti bude mnogo "čistiji", jasniji i lakši za održavanje. A kad jednom probaš Smarty, verovatno više nikad nećeš moći bez njega. Tako je barem bilo u mom slučaju.

A i naravno, OOP - bez toga ništa...
 
Odgovor na temu

[es] :: PHP :: pomoc naprednom pocetniku,tj. preporuka neke knjige

Strane: 1 2 3 4

[ Pregleda: 17302 | Odgovora: 65 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.