PHP casovi...

1

PHP casovi...

offline
  • Pridružio: 18 Mar 2005
  • Poruke: 17

Hm pa ja bih krenuo samo ne znam odakle da pocnem da li u ovim lekcijama treba da se pise od samog pocetka PHP-a, odnosno da li treba poceti sa: pocetnim, srednjim ili naprednim lekcijama?
Ali ajde ovako da preskocimo recimo instalaciju PHP-a, MySql-a i Apache-a, jer oni koji zele da rade sa njim trebalo bi da znaju da PHP ne moze da radi bez instaliranog servera i bez neophodne baze podataka! Tako da bi se za njegovo instaliranje mozda trebao otvoriti neki drugi topic, jer je PHP instalacija prilicno slozen proces i nimalo ne lici na instaliranje nekih drugih programa.
Predpostavimo da na svojim masinama vec imate instalirana pomenuta 3 programa pocnimo sa prvom lekcijom:

Jedna od najcescih primena serverskih skript jezika jeste obrada HTML obrazaca. Napravimo narudzbenicu za firmu Bobovi auto delovi. Da smo mi taj Bob i zelimo da izracunamo sta je neko narucio, kolika je ukupna cena te robe i koliki je iznos poreza na tu robu? Prvo sto radimo je pravljenje order forme. Deo ovog HTML koda bi bio sledeci:

<form action="processorder.php" method=post>
<table border=0>
<tr bgcolor=#cccccc>
<td width=150>Item</td>
<td width=15>Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td align="center"><input type="text" name="tireqty" size="3"
maxlength="3"></td>
</tr>
<tr>
<td>Oil</td>
<td align="center"><input type="text" name="oilqty" size="3" maxlength="3"></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align="center"><input type="text" name="sparkqty" size="3"
maxlength="3"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Submit Order"></td>
</tr>
</table>
</form>
Napravite ovo sacuvajte dokument kao orderform.html i pogledajte kako izgleda u svojim web browserima.

Prvo sto treba uociti da je u atributu ACTION oznake obrasca naveden PHP skript koji ce obraditi porudzbinu (kasnije cemo ga i napisati). Vrednost atributa ACTION je URL koji ce biti ucitan kada korisnik pritisne dugme "submit". Podaci koje je korisnik uneo u obrazac bice poslati stranici na toj adresi metodom zadatom u atributu METHOD. To ce biti metoda GET (dodaje podatke na kraj URL-a) ili metoda POST (podaci se salju zasebno)
Sledece na cega treba obratiti paznju jesu imena polja: tireqty, oilqty i sparqty. To su imena koja cete ponovo upotrebiti u PHP skriptu. Vazno je da poljima u obrascu date neka imena sa smislom da bi ih se lakse setili. Programi za Web dizajn cesto daju imena poljima field1, field2 itd... i to se tesko pamti. Ovo je vazno je cete zbog ovoga lakse programirati

Obrada obrasca:

Da bi sada obradili ovaj obrazac pravimo skript pomenut u atributu ACTION oznake FORM. Ovaj skript nazvacemo processorder.php
Kod bi bio sledeci:

<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
</body>
</html>

Ovo je jos uvek samo obican HTML. Sledi UGRADNJA PHP-a U HTML ispod naslova <h2> u datoteci dodajte sledece redove:

<?php
echo '<p>Order processed.</p>';
?>

Snimite ovu datoteku i pogledajte je u citacu weba, ispunite obrazac i pritisnite dugme "Submit order" trebalo bi da na stranici bude ispisano:

Bob's Auto Parts
Order Results
Order processed

Ako zelite pogledajte izvorni kod te stranice i videcete da se PHP naredbe ne vide zato sto je prevodilac za PHP zamenio naredbe rezultatom. Sto znaci da se iz PHP-a dobija cist HTML koji se moze gledati svakim citacem. Drugim recima, citac ne mora da razume PHP.
Navedeni primer je ukratko pokazao nacin rada serverskih skriptova. PHP je preveden i izvrsen na Web serveru za razliku od JavaScripta i drugih klijentskih jezika koji se izvrsavaju unutar citaca Weba na racunaru korisnika. Ovaj primer sam uzeo zbog onih koji bi trebalo da razumeju kako uopste PHP funkcionise... Ako recimo uzmemo JavaScript on ce na dosta citaca Weba praviti probleme a moze se desiti i da vam kompjuter zbog nekih Java Apleta totalno poblesavi... Meni se cesto desava da ako stranicu gledam na Firefoxu imam problema ako na toj stranici postoji JavaScript a i u poslednje vreme Java Apleti se izbegavaju na stranicama upravo zbog tih problema.

