2020. március 31., kedd

Dinamikus weboldal készítése PHP segítségével 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:

    Űrlapok feldolgozása
    Az aktuális dátum/idő felhasználása
    Bonyolult számítások elvégzése
    Általában, dinamikus weboldalak készítése

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:

    IF:
    if($x>10)
    {
      print("Nagyobb");
    }
    else
    {
      print("Kisebb");
    }
    VAGY
    if($oldal=="elso") { include("elso.php"); }
    elseif($oldal =="masodik") { include("masodik.php"); }
    elseif($oldal =="harmadik") { include("harmadik.php"); }
    else { include("fooldal.php"); }

    FOR:
    for($i=0;$i<10;$i=$i+1)
    {
      $j= $i*$i*$i;
      print("$j<br>");
    }

    SWITCH:
    switch($karakter)
    {
      case "a":
        print("Ez egy a volt");
        break;
      case "b":
        print("Ez egy b volt");
        break;
      default:
        print("Egyik sem.");
    }

    WHILE:
    $i=0;
    while($i<10)
    {
      $j= $i*$i*$i;
      print("$j<br>");
      $i = $i+1;
    }


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):

    keret.php
    fooldal.php
    elso.php
    masodik.php
    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.

Nincsenek megjegyzések:

Megjegyzés küldése