You are on page 1of 14

Programiranje za Internet kolokvij 2.

Ime i prezime:

Broj indeksa:

1. Napisati html form sa poljima za unos naružbe autodijelova: Tires, Oil, Spark Plugs, te jedan
padajući izbornik (select) sa mogućnostima: I'm a regular customer, TV advertising, Phone
directory, Word of mouth. Napisati skriptu processorder.php koja će obraditi narudžbu iz
forma i ispisati na stranicu datum naružbe , ukupan broj naručenih dijelova, definirati cijene
pojedinih dijelova te izračunati i ispisati ukupnu cijenu narudžbe uz porez od 10% i na kraju
ispisati što je korisnik odabrao iz padajućeg izbornika (select).
<html>
<body>
<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>How did you find Bob's?</td>
<td><select name="find">
<option value = "a">I'm a regular customer</option>
<option value = "b">TV advertising</option>
<option value = "c">Phone directory</option>
<option value = "d">Word of mouth</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Submit Order"></td>
</tr>
</table>
</form>
</body>
</html>

processorder.php:
<?php
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
$find = $_POST['find'];
?>
<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<?php

echo "<p>Order processed at ".date('H:i, jS F Y')."</p>";

echo "<p>Your order is as follows: </p>";

$totalqty = 0;
$totalqty = $tireqty + $oilqty + $sparkqty;
echo "Items ordered: ".$totalqty."<br />";

if ($totalqty == 0) {

echo "You did not order anything on the previous page!<br />";

} else {

if ($tireqty > 0) {
echo $tireqty." tires<br />";
}

if ($oilqty > 0) {
echo $oilqty." bottles of oil<br />";
}

if ($sparkqty > 0) {
echo $sparkqty." spark plugs<br />";
}
}

$totalamount = 0.00;

define('TIREPRICE', 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4);

$totalamount = $tireqty * TIREPRICE


+ $oilqty * OILPRICE
+ $sparkqty * SPARKPRICE;

echo "Subtotal: $".number_format($totalamount,2)."<br />";

$taxrate = 0.10; // local sales tax is 10%


$totalamount = $totalamount * (1 + $taxrate);
echo "Total including tax: $".number_format($totalamount,2)."<br />";

if($find == "a") {
echo "<p>Regular customer.</p>";
} elseif($find == "b") {
echo "<p>Customer referred by TV advert.</p>";
} elseif($find == "c") {
echo "<p>Customer referred by phone directory.</p>";
} elseif($find == "d") {
echo "<p>Customer referred by word of mouth.</p>";
} else {
echo "<p>We do not know how this customer found us.</p>";
}

?>
</body>
</html>
2. Napisati unutar html-a php skriptu koja će generirati tablicu sa 100 redaka i dva stupca u
kojima će biti ispisani brojevi od 1 do 100 te njihovi kvadrati.
<html>
<body>
<table border="0" cellpadding="3">
<tr>
<td bgcolor="#CCCCCC" align="center">Distance</td>
<td bgcolor="#CCCCCC" align="center">Cost</td>
</tr>
<?php

$distance = 1;
while ($distance <= 100) {
echo "<tr>
<td align=\"right\">".$distance."</td>
<td align=\"right\">".($distance * $distance)."</td>
</tr>\n";

$distance += 1;
}

?>
</table>
</body>
</html>
3. Napisati php skriptu koja će naružbu iz 1. zadatka spremiti u datoteku orders.txt u mapi
orders u korjenskoj mapi web poslužitelja te ispisati poruku o uspješnom upisu u datoteku.

<?php
// create short variable names
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
$address = $_POST['address'];
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
?>
<html>
<head>

</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<?php

$outputstring = $date."\t".$tireqty." tires \t".$oilqty." oil\t"


.$sparkqty." spark plugs\t\$".$totalamount
."\t". $address."\n";
// open file for appending
@ $fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt", 'ab');

flock($fp, LOCK_EX);

if (!$fp) {
echo "<p><strong> Your order could not be processed at this time.
Please try again later.</strong></p></body></html>";
exit;
}

fwrite($fp, $outputstring, strlen($outputstring));


flock($fp, LOCK_UN);
fclose($fp);

echo "<p>Order written.</p>";


?>
</body>
</html>
4. Što je rezultat izvršavanje slijedeće php skripte:
<?php
$prices = array( 'Tires' => 100 );
$prices['Oil'] = 10;
$prices['Spark Plugs'] = 4;

while ($element = each($prices)) {


echo $element['key'];
echo " - ";
echo $element['value'];
echo "<br />";
}
?>

Rezultat:
Tires - 100
Oil - 10
Spark Plugs - 4