Kod koji se sada nalazi u vasoj datoteci sastoji se od:

- HTML oznaka
- PHP oznaka
- PHP iskaza
- Praznog prostora
Mozemo da dodamo i
-Komentare

Vecinu redova u primeru cini obican HTML kod

Upotreba PHP oznaka:

PHP iz prethodnog primera poceo je sa <?php i zavrsio se sa ?> To je slicno svim HTML oznakama zato sto one sve pocinju znakom manje od (<) i zavrsavaju se znakom vece od (>) Ti znakovi nazivaju se PHP oznakama, koje Web Serveru govore gde PHP pocinje i gde se zavrsava. Tekst izmedju ta dva znaka prevodi se kao PHP kod. Tkst izvan tih znakova prosledjuje se citacu posto predstavlja obican HTML a dok PHP oznake omogucavaju da se izadje iz HTML bloka...
Postoje razliciti tipovi PHP oznaka odnosno 4 stila PHP oznaka.

- XML stil

<?php echo '<p>Order processed.</p>'; ?>

Stil XML se najcesce koristi u verzijama PHP-a 3 i 4. Admin servera ne moze da ga iskljuci. Tako da ce on biti sigurno dostupan na svim serverima. Moze se koristiti sa XML dokumentima. Ako na Web lokaciji koristite XML dokumente koristite taj stil oznaka.

- Kratki stil

<? echo '<p>Order processed.</p>'; ?>

Ovaj stil jeste nesto jednostavniji ali da bi ovaj stil mogli da upotrebljavate potrebno je da u konfiguracijskoj datoteci aktivirate opciju short_tags.

- SCRIPT stil

<script language='php'> echo '<p>Order processed.</p>'; </script>

Ovaj stil oznaka je najduzi i bice vam poznat ako ste koristili JavaScript ili VBScript. Upotrebite ga ako vam program za Web Dizajn pravi probleme sa nekim drugim.

- ASP stil

<% echo '<p>Order processed.</p>'; %>

Ovaj stil oznaka koristi se u jeziku ASP. Za njega isto vazi da ako zelite da ga koristite morate da u konfiguracijskoj datoteci aktivirate opciju asp_tags. Ovaj stil ce dobro doci ako koristite program za pisanje ASP stranica ili vec programirate u ASP-u.

PHP iskazi

PHP iskazi se nalaze izmedju pocetnih i zavrsnih oznaka i odredjuju sta prevodilac treba da radi.
echo '<p>Order processed.</p>';
Rezultat naredbe echo je da stampa (ispisuje) tekst koji joj je prosledjen.

Praznine
Znakovi za razdvajanje poput novih redova, razmaka i tabulatora nazivaju se prazninama. Citaci zanemaruju praznine u HTML-u pa isto tako i PHP.

Komentari
oni su upravo to sto im ime kaze i verovatno ste ih vec vidjali kada ste gledali neki PHP kod. Na primer
/* marko markovic
izmenjen: 15 aprila
skript obradjuje narudzbine.
*/
Viseredni komentari treba da pocinju sa /* i zavrsavaju se sa */
Za komentare u jednom redu koristite stil jezika C++
<% echo '<p>Order processed.</p>'; %> // stampaj narudzbenicu

Dodavanje dinamickog sadrzaja

Pocinimo jednostavnim primerom. Zamenite PHP u datoteci processorder.php sledecim kodom

<?php
echo '<p>Order processed at ';
echo date('H:i, jS F');
echo '</p';
?>

Pogledajte stranicu u citacu.
U ovom kodu koristi se ugradjena funkcija PHP-a date, kojom kupcu saopstavate datum i vreme kada je porudzbina obradjena. Ovo je opsti oblik poziva funkcija. PHP sadrzi bogatu biblioteku funkcija, koje mozete da koristite u svojim Web aplikacijama. Vecinu tih funkcija ili treba proslediti neke podatke, ili one vracaju neke podatke.
Poziv funkciji date('H:i, jS F'); Obratite paznju na to da je tekstualni format datuma koji prosledjujemo funkciji u zagradama. To se zove argument ili parametar funkcije. Argumenti su ulazni podaci na osnovu kojih funkcija daje konkretne izlazne rezultate.
Argument funkcije date je znakovni niz koji predstavlja format rezultata. Svako slovo u znakovnom nizu predstavlja jedan deo datuma i vremena. H je sat u 24-casovnom formatu, i je minut, sa vodecom nulom ako treba, j je dan u mesecu bez vodece nule, S predstavlja redni sufiks na engleskom jeziku a F je puno ime meseca...

