logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

PHP Lekcije - lekcija 1 - Rad sa formama

26/05/2025, by Ivan

U svakodnevnom životu informacije dobijamo preko televizije, radija, interneta, kroz direktnu komunikaciju. Sajtovi takođe dobijaju informacije od korisnika, ali to rade na poseban način, kroz forme. Forme možemo uporediti sa anketama ili obrascima koje popunjavamo prilikom podnošenja zahteva u neku službenu instituciju. Iako je broj elemenata u formama ograničen, one omogućavaju da se od korisnika uzmu sve potrebne informacije za rad sajta.

Da bi vam ovaj čas bio korisniji, preporučujem da pročitate lekcije o HTML formama.

Pre nego što započnemo, napravimo kostur naše aplikacije, odnosno klasu koja će upravljati radom sajta.

Napravićemo folder class i u njega staviti fajl simpleCMS.php u kome će biti naša klasa za upravljanje sajtom. Takođe ćemo napraviti fajl index.php koji će pokretati ovo upravljanje. Pored toga, kreiraćemo prazan folder za poruke, kao i fajl stilova style.css. Struktura će izgledati ovako:

class/simpleCMS.php

messages/

index.php

style.css

Sadržaj fajla simpleCMS.php je sledeći:

<?php
class simpleCMS {  // klasa za upravljanje
  public function display_public() { // metod za prikaz poruka
  
  }
  public function display_admin() { // metod za unos poruke
	
  }
  public function write($p) { // metod za upis poruke
  
  }  
}
?>

Za sada ćemo ostaviti metode prazne, kasnije ćemo dodavati kod.

Fajl style.css:

*{
  margin: 0;
  padding: 0;
}

body{ 
  font: 12px "Lucida Grande",  Sans-Serif;
  background: #ccc;
}

#page-wrap{ 
  width: 500px; 
  margin: 50px auto; 
  padding: 20px; 
  background: white; 
}

h1, h2, h3{ 
  font: 28px Georgia, Serif; 
  border-bottom: 1px dotted #ccc;
  margin: 0 0 10px 0; 
}

.clear{ 
  clear: both; 
}

input[type="text"], textarea{ 
  padding: 3px; 
  border: 1px solid #666; 
  width: 350px;	
  margin: 0 0 15px 0; 
}

input[type="text"]{ 
  font: 28px Georgia, Serif; 
}

textarea { 
  height: 100px; 
  font: 12px "Lucida Grande", Sans-Serif; 
}

label 	{ 
  background: #666; 
  color: white; 
  padding: 2px 6px; 
}

.post{ 
  margin: 0 0 20px 0; 
}

Fajl index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Učimo PHP</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
  	<div id="page-wrap">
    <?php
    
      include_once('class/simpleCMS.php'); // uključujemo fajl sa klasom
      $obj = new simpleCMS(); // kreiramo objekat klase za upravljanje
  ?>
   </div>
  </body>
</html>

Hajde da objasnimo kako ovo funkcioniše. Kada se sajt učita, učitaće se fajl index.php. Trenutno će izgledati prazno jer smo samo uključili klasu i napravili objekat. Ovaj objekat ima metode koje ćemo pozivati kada bude potrebno. Taj momenat ćemo određivati uslovima kroz if naredbe.

Za sada se malo udaljimo od ovih fajlova i upoznajmo se sa globalnim promenljivim $_GET i $_POST.

Globalna promenljiva $_GET

HTML forme imaju atribut method (može biti 'get' ili 'post'), u zavisnosti od toga, podaci iz forme se šalju i zapisuju u globalne promenljive $_GET ili $_POST. Evo primera:

<form action="welcome.php" method="get">
Ime: <input type="text" name="fname" />
Godine: <input type="text" name="age" />
<input type="submit" />
</form> 

Kada kliknemo na dugme za slanje (submit), prebacujemo se na adresu:

http://sitename/welcome.php?fname=Peter&age=37

Ovako nastaje promenljiva $_GET, odnosno vrednosti koje se nalaze posle upitnika:

<?php
print $_GET['fname'];
print $_GET['age'];
?>

$_GET je niz vrednosti iz URL-a. Tako možemo prenositi podatke sa jedne stranice na drugu i bez korišćenja formi, na primer na adresi:

http://sitename/example.php?number=45

izvršavanjem ovog koda:

<?php
  print $_GET['number'];
?>

biće prikazan broj iz URL-a.

Globalna promenljiva $_POST

$_POST se koristi slično kao $_GET, ali za forme koje šalju podatke metodom POST. Primer:

<form action="welcome.php" method="post">
Ime: <input type="text" name="fname" />
Godine: <input type="text" name="age" />
<input type="submit" />
</form> 

Posle slanja, prelazimo na:

http://sitename/welcome.php

Sada možemo da koristimo:

<?php
print $_POST['fname'];
print $_POST['age'];
?>

Razlika je što se $_POST podaci ne vide u URL-u i ne mogu se dohvatiti iz URL-a, već samo kroz PHP.

Sada napravimo formu za dodavanje poruke. Dodavanje ćemo raditi sa metodom POST, a upravljanje sajtom sa metodama GET:

public function display_admin() { // metod za unos poruke	
  $content = '';
  $content .= '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">'; // $_SERVER['PHP_SELF'] vraća ime fajla koji je pozvao klasu
  $content .= '<label for="title">Ime:</label><br />';
  $content .= '<input name="title" id="title" type="text" maxlength="150" />';
  $content .= '<div class="clear"></div>';
  $content .= '<label for="bodytext">Poruka:</label><br />';
  $content .= '<textarea name="bodytext" id="bodytext"></textarea>';	
  $content .= '<div class="clear"></div>';	
  $content .= '<input type="submit" value="Dodaj poruku" />';	
  $content .= '</form>';		
  $content .= '<p><a href="/index.php">Nazad na početnu</a></p>';    
  return $content;  
}

Zamenite metod display_admin() ovim kodom. Ovaj kod će se prikazati kada želimo da dodamo unos. Po defaultu treba da se prikazuju unosi. Dogovorimo se da će forma biti prikazana kada u URL postoji promenljiva admin=1. Dakle URL je:

http://test/index.php?admin=1

Izmenimo sada index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="ltr">
  <head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Učimo PHP</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
  	<div id="page-wrap">
    <?php
    
      include_once('class/simpleCMS.php'); // uključujemo fajl sa klasom
      $obj = new simpleCMS(); // kreiramo objekat klase za upravljanje

	  
      if( $_GET['admin'] == 1 ){ // ako postoji promenljiva admin u URL-u
	    print $obj->display_admin(); // prikazujemo formu
	  }else{
	    print $obj->display_public(); // ako nema promenljive, prikazujemo poruke
	  }
     
    ?>	  
	</div>
  </body>
</html>

Izmenimo sada metod display_public() koji prikazuje poruke kada nema parametra:

  public function display_public() { // metod za prikaz poruka
    $content = '';
	$content .= '<p><a href="/index.php?admin=1">Dodaj poruku</a></p>';
    return $content;
  }

Dodali smo link koji vodi na stranicu sa parametrom da bi se prikazala forma.

Ako vam prilikom učitavanja stranice izlaze čudni znakovi, napravite fajl .htaccess (na Windows-u može biti problem, pa kopirajte postojeći i obrišite sadržaj) i ubacite u njega liniju:

AddDefaultCharset utf-8

Ovim ćete naterati server da koristi UTF-8 kodnu stranicu.

Sada imamo formu koja šalje podatke na drugu stranu. Možete proveriti da li je sve u redu ako promenite metod forme u GET:

$content .=	'<form action="' . $_SERVER['PHP_SELF'] . '" method="get">';

Sada će podaci biti poslati kroz URL. Obradu ovih podataka ćemo videti u sledećem času, kada budemo radili sa fajlovima i upisivali podatke u fajlove.

Прикрепленные файлы