HTM, CSS és PHP tudnivalók

A leírás a HTML 4.01 Transitional verzióra és CSS3-ra vonatkozik

Tartalomjegyzék

HTML és CSS szintaxis ellenőrzése

A weboldalunk kódját a következő oldalakon ellenőrizhetjük:
  1. HTML: http://validator.w3.org/
  2. CSS: http://jigsaw.w3.org/css-validator/
Ha az oldalunk helyes, az alábbi módon egy erre utaló "pecsétet" tehetünk rá, amelyre kattintva bárki láthatja, tényleg jó-e a szintaxisunk. A "pecsétek" és linkjük html kódja (amelyet a weboldalunkra másolhatunk) a következő:
  1. HTML:
    <a href="http://validator.w3.org/check?uri=referer">
    <img src="http://www.w3.org/Icons/valid-html401.png" alt="Valid HTML4"></a>
  2. CSS:
    <a href="http://jigsaw.w3.org/css-validator/check/referer">
    <img src="http://www.w3.org/Icons/valid-css.png" alt="Valid CSS"></a>
A fenti html kódot helyezzük el tehát a html oldalunk tetszőleges részén. Itt a következő fog megjelenni:
Valid HTML4 Valid CSS

Vissza az elejére

HTML fájlok szerkezete

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  <title>Oldal címe</title>
</head>
<body>
  <h1>Címsor</h1>
  <p>Bekezdés</p>
</body>
</html>

Vissza az elejére

HTML címkék

Főcím<h1></h1>
Alcím<h2></h2>
Bekezdés<p></p> vagy <div></div>
Sortörés<br> (nincs záró címke!)
Vastag/dőlt/aláhúzott<b></b>, <i></i>, <u></u>
Beillesztett kép<img src="kep.png" alt="leírás"> (1: Nincs záró címke! 2: A képet ugyanabban a könyvtárban kell elhelyezni.)
Külső/belső link<a href="http://elte.hu">szöveg</a>, <a href="fajl.html">szó</a>
Hivatkozási pont<a name="pont"></a>
Számozott lista<ol>
  <li>Valami</li>
  <li>Valami2</li>
</ol>
Számozatlan lista <ul>
  <li>Valami</li>
  <li>Valami2</li>
</ul>
Táblázat<table>
  <tr><td>Bal fent</td><td>Jobb fent</td></tr>
  <tr><td>Bal lent</td><td>Jobb lent</td></tr>
</table>
Űrlap <form name="input" action="oldal.html" method="get">
  <label>Vezetéknév</label>
  <input type="text" name="vnev">
  <label>Keresztnév</label>
  <input type="text" name="knev">
  <input type="submit" value="Mehet">
</form>

Vissza az elejére

Stílustulajdonságok

Adott elem stílusának megadása: <div style="...">...</div> pl egy div elem stílusát adja meg, a <h1 style="...">...</h1> pedig egy h1 típusú címét. A style="..." stílus-megadásba a ... helyére az alábbiak szerint írhatunk tulajdonságokat.
Színcolor: red; vagy color: #ff00ff;
Háttérszínbackground: blue; vagy background: #00ff00;
Háttérképbackground-image: url('kepfajl.png');
Keretborder-style:solid/dashed/dotted;
border-width:5px;
border-color:black;
Méretwidth: 10px;
height: 100px;
Betűtípusfont-family: Arial/Courier/Times
font-size: 12px;
font-style: italic;
font-weight: bold;
Margó/behúzásmargin: 10px;
padding: 20px;
Szöveg igazításatext-align: center/right/justify;
Kép középre igazításadisplay: block;
margin-left: auto;
margin-right: auto;
Úsztatásfloat: right/left;

Vissza az elejére

Stílustulajdonságok megadása CSS fájlban

Készíteni kell egy valami.css nevű fájlt, és a HTML fájl fejlécét így kell módosítani, hogy tudjon az elkészített valami.css fájlról (csak a módosítandó sort írtam vastag betűvel)
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  <link rel="stylesheet" href="valami.css" type="text/css">
  <title>Oldal címe</title>