Toliko za sada od mene. I kao sto rekoh na pocetku ne znam odakle bih poceo i ovo sto sam sada napisao je samo neki uvod u PHP i neke njegove osnovne stvari... Pokusajte da od ovoga napravite neke svoje stranice, menjajte ih...
Do uskoro i pozdrav Wink



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 14 Nov 2003
  • Poruke: 367

Evo da malo pomognem, da nebi doslo do zabune pravilno je i najbolje je koristiti ovaj oblik
<?php echo '<p>Order processed.</p>'; ?>
ostale batalite

A pitanje za Massive_Attack, kada si vec stavio action i metod sto nisi neku promenjivu iz polja preneo, jel ovo ce dovesti do zabune ljude.



offline
  • Pridružio: 03 Apr 2005
  • Poruke: 19
  • Gde živiš: Nis

Svaka cast!
Ja pojma nemam o PHP-u kao ni o SQL.
Nemam instaliran PHP ni MySQL niti Apache

Sigurno ima neka besplatna knjigana netu koja je za potpune pocetnike kao sto sam ja!

Mene licno interesuje kako da napravim neki FORM sa dropdownmenijem i sa praznim poljima nesto kao komentar da se ostavi! I posetilac da odabere ono sto zeli (dropdown) ostavi recimo e-mail, ime i prezime i da mi se sad to posalje na e-mail ili na neki text fajl na netu! A da posetilac ne mora da koristi njegov mail! Prostije receno da napravim neku anketu ili nesto kao glasanje! Ako moze tu pomoc!?

@Massive_Attack

Nastvi ritmom koji si poceo!

offline
  • Pridružio: 14 Nov 2003
  • Poruke: 367

@aleksa87 to se bas i radi preko form-a kao sto je napisao Massive_Attack

offline
  • Pridružio: 18 Mar 2005
  • Poruke: 17

Ovako prvo da odgovorim na pitanje Radovan_III
Slazem se sa tobom da je ovo najbolja metoda <?php echo '<p>Order processed.</p>'; ?> a cini mi se da sam i rekao da se XML metoda najcesce i koristi i ono sto bih ti jos odgovorio je to da je ovaj moj post premesten iz topica Zainteresovani za on-line casove PHP-a ? Wink (procitaj ga celog). Sigurno ga admin sajta prebacio otvorivsi novi Topic "PHP casovi" (ovaj topic nisam ja kreirao!!!) No nebitno. Hocu da kazem da ako se radi ovako nesto onda treba imati razumevanja za one koji nista ne znaju o PHP-u, da sa ovakvim stvarima treba krenuti iz pocetka i od osnovnih stvari. Mozda sam trebao da krenem od same instalacije!!! I lepo sam pitao odakle krenuti od Pocetnog, Srednjeg, Naprednog... ili ti Pro znanja PHP-a. Nemam bas toliko vremena da sedim citav dan i da pisem o PHP-u nego ako sam jednostavno samo prvi krenuo onda moze neko i da me nadoveze ko malo vise zna i da doda nesto vise od: <?php echo '<p>Order processed.</p>'; ?> i kako ostalo treba zanemariti. Pa ne treba nista zanemariti, jer se kod ovakvih stvari i programiranja radi o milijardama slucajeva.......

aleksa87
Ako sam te dobro razumeo zelis da napravis jednu PHP e-mail formu na tvojoj stranici? Ovo sa drop down menijem mi bas i nije jasno pa ces morati malo to da pojasnis. Kao prvo moras znati da li ti onaj ko ti hostuje tvoj domen daje takvu vrstu usluga na serveru odnosno da li ti pruza SMTP klijent? Ako ti je ta usluga dostupna onda ces moci da koristis ovaj skript.

Pravljenje e-mail forme

Dakle prvo sto ces uraditi napravices jednu .html stranicu ili jednostavno kopiraj ceo ovaj kod i pejstuj ga u jedan note pad. Dokument sacuvaj kao contact.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>aleksa87</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="post" action="send.php">
Name:<br>
<input name="name" type="text" size="30"><br><br>
Email:<br><input name="email" type="text" size="30"><br><br>
Comments:<br>
<input name="subject" type="text" size="30"><br><br>
Message:<br>
<textarea name="msg" cols="25" rows="6"></textarea><br><br>
<input type="reset" value="Reset">&nbsp;<input type="submit" value="Send">
</form>
</body>
</html>