5. Napisati php skriptu koja će od devet slika slučajnim odabirom prikazivati na stranici tri od
ponuđenih devet slika.
<?php
$pictures = array('tire.jpg', 'oil.jpg', 'spark_plug.jpg',
'door.jpg', 'steering_wheel.jpg',
'thermostat.jpg', 'wiper_blade.jpg',
'gasket.jpg', 'brake_pad.jpg');
shuffle($pictures);
?>
<html>
<head>
<title>Bob's Auto Parts</title>
</head>
<body>

<h1>Bob's Auto Parts</h1>


<div align="center">
<table width = 100%>
<tr>

<?php
for ($i = 0; $i < 3; $i++) {
echo "<td align=\"center\"><img src=\"";
echo $pictures[$i];
echo "\"/></td>";
}
?>
</tr>
</table>
</div>
</body>
</html>
6. Objasniti slijedeći php kod:
<?php

function create_table($data) {
echo "<table border=\"1\">";
reset($data);
$value = current($data);
while ($value) {
echo "<tr><td>".$value."</td></tr>\n";
$value = next($data);
}
echo "</table>";
}
$my_array = array('Line one.','Line two.','Line three.');
create_table($my_array);

?>
U ovom kodu kreira se tablica u kojoj u ovisnosti koliko smo članova niza unijeli, kreirati će se
jednak broj polja tablice jedan ispod drugog sa sadržajem članova tog niza.
7. Napisati dokument page.inc kojui će sadržavati klasu Page koja će moći generirati stranicu sa
naslovom, ključnim riječima, sadržajem i gumbima koji će biti poveznice na druge stranice
koje se mogu generirati iz iste klase. Ne prikazivati gumb od tekuće stranice. Uključiti u klasu i
proizvoljan CSS za prikaz dijelova stranice koristeći posebne metode za zaglavlje, podnožje i
sadržaj stranice.Napisati i dokument home.php gdje će biti prikazan primjer instanciranja
klase Page.
page.inc.
<?php
class Page
{
// class Page's attributes
public $content;
public $title = "TLA Consulting Pty Ltd";
public $keywords = "TLA Consulting, Three Letter Abbreviation,
some of my best friends are search engines";
public $buttons = array("Home" => "home.php",
"Contact" => "contact.php",
"Services" => "services.php",
"Site Map" => "map.php"
);

// class Page's operations


public function __set($name, $value)
{
$this->$name = $value;
}

public function Display()


{
echo "<html>\n<head>\n";
$this -> DisplayTitle();
$this -> DisplayKeywords();
$this -> DisplayStyles();
echo "</head>\n<body>\n";
$this -> DisplayHeader();
$this -> DisplayMenu($this->buttons);
echo $this->content;
$this -> DisplayFooter();
echo "</body>\n</html>\n";
}

public function DisplayTitle()


{
echo "<title>".$this->title."</title>";
}

public function DisplayKeywords()


{
echo "<meta name=\"keywords\"
content=\"".$this->keywords."\"/>";
}

public function DisplayStyles()


{
?>
<style>
h1 {
color:white; font-size:24pt; text-align:center;
font-family:arial,sans-serif
}
.menu {
color:white; font-size:12pt; text-align:center;
font-family:arial,sans-serif; font-weight:bold
}
td {
background:black
}
p{
color:black; font-size:12pt; text-align:justify;
font-family:arial,sans-serif
}
p.foot {
color:white; font-size:9pt; text-align:center;
font-family:arial,sans-serif; font-weight:bold
}
a:link,a:visited,a:active {
color:white
}
</style>
<?php
}

public function DisplayHeader()


{
?>
<table width="100%" cellpadding="12"
cellspacing="0" border="0">
<tr bgcolor ="black">
<td align ="left"><img src = "logo.gif" /></td>
<td>
<h1>TLA Consulting Pty Ltd</h1>
</td>
<td align ="right"><img src = "logo.gif" /></td>
</tr>
</table>
<?php
}

public function DisplayMenu($buttons)


{
echo "<table width=\"100%\" bgcolor=\"white\"
cellpadding=\"4\" cellspacing=\"4\">\n";
echo "<tr>\n";

//calculate button size


$width = 100/count($buttons);

while (list($name, $url) = each($buttons)) {


$this -> DisplayButton($width, $name, $url,
!$this->IsURLCurrentPage($url));
}
echo "</tr>\n";
echo "</table>\n";
}

public function IsURLCurrentPage($url)


{
if(strpos($_SERVER['PHP_SELF'], $url )==false)
{
return false;
}
else
{
return true;
}
}

public function
DisplayButton($width,$name,$url,$active = true)
{
if ($active) {
echo "<td width = \"".$width."%\">
<a href=\"".$url."\">
<img src=\"s-logo.gif\" alt=\"".$name."\" border=\"0\" /></a>
<a href=\"".$url."\"><span class=\"menu\">".$name."</span></a>
</td>";
} else {
echo "<td width=\"".$width."%\">
<img src=\"side-logo.gif\">
<span class=\"menu\">".$name."</span>
</td>";
}
}

public function DisplayFooter()


{
?>
<table width="100%" bgcolor="black" cellpadding="12" border="0">
<tr>
<td>
<p class="foot">&copy; TLA Consulting Pty Ltd.</p>
<p class="foot">Please see our <a href ="">legal
information page</a></p>
</td>
</tr>
</table>
<?php
}
}
?>

