Početak učenja PHP-a

2

Početak učenja PHP-a

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14245
  • Gde živiš: Niš

Funkcija strpos vraća indeks prvog karaktera (pod)stringa čija se pozicija traži.
Dakle, ispiši iznad svakog slova u "Hello world" brojeve od 0 pa do poslednjeg slova. Numeriši i razmake i videćeš da je slovo w na poziciji broj 6. smešak



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • m4rk0  Male
  • Administrator
  • Administrator tech foruma
  • Marko Vasić
  • Gladijator - Maximus Decimus Meridius
  • Pridružio: 14 Jan 2005
  • Poruke: 15754
  • Gde živiš: Majur (Colosseum)

Napisano: 10 Maj 2013 21:58

Zato sto brojanje krece od 0

Dopuna: 10 Maj 2013 21:59

H-0, e-1, l-2, l-3, o-4, razmak-5, world-6 Smile



offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4455

@vasa93 - hvala na odgovoru, sad mi je jasnije Smile

@m4rk0 - znam, isti je slučaj i sa nizovima Smile

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14245
  • Gde živiš: Niš

Zato što stringovi i jesu nizovi, nizovi karaktera. Wink

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4455

Napisano: 12 Maj 2013 16:51

FoxVanis ::E.L.I.T.E. ::Ispratio sam Srkijeve članke 2 i 3 i instalirao:


PHP (ali ne binarnu verziju već preko wizard-a)
WAMP
MySQL


Da li mi je potrebno još nešto ili je to to? Još jedna stvar mi nije jasna, kada naučim PHP tako da mogu da napravim neku aplikaciju koja koristi relacione baze podataka, trebam li da učim i SQL jezik za upravljanje bazama podataka i da li se ta dva jezika integrišu ili su razdvojeni (svako za sebe)? Mislim, da li mogu da ih koristim u kombinaciji?


Ovako:
1) Instaliraj Dreamweaver (čisto zbog debagiranja i kolorizacije funkcija, podržava i live tutorijale)
2) Nauči osnovni PHP (if/else; switch; while; loop; foreach; echo; $_GET; $_POST) funkcije.
3) Zacrtaj sebi neki zadatak da ćeš napraviti i uradi ga.

Daću ti ja jedan lak zadatak:
Napravi jedan index.php fajl. Na njemu ćeš imati sledeće:
1) Polje za ime i prezime, email, tekst i "pošalji" dugme.
2) U PHP napravi provere sledeće za ime i prezime i email, da kada su polja prazna ispiše poruku da se ta polja moraju popuniti.
3) Kada su sva polja popunjena, klikneš na "pošalji" i onda treba da nestanu sva ta polja i umesto njih da se ispiše ime i prezime, email i poruka koju si napisao. Ispod toga jedno dugme za "nazad"

Daću ti malu pomoć:
1) Koristi funkciju switch ili if/else za prikaz polja za popunjavanje i poruke koju si poslao
2) if/else za provere popunjenih polja
3) $_POST funkciju za slanje poruke (u tvom slučaju ispisivanje)
4) echo za ispisivanje dinamičkog sadržaja

Lak je zadatak ali čisto da shvatiš logiku ako nisi do sada radio pa okači kod na forum da te ispravimo i pokažemo još rešenja. Sve ostalo je na sličnom principu.

Naučićeš samo ako vežbaš. Pozz.... Ziveli


Evo, rešio sam zadatak skoro, ostalo je ono ako korisnik unese prazno polje da izađe greška.

Arrow http://elitebeta.comoj.com/index.html