Ako zelis otvori stranicu u nekom tvom programu za Web dizajn recimo Dreamweaveru i uredi malo bolje ovu formu...mislim da moze da izgleda i lepse jer ovo je samo primer. Menjaj velicinu forme broj karaktera u text fieldovima... jednostavno dizajniraj malo Wink

Sledece sto ces napraviti je PHP stranica send.php Za nju isto vazi mozes kopirati ovaj kod ispod u jedan note pad i dokument sacuvaj kao send.php Sve sto u ovom kodu treba da editujes je samo mesto koje sam ti naznacio odnosno- izmedju_ovih_navodnika_upisi_na_koju_adresu_se_salje_mail - i tvoja PHP email forma je gotova.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>aleksa87</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$to ="izmedju_ovih_navodnika_upisi_na_koju_adresu_se_salje_mail";
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$msg = $_POST['msg'];
$sub = "form to mail";
$headers = "From: $name <$email>\n";
$headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
$mes = "Subject: ".$subject."\n";
$mes .= "Message: ".$msg."\n";
$mes .= "Name: ".$name."\n";
$mes .= "Email: ".$email."\n";
$mes .= "Date & Time: ".$d."";
if(empty($name) || empty($email) || empty($subject) || empty($msg)) {
echo "<h3>Sorry all fields are required.</h3>";
} elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo "<h3>Sorry the email address you entered is invalid.</h3>";
} else {
mail($to, $sub, $mes, $headers);
echo "<h3><center>Thank you $name.<br>I will get back to you as soon as posiable</center></h3>";
}
?>
</body>
</html>

Kao sto rekoh onu stranicu contact.html otvori u nekom web dizajn programu uredi je malo lepse i povezi sa nekim linkom na tvojoj stranici. Ili recimo mozes napraviti da se ta contact.html stranica otvara u nekom pop-up window pritiskom na neki link na tvojoj stranici. Za to ce ti trebati malo JavaScript koda. Raspitaj se ili vidi vec negde neki tutorial kako se od jedne stranice pravi pop-up window..nije nista tesko.

No da ukratko i pojasnimo ovaj PHP skript.
Kod html stranice red sa <form method="post" action="send.php"> je objasnjen u mom prethodnom postu i mislim da ne treba ponavljati sta on znaci pa hajde da predjemo na stranicu send.php
-----Pristup promenljivama obrasca-----
Obrasci omogucavaju prikupljanje podataka. U PHP-u se lako pristupa unetim podacima, ali konkretan metod zavisi od toga koju verziju PHP-a koristite kao i od parametara u datoteci php.ini
Da sada pojasnimo sta je to na stranici send.php $to, $name, $email, $subject....
Promenljive obrasca---- Svakom polju u obrascu mozete pristupiti preko istoimene PHP promenljive. Imena promenljivih u PHP-u mozete da prepoznate sa obzirom da sva pocinju sa znakom za dolar $. (izostavljanje ovog znaka je uobicajena programerska greska)
Postoje 3 nacina pristupa podacima u obrascu preko promeljivih. Kratki $name, Srednji $_POST['name'] i dugi $HTTP_POST_VARS['name']. Najcesce se koristi kratki $name. Kratki stil jeste najzastupljeniji ali to je i nacin koji vam u PHP-u dozvoljava da pravite greske. Ovo navodim zbog pocetnika u PHP-u
----Oblast vazenja promenljive------
U PHP-u postoje 4 tipa oblasti vazenja
- ugradjene superglobalne promenljive, vidljive su svuda u skriptu
- globalne promenljive, deklarisane su u skriptu vidljive su svuda u skriptu, ali ne i unutar funkcija.
- promenljive upotrebljene unutar funkcija lokalne su za te funkcije
- promenljive upotrebljene unutar funkcija koje su deklarisane kao globalne ukazuju na globalnu promeljivu istog imena.
Od PHP-a 4.2 nadalje, nizovi $_GET i $_POST kao i neke druge posebne promenljive imaju posebnu oblast vazenja. To su superglobalne promenljive koje su vidljive svuda, kako unutar tako i izvan funkcija.
Kompletan spisak superglobalnih promenljivih
- $GLOBALS - niz svih globalnih promenljivih
- $_SERVER - niz promenljivih iz serverskog okruzenja
- $_GET - niz promenljivih koje se prosledjuju skriptu metodom GET
- $_POST - niz promenljivih koje se prosledjuju skriptu metodom POST
- $_COOKIE - niz kolacica
- $_FILES - niz promenljivih koje se odnose na datoteke poslate drugom racunaru
- $_ENV - niz promenljivih okruzenja
- $_REQUEST - niz promenljivih koje unosi korisnik
- $_SESSION - niz promenljivih sesije.
Detaljnije o njima pisacu u nekom drugom postu i posto sada nemam toliko vremena objasnicu iz stranice send.php red sa ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$. Koji se odnosi na upotrebu provere adrese korisnikove e-poste.
Podizraz ^[_a-z0-9-]+(\. znaci pocni znakovni niz sa najmanje jednim slovom, brojem, donjom crtom, crticom, tackom... ili nekom njihovom kombinacijom
Podizraz [_a-z0-9-]+ odgovara prvom delu imena racunara, ukljucujuci alfanumericke znakove i crtice.
Simbol @ odgovara znaku @
Podizraz [a-z]{2,3})$ se odnosi na ostatak imena domena ukljucujuci slova, brojeve, crtice i ako je neophodno dodatne tacke sve do kraja znakovnog niza.
Sa ovim regularnim nizom moguce je napraviti nevazece e-mail adrese koje ce se poklapati sa ovim znakovnim nizom, ali isto tako je i gotovo nemoguce pronaci sve neispravne e-mail adrese. Ovaj izraz donekle poboljsava situaciju. Mozete nabrojati sve vazece domene koje prihvatate ali to ce korisnika koji nema mail sa tim domenom prilicno nervirati...