</head>

A CSS fájl (valami.css) tartalma a következőhöz hasonló lehet:
body {
  background: #ff0ff0;
  color: #00ff00;
  font-size: 12pt;
  margin: 0px;
  padding: 10px;
}
h1 {
  background: #00ff00;
  color: #ff0ff0;
}
a {
  text-decoration: none;
  font-weight: bold;
  background: #00ff00;
  color: #ff0ff0;
}
a:hover {
  background: #ff0ff0;
  color: #00ff00;
}
.kiemeles {
  color: red;
  background: yellow;

}

Vissza az elejére

HTML színkódok

                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   

Vissza az elejére

Oldal menüszerkezetének megadása

Ilyen kinézetű oldalt szeretnénk:
menuszerkezet
Pontosabban négy HTML fájlt, amely mind azonos stílusú, tartalmazza a menüt, de a jobb oldali részen látható tartalom más és más. Kell tehát négy HTML fájlt készíteni az alábbi megadott HTML kóddal, illetve egy CSS fájlt a szintén megadott CSS kóddal:
  1. fooldal.html
  2. elso.html
  3. masodik.html
  4. harmadik.html
  5. valami.css
A HTML fájlok ehhez hasonlóan nézzenek ki:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  <link rel="stylesheet" href="valami.css" type="text/css">
  <title>Oldal címe</title>
</head>
<body>
  <div class="menu">
    <a href="fooldal.html">Főoldal</a><br>
    <a href="elso.html">1. aloldal</a><br>
    <a href="masodik.html">2. aloldal</a><br>
    <a href="harmadik.html">3. aloldal</a><br>
  </div>
  <div class="tartalom">
    [Ide kerüljön a tartalom - ez mind a négy
    HTML fájlban más legyen, a többi azonos.]
  </div>
</body>
</html>

A CSS fájl tartalmazza ezt (az egyéb formázásokon kívül):
div.menu {
  position: fixed;
  float: left;
  width: 170px;
}
div.tartalom {
  margin-left: 190px;
}
Ezen felül jöhet a többi formázás, pl. a menü vagy a tartalom háttere, kerete, stb. Egy teljes példa elérhető a http://atomfizika.elte.hu/informatika/docs/pelda/keret.php címen (PHP rendszerben, de a stíluslehetőségeket jól mutatja).
Vissza az elejére

Bevezetés a PHP nyelvbe

A PHP nyelv

A PHP nyelv arra szolgál, hogy az oldalunk tartalmát dinamikusan változtathassuk. A PHP lehetőséget ad például a következőkre: Alapvetően úgy tudjuk ezeket megtenni, hogy a valami.html HTML fájlunk nevét valami.php névre változtatjuk, majd ebbe php parancsokat szúrunk, így (tehát alábbiakat valahova a HTML fájlba illesztjük; fontos, hogy akkor fogja tudni a szerver, hogy ebben a HTML fájlban PHP utasítások is vannak, ha a fájl kiterjesztése .php!): <?php
 ...
 ?>
A webszerver a PHP utasításokat feldolgozza, majd a HTML fájlt ezen feldolgozás után küldi el a szervernek.

PHP parancsok, változók definiálása

A legyegyszerűbb PHP parancs az, hogy "írjunk ki" valamit, erre szolgál a print függvény. Minden programozási nyelv alapfeladata, hogy írjunk ki egy rövid szöveget, ez tehát PHP-ban így néz ki:
<?php print("Hello world!"); ?>
Az aktuális dátumot és időt például így írhatjuk ki:
<?php print(date('Y. M. j. H:i')); ?>
Itt a print() és a date() PHP parancsok, amelyeket a szerver feldolgoz, mielőtt a weboldalt elküldené a kliensnek. Az print() kiírja a zárójelen belüli értéket, a date() pedig egy formázott dátumot ad meg (a formázást a zárójelen belüli karakterek szabják meg, az Y az évet jelöli, az Ma hónapot, stb. - további példákat itt találhatunk). Ezt a dátumot aztán a print() parancs írja bele a HTML fájlba.