home.php:
<?php
require("page.inc");

$homepage = new Page();

$homepage->content ="<p>Welcome to the home of TLA Consulting.


Please take some time to get to know us.</p>
<p>We specialize in serving your business needs
and hope to hear from you soon.</p>";
$homepage->Display();
?>

8. Objasniti slijedeći php kod:


<?php

class myException extends Exception


{
function __toString()
{
return "<table border=\"1\">
<tr>
<td><strong>Exception ".$this->getCode()."
</strong>: ".$this->getMessage()."<br />"."
in ".$this->getFile()." on line ".$this->getLine()."
</td>
</tr>
</table><br />";
}
}

try
{
throw new myException("A terrible error has occurred", 42);
}
catch (myException $m)
{
echo $m;
}

?>
U ovom kodu imamo klasu myException i funkciju koja će ispisati iznimku koja će dohvatiti
tekst i broj, putanju dokumenta i broj linije u kojoj se naša poruka nalazi.

9. Napisati php skriptu koja će iz html forma uzimati podatke o knjigama: isbn, author, title i
price te ih smještati u bazu podataka bookorama, na serveru localhost, sa korisnikom
bookorama123 i lozinkom books. Baza podataka ima tablicu sa poljima: isbn, author, title i
price.
<html>
<head>
<title>Book-O-Rama Book Entry Results</title>
</head>
<body>
<h1>Book-O-Rama Book Entry Results</h1>
<?php
// create short variable names
$isbn=$_POST['isbn'];
$author=$_POST['author'];
$title=$_POST['title'];
$price=$_POST['price'];

if (!$isbn || !$author || !$title || !$price) {


echo "You have not entered all the required details.<br />"
."Please go back and try again.";
exit;
}

if (!get_magic_quotes_gpc()) {
$isbn = addslashes($isbn);
$author = addslashes($author);
$title = addslashes($title);
$price = doubleval($price);
}

@ $db = new mysqli('localhost', 'bookorama', 'bookorama123', 'books');

if (mysqli_connect_errno()) {
echo "Error: Could not connect to database. Please try again later.";
exit;
}

$query = "insert into books values


('".$isbn."', '".$author."', '".$title."', '".$price."')";
$result = $db->query($query);

if ($result) {
echo $db->affected_rows." book inserted into database.";
} else {
echo "An error has occurred. The item was not added.";
}

$db->close();
?>
</body>
</html>
10. Objasniti slijedeći kod:
<!DOCTYPE html>
<html>
<body>

<canvas id="myCanvas" width="200" height="100"


style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>

<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect(0,0,150,75);
</script>

</body>
</html>
U ovom kodu će se nacrtati canvas veličine 200x100, dok u script tagu dohvaćamo element
id-a myCanvas koji će nacrtati pravokutnik crvene boje i veličine 150x75 unutar samog
canvasa.

11. Koristeći HTML5 napisati kod za stranicu na kojoj će se ispisati unutar canvas elementa tekst
Hello World fonta Arial 30px, sa koordinatama teksta 10 ,50 unutar canvas elementa.
<!DOCTYPE html>
<html>
<body>

<canvas id="myCanvas" width="200" height="100"


style="border:1px solid #d3d3d3;">
Your browser does not support the canvas element.
</canvas>

<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.font = "30px Arial";
ctx.fillText("Hello World",10,50);
</script>

</body>
</html>

12. Pokazati primjer kreiranja novog elementa u HTML5 sa proizvoljnim CSS-om.


<!DOCTYPE html>
<html>
<head>
<title>Styling the article element</title>
<script>document.createElement("myHero")</script>
<style>
myHero {
display:block;
background-color:#ddd;
padding: 50px;
font-size: 30px;
}
</style>
</head>
<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

<myHero>My First Hero</myHero>

</body>
</html>

13. Koristeći SVG pokazati primjer crtanja kruga proizvoljne boje i debljine ruba i boje
unutrašnjosti kruga.
<!DOCTYPE html>
<html>
<body>

<svg width="100" height="100">


<circle cx="50" cy="50" r="40"
stroke="green" stroke-width="4" fill="yellow" />
Sorry, your browser does not support inline SVG.
</svg>

</body>
</html>

You might also like