Kao što rekoh, ne znam sada kako da to if/else primenim ovde, imam u glavi sliku kako bi to trebalo da izgleda, ali nisam baš siguran, evo source (ne obraćajte pažnju na ove &# delove, to je File Manager sam formatirao pri čuvanju) .

Arrow index.html

<!DOCTYPE html> <html> <body> <h3>Formular</h3> <br/> <br/> <img src="http://www.mycity.rs/images/smiles/icon_exclaim.gif"></img> <b>Vaši lični podaci neće biti korišćeni u zlonamerne svrhe! Možete uneti i izmišljeno ime/prezime/mejl!</b> <br/> <br/> <form action="welcome.php" method="post"> <b>Ime:</b> <input type="text" name="ime"> <br/> <b>Prezime:</b> <input type="text" name="prezime"> <br/> <b>E-mail:</b> <input type="text" name="mejl"> <br/> <b>Poruka:</b> <textarea name="poruka" cols="20" rows="5">[Upišite svoju poruku ovde]</textarea> <br/> <input type="submit" value="Pošalji!"> </form> </body> </html>

Arrow welcome.php

<!DOCTYPE html> <html> <body> <b>Dobrodošli</b>  <?php echo $_POST["ime"] . " " .  $_POST["prezime"] ?>! <br> <b>Vaš mejl je</b>  <?php echo $_POST["mejl"]; ?>. <br> <b>Vaša poruka: </b> <?php echo $_POST["poruka"]; ?> <br><br> <form method="get" action="/index.html">    <input type="submit" value="Nazad"></input> </form> </body> </html>

Dopuna: 12 Maj 2013 16:52

Tačnije, ne znam u kom fajlu da to primenim Smile

Može li ovako nešto (ovo je samo za 'ime');

<?php if ($_POST["ime"] == "")   {    echo "Niste uneli ništa u polje!";   } ?>

Dopuna: 12 Maj 2013 17:41

Evo, nešto sam uspeo da poboljšam malo:

Arrow welcome.php

<!DOCTYPE html> <html> <body> <?php if ($_POST["ime"] == "")    {    echo "Polje za ime je obavezno i mora biti popunjeno! Kliknite na dugme <b>Nazad</b>, koje se nalazi na dnu stranice kako biste mogli da pokušate ponovo!<br>";    } else if ($_POST["prezime"] == "")    {    echo "Polje za prezime je obavezno i mora biti popunjeno! Kliknite na dugme <b>Nazad</b>, koje se nalazi na dnu stranice kako biste mogli da pokušate ponovo!<br>";    } else if ($_POST["mejl"] == "")    {    echo "Polje za mejl je obavezno i mora biti popunjeno! Kliknite na dugme <b>Nazad</b>, koje se nalazi na dnu stranice kako biste mogli da pokušate ponovo!<br>";    } else if ($_POST["poruka"] == "")    {    echo "PAŽNJA: Niste uneli sadržaj poruke!<br><br>";    } ?> <b>Dobrodošli</b>  <?php echo $_POST["ime"] . " " .  $_POST["prezime"] ?>! <br> <b>Vaš mejl je</b>  <?php echo $_POST["mejl"]; ?>. <br> <b>Vaša poruka: </b> <?php echo $_POST["poruka"]; ?> <br><br> <form method="get" action="/index.html">    <input type="submit" value="Nazad"></input> </form> </body> </html>

E sad sam je funkcionalizovao da proverava svako polje zasebno. Sad je u redu valjda Ziveli

<!DOCTYPE html> <html> <body> <?php if ($_POST["ime"] == "")    {    echo "Polje za ime je obavezno i mora biti popunjeno! Kliknite na dugme <b>Nazad</b>, koje se nalazi na dnu stranice kako biste mogli da pokušate ponovo!<br>";    } ?> <br/> <?php if ($_POST["prezime"] == "")    {    echo "Polje za prezime je obavezno i mora biti popunjeno! Kliknite na dugme <b>Nazad</b>, koje se nalazi na dnu stranice kako biste mogli da pokušate ponovo!<br>";    } ?> <br/> <?php if ($_POST["mejl"] == "")    {    echo "Polje za mejl je obavezno i mora biti popunjeno! Kliknite na dugme <b>Nazad</b>, koje se nalazi na dnu stranice kako biste mogli da pokušate ponovo!<br>";    } ?> <br/> <?php if ($_POST["poruka"] == "")    {    echo "PAŽNJA: Niste uneli sadržaj poruke!<br><br>";    } ?> <b>Dobrodošli</b>  <?php echo $_POST["ime"] . " " .  $_POST["prezime"] ?>! <br> <b>Vaš mejl je</b>  <?php echo $_POST["mejl"]; ?>. <br> <b>Vaša poruka: </b> <?php echo $_POST["poruka"]; ?> <br><br> <form method="get" action="/index.html">    <input type="submit" value="Nazad"></input> </form> </body> </html>

offline
  • m4rk0  Male
  • Administrator
  • Administrator tech foruma
  • Marko Vasić
  • Gladijator - Maximus Decimus Meridius
  • Pridružio: 14 Jan 2005
  • Poruke: 15754
  • Gde živiš: Majur (Colosseum)

Ja sam pocetnik pa nemoj uzimati zdravo za gotovo, samo cu ti reci kako sam ja ucio.

Prvo sto bih ti preporucio je da kreiras skracene verzije globalnih varijabli

$ime=$_POST['ime'] ; $prezime=$_POST['prezime'] $mejl=$_POST['mejl'] $poruka=$_POST['poruka']

Takodje, mislim da bi u php code trebalo ubaciti i varijablu $na_adresu i tu definisali na koju adresu se salju podaci uneti preko forme. I na kraju funkcijom mail () obuhvatimo sve potrebne varijable.

offline
  • iCho  Male
  • Elitni građanin
  • Pridružio: 03 Maj 2011
  • Poruke: 1808
  • Gde živiš: Mos Eisley

Praktično gledano, ovu proveru je bolje uraditi u JavaScript/jQuery-ju, jer se svaki put učitava stranica nanovo a to ume da bude smorno.

A i podaci uneti u formu će verovatno biti izgubljeni ako se ne napravi neka povratna sprega (da iz provere podataka vraća unete podatke u formu).

I kad budeš radio estetski da to lepše izgleda - formu stavi u HTML tabelu Wink

<table> <tr><td>Ime:</td><td><input type="text"...></td></tr> <tr><td>Prezime:</td><td><input type="text"...></td></tr> </table>

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4455

@m4rk0 - svaki primer mi je dobrodošao. Naslućivao sam već da sam mogao ovo u skraćenijoj verziji da napišem, ali shvatio sam u čemu je stvar.

@iCho - nisam neki poznavalc jQuery-a. Sa JS mogu da probam.

EDIT: Sad ću da uzmem u obzir ove vaše savete pa ću izmeniti malo kod. Smile

offline
  • iCho  Male
  • Elitni građanin
  • Pridružio: 03 Maj 2011
  • Poruke: 1808
  • Gde živiš: Mos Eisley

jQuery je meni lakši od JavaScript (jQuery je samo biblioteka funkcija pisanih u JavaScript), jer se sve radi preko selektora, kraći je kod a u 90% slučajeva ima funkcija koja ti vrši posao.

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4455

Napisano: 13 Maj 2013 11:18

Ispravio sam deo koda u kom se učitavaju unete vrednosti korisnika:

Arrow welcome.php

<?php $ime=$_POST['ime'] ; $prezime=$_POST['prezime'] ; $mejl=$_POST['mejl'] ; $poruka=$_POST['poruka'] ; ?> <b>Dobrodošli</b>  <?php echo $ime . " " .  $prezime ?>! <br> <b>Vaš mejl je</b>  <?php echo $mejl; ?>. <br> <b>Vaša poruka: </b> <?php echo $poruka; ?> <br><br> <form method="get" action="/index.html">    <input type="submit" value="Nazad"></input> </form> </body> </html>

Arrow index.html

<table> <tr><td>Ime:</td><td><input type="text" name="ime" id="ime"></td></tr> <tr><td>Prezime:</td><td><input type="text" name="prezime" id="prezime"></td></tr> <tr><td>Mejl:</td><td><input type="text" name="mejl" id="mejl"></td></tr> <tr><td>Poruka:</td><td><textarea name="poruka" id="poruka" cols="20" rows="5">[Upišite svoju poruku ovde]</textarea></td></tr> </table>

Pokušao sam ovo da koristim, primer:


Ime


<input type="text" id="ime" />

i JS :

var ime = document.getElementById('ime'); if(ime.value.length == 0)     {     document.write("...");     }

Ali ne radi.

Dopuna: 13 Maj 2013 11:24

Ne znam za tebe, ali se ja u jQuery snalazim kao početnik u Asembleru Razz Nikako mi ne ide u glavu.

Ko je trenutno na forumu
 

Ukupno su 1138 korisnika na forumu :: 38 registrovanih, 4 sakrivenih i 1096 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1798 - dana 19 Sep 2019 18:42

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _commandos_, A.R.Chafee.Jr., aljosa7, amaterSRB, azarakhsh, BlaCkMilK, bounty hunters, branko72, Buzdovan2, caesar2, Gama, Georgius, Kubovac, Ljubitelj2, madza, MarKhan, Mercury, misa1xx, MORAVA1, nenad812, nikoladi, ostoja, pedjolino76, pein, prekodrinski, RecA2, Recce, royst33, slonic_tonic, stug, theNedjeljko, Toni, USSVoyager, vathra, versus2, vespa nikola, voja64, zoidbergs