Za danas od mene toliko a drugi put cu objasniti nesto o Operatorima u PHP-u
Nadam se i da necu biti jedini koji ce ovde pisati pa bih molio i one koji nesto znaju o PHP da napisu neku lekciju ili jednostavno nastave gde sam ja stao
Pozdrav Wink

offline
  • Ceva  Male
  • Super građanin
  • Pridružio: 10 Mar 2005
  • Poruke: 1313

Massive_Attack Znaci hoces da nam drzis casove o php-nuke.
ja neznam bas puno, da radim, u php-nuke, voleo bi da znam sto vise.

offline
  • Pridružio: 13 Maj 2005
  • Poruke: 2
  • Gde živiš: banjaluka

po pitanju e mail forme:
kada sam napravio html kontakt
iposalji php:
izbacuje mi eror:

Notice: Undefined variable: d in c:\program files\easyphp1-7\www\skola\poshalji.php on line 38

Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\program files\easyphp1-7\www\skola\poshalji.php on line 44

Thank you jjjjjjjjj.
I will get back to you as soon as posiable
nista ne kontam

zasto je ipak izbacio upozorenje
a iznad stavio eror
pozdrav

Dopuna: 13 Maj 2005 16:33

nisam mislio upozorenje vec odgovor
pardon

Dopuna: 13 Maj 2005 16:38

gore navedeni text odnosno primjer je iz knjige
php i myql-razvoj aplikacija za veb{post mas.at}
kako da se napravi forum
kako da se uveze php i mysql
kako pravim mysql database
ja sam pocetnik u programiranju
ali dobar sam dizajner vbaljda

samo opusteno

offline
  • set_X 
  • Novi MyCity građanin
  • Pridružio: 22 Jun 2004
  • Poruke: 19
  • Gde živiš: Serbia

Ovo za mail moze da se uradi skraceno:

<?php if (!$_POST['name'] OR !$_POST['email'] OR !$_POST['msg']) die("Popunite sva polja"); $to = "adress@bla.com"; //adresa gde se salje mail $headers = "From: Nesto@bezveze"; $naslov = "Neki naslov"; $poruka = $_POST['msg']; if (!mail($to, $naslov, $poruka, $headers)) die("Greska prilikom slanja maila!"); echo "Mail je uspesno poslat, vratite se na <a href='index.php'>index</a!"; ?>

offline
  • Pridružio: 12 Jan 2004
  • Poruke: 139
  • Gde živiš: Banja Luka

A zasto je ovo stalo???

offline
  • DR  Male
  • Legendarni građanin
  • Pridružio: 08 Okt 2004
  • Poruke: 5450
  • Gde živiš: Beograd

Супер,таман сам разјаснио неке ствари.Стало је претпостављам јер нема ко да настави...

Ko je trenutno na forumu
 

Ukupno su 1263 korisnika na forumu :: 35 registrovanih, 3 sakrivenih i 1225 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Areal84, Asparagus, Bobrock1, Boris BM, Centauro, CikaKURE, Cobi026, dijica, Dorcolac, FOX, GandorCC, hooraay, ikan, Karla, kovinacc, Kriglord, Kubovac, lord sir giga, Magistar78, Marko Marković, Metanoja, milutin134, nenad81, nick79, nuke92, Papadubi, procesor, Shinobi, Stanlio, vandrej, vladaa012, voja64, vukdra, Zimbabwe