További lényeges dolog minden programnyelvben, hogy hogyan definiálhatunk változókat. A változók célja az, hogy velük "megjegyezhetünk" valamit, egy számot, egy szót. Ennek módja a következő:
<?php
 $a = 1.3;
 $b = 321;
 $valami = "hello";
?>

Látható tehát, hogy a változóknak tetszőleges nevet adhatunk (az angol abc betűivel), de mindig $ jellel kezdődnek. Változók segítségével matematikai műveleteket is végezhetünk, például egy egyszerű szorzást így lehet megtenni:
<?php
  $a=5;
  $b=6.5;
  $c = $a + $b;
  print($c);
?>
Itt $a, $b és $c, változók (a $) jel jelzi, hogy tárolandó változóról van szó. Az print kiírja a HTML fájlba a végeredményt (csak azt az egy számot, semmi mást).

Fontos parancs az include("fajl.php");, amely egy másik fájlt illeszt be a parancs helyére. Ehhez a fajl.php fájlnak ugyanott kell lennie, mint ahol a szerkesztett fájlunk van. A tartalmát beilleszti az include parancs helyére, mintha oda írtuk volna (de az alapértelmezése a HTML, tehát ha PHP parancsokat akarunk bele írni, ugyanúgy jeleznünk kell ezt a megfelelő címkével.

Minden programnyelvben felmerülő kérdés, hogy hogyan lehet úgynevezett "megjegyzéseket" írni a kódba - ezek olyan utalások, amelyek a programot olvasó vagy szerkesztő emberek számára egyfajta kommentárként értelmezhetőek. A lényeg az, hogy ezek nem program-utasítások, hanem egyszerű szöveg, szakszóval megjegyzés. PHP-ban ilyet így készíthetünk:
<?php
  $a=5; //Itt megjegyezzük, hogy $a egy változó
  $b=6.5;
  /* Ide is tehetünk egy megjegyzést, ahol emlékeztetjük
  magunkat, hogy alább a kiírás következik */
  print($a);
?>

Néha szükséges, hogy megadjuk a PHP futattása során elkészült fájl típusát. Általában egy HTML fájlról van szó, ekkor a PHP fájl első sorába (pontosan oda!) ezt a PHP utasítást kell írnunk:
header("Content-type: text/html; charset=iso-8859-2");
PHP nyelven képeket is készíthetünk mindazonáltal, ekkor a PHP fájl első sora ezt kell, hogy tartalmazza:
header("Content-type: image/png");

Vissza az elejére

Öszetettebb PHP parancsok

Minden programnyelvben fontosak a kontroll szekvenciák, ciklusok. Ezek közül a négy legfontosabb a for, if, while és switch parancsok. A következőképpen használhatjuk őket:

További fontos tudnivaló, hogy a böngészőbe beírt URL, vagy egy linkben szereplő webcím gyakran tartalmaz ilyet: valami.php?oldal=1. Ezt a PHP kód tudja felhasználni, a következő módon:

<?php
  $p = $_GET["oldal"];
  if($p==1) include("elso.php");
  if($p==2) include("masodik.php");
?>

Vissza az elejére

Menüvezérelt weboldal készítése PHP segítségével

A fenti módszerhez hasonlóan készítjük el a weboldalunkat, de a PHP parancsok használata jelentős egyszerűsítést jelent majd. A négy HTML fájl helyett öt PHP fájlt készítünk (a CSS fájl azonos maradhat a korábbival):
  1. keret.php
  2. fooldal.php
  3. elso.php
  4. masodik.php
  5. harmadik.php
Az első PHP fájl tartalmazza az oldal keretszerkezetét, tehát így néz majd ki (figyeljünk a pirossal jelölt megváltozott részekre) a keret.php fájl:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  <link rel="stylesheet" href="valami.css" type="text/css">
  <title>Oldal címe</title>
</head>
<body>
  <div class="menu">
    <a href="keret.php">Főoldal</a><br>
    <a href="keret.php?oldal=1">1. aloldal</a><br>
    <a href="keret.php?oldal=2">2. aloldal</a><br>
    <a href="keret.php?oldal=3">3. aloldal</a><br>
  </div>
  <div class="tartalom">
    <?php
    $oldal = $_GET["oldal"];
    if($oldal==1)     include("elso.php");
    elseif($oldal==2) include("masodik.php");
    elseif($oldal==3) include("harmadik.php");
    else              include("fooldal.php");
     ?>
  </div>
</body>
</html>

A további négy fájlban (fooldal.php, elso.php, masodik.php, harmadik.php) csak a tartalmi rész legyen, tehát semmi html fejléc vagy hasonló. A teljes fooldal.php fájl például így nézhet ki esetleg:
<h1>Ez a főoldalam</h1>
<p>A bal oldalon található menüpontok közül választhatsz</p>
<p>A mai dátum: <?php print(date('Y. M. j.')); ?></p>
A többi három fájlt hasonlóan készíthetjük el, tehát bármilyen html fejléc és menü nélkül - mivel ezeket a fenti include parancs fogja beilleszteni a helyükre. A css fájlunk pedig lehet ugyanaz, ami a korábbiakban volt. Fontos, hogy a weboldalunkat a böngészőben a http://<azonosito>.web.elte.hu/<konyvtar>/keret.php címen érhetjük el.
Egy kidolgozott példát a http://atomfizika.elte.hu/informatika/docs/pelda/ címen találunk. A teljes anyag letölthető a http://atomfizika.elte.hu/informatika/docs/pelda.zip címről.

Vissza az elejére

HTML űrlapok és feldolgozásuk

A HTML űrlapokat a form címkével hozunk létre. Az űrlapon belül "input", azaz "bemeneti" mezők lesznek, ahogy azzal mindannyian találkoztunk már. A beviteli mező típusát a type="..." utasítás adja meg. Lehetnek szöveges beviteli mezők (text), van egyszerű választás (radio), többszörös választás (checkbox), de létrehozhatunk legördülő menüt is például a select paranccsal. Egy komplex példa az alábbiaknak megfelelően néz ki:
<form action="valami.php" method="post">
  Név:<br>
  <input type="text" name="nev"><br>
  Nap:<br>
  <input type="radio" name="nap" value="1"> Hétfő<br>
  <input type="radio" name="nap" value="2"> Kedd<br>
  Tananyag:<br>
  <input type="checkbox" name="anyag" value="1"> HTML<br>
  <input type="checkbox" name="anyag" value="2"> PHP<br>
  Csoport:<br>
  <select name="csoport">
    <option value="1">Első
    <option value="2">Második
  </select><br>
  <input type="submit" value="Mehet">
</form>
Ez az űrlap az alábbi módon néz majd ki:
Név:

Nap:
Hétfő
Kedd
Tananyag:
HTML
PHP
Csoport:


Látható, hogy az űrlapot egy <form> címke kezdi (és a megfelelő lezáró fejezi be). Az űrlap beviteli mezőit az <input type="..." name="..."> jellegű címkék jelentik. Többféle mező képzelhető el, a fenti példában a text, radio, checkbox és select típusú mezőket láthatjuk. Fontos még a form címkébe írandó action="valami.php", amely az űrlapot feldolgozó weboldal címe, illetve a method="post" pedig a feldolgozás módszerét jelöli.
Az űrlapok feldolgozása tehát php kóddal történik, a következő módon:
<?php
  $diak = $_POST["nev"];
  $nap = $_POST["nap"];
  $tananyag = $_POST["anyag"];
  $csop = $_POST["csoport"];

  if($csop == 1) print("Az első csoportban vagy<br>");
  else print("A második csoportban vagy<br>");

  if($tananyag == 1) print("HTML-ből kell felkészülnöd<br>");
  else print("PHP-ból kell felkészülnöd<br>");
 ?>
Egy kidolgozott példát a http://atomfizika.elte.hu/informatika/docs/pelda/ címen találunk. A teljes anyag letölthető a http://atomfizika.elte.hu/informatika/docs/pelda.zip címről.

Vissza az elejére