itthon / Windows oktatóanyagok / Index php létrehozása. Dinamikus oldalak PHP-ben. Hozzon létre egy normál oldalkimeneti összetevőt

Index php létrehozása. Dinamikus oldalak PHP-ben. Hozzon létre egy normál oldalkimeneti összetevőt

Sok olvasó minden számítógépről szóló könyvben átfut mindenen, ami nem azonnali érdeklődésre tart számot, és továbbmegy arra, ami valójában akar tudni. Én személy szerint pontosan ezt csinálom. Aggodalomra azonban nincs ok – ritkán vannak olyan szakkönyvek, amelyeket a borítótól a borítóig el kell olvasni. Vagy talán pontosan ezt tetted – kihagytad a nyolc kezdeti fejezetet, és azért vetted fel ezt a fejezetet, mert annak volt a legérdekesebb címe? És ki szeretne időt vesztegetni a részletekre, amikor egy másik projekt lángokban áll a munkahelyén?

Szerencsére ez a sietség nem akadályozza meg abban, hogy megismerje a könyv második részét, amely arról szól, hogy a PHP-t használjuk webhelyek létrehozására és az internettel való interakcióra. Ebben a fejezetben megtudhatja, hogyan módosíthatja egyszerűen a weboldalak tartalmát, és hogyan navigálhat a weben hivatkozások és különféle szabványos funkciók segítségével. A következő fejezet kiegészíti a bemutatott anyagot - részletesen tárgyalja a felhasználói interakció eszközeit HTML űrlapokban, a 11. fejezet pedig az adatbázisokkal való interfész felépítését ismerteti. A 2. rész többi fejezete a PHP webes programozás nem triviális vonatkozásait tárgyalja.

Nem szabad azonban elfelejteni, hogy az 1. rész anyaga feltétlenül elengedhetetlen a PHP normál ismeretéhez. Feltételezzük, hogy elolvasta az első részt, így a példák a korábban tárgyalt fogalmak közül sokat fognak használni. Tehát, ha átfutotta a könyv egy részét, időnként vissza kell térnie az előző fejezetekhez, és utol kell érnie.

Egyszerű linkek

<а href = "date.php">

$link = "dátum.php";

nyomtatás"<а href = \"$link\">Tekintse meg a mai dátumot
\n"

Felmerülhet a kérdés, hogy miért van fordított perjel (\) az idézőjelek (") előtt a hivatkozási kódban? Ennek az az oka, hogy az idézőjelek speciális karakterek a PHP-ben, és karakterlánc-határolóként használatosak. Ezért az idézőjelek szó szerinti karakterláncok a karakterláncokban. árnyékolt.

Ha idegesít az idézőjelek elkerülése, kapcsolja be a magic_quotes_gpc módot a php.ini fájlban. Az eredmény az összes aposztróf, idézőjel, fordított perjel és null karakter. automatikusan kikerülnek a szövegben!

Fejlesszük a megadott példát. A hivatkozások listájának gyors megjelenítéséhez a böngészőben használhat egy tömböt:

// Hozzon létre szakaszok tömbjét

$contents - array("oktatóanyagok", "cikkek", "scriptek", "kapcsolat");

// A tömb minden egyes elemének szekvenciális áthurkolása és kimenete

for ($i = 0; $i< sizeof($contents; $i++)

nyomtatni" ".$contents[$i]."
\n";

// - a marker point endfor speciális megjelölése;

Fájlösszetevők (sablonok)

Elérkeztünk az egyik kedvenc PHP funkciómhoz. A sablon (a webes programozáshoz alkalmazva) egy webdokumentum része, amelyet több oldalon fog használni. A sablonok, akárcsak a PHP-függvények, megkímélnek az oldaltartalom és a programkód töredékeinek másolásával/beillesztésével járó fáradságtól. Az oldal léptékének növekedésével a sablonok jelentősége megnő, mivel ezek segítségével egyszerűen és gyorsan végezhet módosításokat a teljes oldal szintjén. Ez a rész ismertet néhány olyan lehetőséget, amelyek a legegyszerűbb sablonok használatakor nyílnak meg.

Általában a közös tartalom-/kóddarabokat (azaz sablonokat) külön fájlokban tárolják. Webdokumentum készítése során ezeket a fájlokat egyszerűen "beilleszti" az oldal megfelelő helyeire. A PHP két funkcióval rendelkezik erre: include() és request().

include() és követelmény()

A PHP egyik legkiemelkedőbb tulajdonsága, hogy képes sablonokat és programkönyvtárakat készíteni, majd új szkriptekbe beilleszteni. A könyvtárak használatával időt és erőfeszítést takaríthat meg a különböző webhelyek közös funkcióinak használatából. Az olvasók

programozási tapasztalat más nyelveken (pl. C, C++ vagy Java), ismeri a függvénykönyvtárak fogalmát és azok használatát a funkcionalitást bővítő programokban.

Egy vagy több fájl beillesztése egy szkriptbe a szabványos PHP request() és include() függvényekkel történik. Amint azt a következő részben látni fogjuk, ezen funkciók mindegyike egy adott helyzetben használatos.

Funkciók

A PHP négy funkcióval rendelkezik a fájlok PHP szkriptekbe való beillesztésére:

  • include();
  • include_once();
  • megkövetel();
  • igényel_egyszer().

A nevek hasonlósága ellenére ezek a funkciók különböző feladatokat látnak el.

Az include() függvény tartalmazza a fájl tartalmát egy szkriptben. Az include() függvény szintaxisa a következő:

include (fájlfájl]

Az include() függvénynek van egy érdekes tulajdonsága – feltételesen végrehajtható. Például, ha egy függvényhívás szerepel egy if utasításblokkban. akkor a fájl csak akkor kerül be a programba, ha az i f feltétel igaz. Ha az includeO függvényt egy feltételes parancsban használjuk, akkor az kell göndör kapcsos zárójelekbe vagy alternatív határolókba kell foglalni. Hasonlítsa össze a szintaktikai különbségeket a 9.1 és 9.2 listákban.

Felsorolás 9.1. Az include() helytelen használata

ha (some_conditional)

include("text91a.txt"); más

include("text91b.txt");

Felsorolás 9.2. Az include() helyes használata

if (some_conditional):

include("text91a.txt");

include("text91b.txt");

Az include fájlban található összes PHP kód szükségszerűen PHP címkékben van. Ne feltételezze, hogy egy PHP parancs fájlban való tárolása biztosítja a megfelelő feldolgozást:

Ehelyett a parancsot a megfelelő címkék közé kell csatolnia, amint az a következő példában látható:

print "ez egy érvénytelen belefoglaló fájl";

Az include_once() függvény ugyanazt teszi, mint az include(), egy kivétellel: ellenőrzi, hogy a fájl szerepel-e már, mielőtt bekerülne a programba. Ha a fájl már szerepel, akkor az include_once() hívás figyelmen kívül marad, ha pedig nem, akkor a fájl alapértelmezés szerint szerepel. Minden más tekintetben az include_once() nem különbözik az include()-tól. Az include_once() függvény szintaxisa a következő:

include_once (fájlfájl)

Általánosságban elmondható, hogy a request() függvény hasonló az include() függvényhez -- tartalmazza a sablont is a követelmény() hívást tartalmazó fájlban. A request() függvény szintaxisa a következő:

igényel (fájlfájl)

Van azonban egy fontos különbség a request() és include() függvények között. A request() paraméter által megadott fájl szerepel a szkriptben, függetlenül attól, hogy a parancsfájlban hol található a request(). Például, ha hamis feltétellel hívja meg a requestre() függvényt egy if blokkban, akkor a fájl továbbra is benne lesz a szkriptben!

Sok esetben célszerű létrehozni egy fájlt változókkal és egyéb információkkal, amelyeket a webhelyen használnak, majd szükség szerint hozzáadni azokat. Bár ennek a fájlnak a neve tetszőleges, általában init.tpl-nek hívom (az "initializaion.template" rövidítése). A 9.3-as lista megmutatja, hogyan néz ki egy nagyon egyszerű init.tpl fájl. A 9-4. listában az init.tpl tartalma a request() paranccsal szerepel a szkriptben.

Felsorolás 9.3. Példa inicializálási fájl

$site_title = "(!LANG:PHP receptek";!}

$contact_email = " [e-mail védett]";

$contact_name = "WJ Gilmore";

Felsorolás 9.4. Az init.tpl fájl használata

<? print $site_title; ?>

\"mail1 to:$contact_email\">$contact_name."; ?>

URL átadása a request() meghívásakor csak akkor engedélyezett, ha az "URL fopen wrappers" mód engedélyezve van (ez a mód alapértelmezés szerint engedélyezve van).

A webhely méretének növekedésével előfordulhat, hogy egyes fájlok többször is szerepelnek a szkriptben. Néha ez nem okoz problémát, de bizonyos esetekben a fájl újbóli engedélyezése visszaállítja a megváltozott változókat. Ha a függvények egy include fájlban vannak megadva, névütközések léphetnek fel. Ezzel el is jutunk a következő függvényhez, a request_once().

A request_once() függvény biztosítja, hogy a fájl csak egyszer kerüljön bele a szkriptbe. A requi re_onse() meghívása után a rendszer figyelmen kívül hagyja az összes további próbálkozást ugyanazon fájl felvételére. A request_onse() függvény szintaxisa a következő:

A webalkalmazások méretének növekedésével valószínűleg gyakrabban fogja használni a file include funkciót. Ezeket a függvényeket gyakran használják a könyv példáiban a kódredundancia csökkentése érdekében. Az első példákat az alapsablonok készítésének alapelveiről szóló következő részben tárgyaljuk.

Épületelemek

Egy tipikus weboldal szerkezetének meghatározásakor általában három részre bontom: fejlécre, törzsre és láblécre. Általában a legtöbb jól szervezett webhely címsora nem sokat változik; a fő rész az oldal kért tartalmát jeleníti meg, így az gyakran változik; Végül a lábléc szerzői jogi információkat és navigációs hivatkozásokat tartalmaz. A lábléc a fejléchez hasonlóan általában változatlan marad. Ne értsen félre – egyáltalán nem próbálom elfojtani a kreativitásodat. Sok nagyszerű webhelyet láttam, amelyek nem követték ezeket az elveket. Csak egy általános struktúrát próbálok kidolgozni, amely kiindulópontul szolgálhat a további munkához.

fejléc

Fejlécfájl (mint a 9.5-ös listában) szinte minden PHP-képes webhelyemen megtalálható. Ez a fájl tartalmazza

az egész webhelyre kiterjedő információk, például a cím, a kapcsolatfelvételi adatok és a HTML-oldal kódjának bizonyos összetevői.

Felsorolás 9.5. Példa fejlécfájlra

// Fájl: header.tpl

// Cél: fejlécfájl a PhpRecipes webhelyhez.

$site_name = "PHPRreceptek";

$site_email=" [e-mail védett]";

$site_path = "http://localhost/phprecipes";

<? print $site_name; ?>

// Az aktuális dátum és idő megjelenítése

dátum nyomtatása("F d, h:i a");

Nagyon gyakori, hogy a látogatók korlátozzák a hozzáférést a fájlok felvételére, különösen akkor, ha a fájlok érzékeny információkat (például jelszavakat) tartalmaznak. Az Apache-ban a http.conf vagy htaccess fájlok szerkesztésével megakadályozhatja bizonyos fájlok megtekintését. A következő példa bemutatja, hogyan lehet letiltani az összes .tpl fájl megtekintését:

parancs engedélyezni, megtagadni

Engedélyezés 127.0.0.1-től

A PHP és a webhely biztonsági kérdéseivel részletesen a 16. fejezet foglalkozik.

Élőfej

A fejlécet (láblécet) általában a webhely oldalainak alján található információnak nevezik - elérhetőségi adatok, linkek és szerzői jogi információk. Ezek az információk egy külön fájlba helyezhetők, és ugyanúgy sablonként szerepelhetnek, mint a fejléc. Tegyük fel, hogy az új év eljövetelével meg kellett változtatnia a szerzői jogi információkat, és a "Copyright © 2000-2001" formába kellett volna vinnie. Két módja van: töltsd a szentestét statikus oldalak százainak lázas szerkesztésével vagy használjon olyan sablont, mint a 9.6-os listában. Egy egyszerű változtatás, és visszatérhet az ünnepi munkákhoz.

Felsorolás 9.6. Példa láblécfájlra (footer.tpl)

kapcsolatba lépni |

az Ön adatait

Vegye figyelembe a $site_email globális változó használatát a láblécfájlban. Ennek a változónak az értéke oldalszintű, és feltételezzük, hogy a header.tpl és a footer.tpl fájl ugyanazon az utolsó oldalon lesz. Vegye figyelembe a $site_path jelenlétét is az Adatvédelem hivatkozásban. A sablonomban mindig megadom az összes hivatkozás teljes elérési útját -- ha a hivatkozás URL-je egyetlen névből állna: privacy.php, akkor a láblécfájl egy adott könyvtárba kerülne.

Fő rész

A fejléc és a lábléc tartalma az oldal fő részén található. Lényegében ez a fő rész, amely a webhely látogatóit érdeklő információkat tartalmazza. A fejléc látványosan néz ki, a lábléc hasznos információkat tartalmaz, de az oldal fő részére az, hogy a felhasználók újra és újra visszatérnek az oldalra. Bár konkrét oldalszerkezettel kapcsolatban nem tudok tanácsot adni, a 9-7. listában szereplő sablonok sokkal könnyebbé teszik az oldaladminisztrációt.

Felsorolás 9.7. Példa az oldal főtörzsére (index_body.tpl)

/tutorials.php">oktatóanyagok

cikkek

scriptek

kapcsolat

Üdvözöljük a PHPRecipes oldalán. a PHP szkriptek, oktatóanyagok kiindulópontja,

és információk az ínyenc főzésről!

Mindent összerakva: fejléc, lábléc és törzs

Talán a hangulatomat leginkább "Hannibal" Smith ezredes (George Peppard) fejezi ki a híres A-Team sorozatból: "Imádom, ha minden a helyére kerül." Valami hasonlót tapasztalok, amikor különböző sablonokat kombinálunk egy teljes webdokumentummá. Három dokumentumszakasz: header.tpl, index_body.tpl és footer.tpl kombinálásával gyorsan elkészíthet egy egyszerű oldalt, mint a 9-8. listában.

Felsorolás 9.8. Az index.php oldal felépítése több fájl hozzáadásával

// Fájl: index.php

// Cél: PHPRecipes kezdőlap

// Cím megjelenítése

include("header.tpl");

// Kimeneti főtörzs

include("index_body.tpl");

// Kimeneti lábléc

include("lábléc.tpl");

Nos, hogyan? Három egyszerű parancs – és máris kész oldal áll előtted. Az összefoglaló oldal szövege a 9.9-es listában látható.

Felsorolás 9.9. A 9-8. listába beépített HTML oldal (index.php)

PHPReceptek

augusztus 23. 15:17

oktatóanyagokat

cikkeket

forgatókönyvek

kapcsolatba lépni

Üdvözöljük a PHPRecipes-ben, a PHP szkriptek, oktatóanyagok kiindulópontjában,

és ínyenc főzési tippeket és recepteket!

Copyright 2000 PHPRecipes. Minden jog fenntartva.

kapcsolatba lépni |

a magánéletét

ábrán. A 9-1. ábra azt mutatja, hogyan néz ki az eredményül kapott oldal a böngészőben. Bár általában nem használok táblázatszegélyeket, ezúttal azért tettem bele, hogy az oldal három része jobban kiemelkedjen az ábrán.

Rizs. 9.1. A listába épített oldal megjelenése 9.8

Sablon optimalizálás

A második (szerintem előnyösebb) változatban a sablonok külön fájlban elhelyezett függvények formájában készülnek. Ez további strukturálást biztosít a sablonokhoz. Ezt a fájlt inicializálási fájlnak nevezem, és más hasznos információkat tárolok benne. Mivel már megnéztük a viszonylag hosszú fejléc- és lábléc-példákat, a 9-10. és 9-11. listákat kissé lerövidítettük az új ötlet illusztrálására.

Felsorolás 9.10. Optimalizált webhelysablon (site_init.tpl)

// Fájl: site_init.tpl

// Cél: PhpRecipes inicializálási fájl

$site_name = "PHPRreceptek";

$site_email = " [e-mail védett]";

$site_path = "http://localhost/phprecipes/";

függvény show_header($site_name) (

<? print $site_name: ?>

Ez a fejléc

függvény show footer()

Ez a lábléc

Felsorolás 9.11. Inicializáló fájl alkalmazása

// Inicializációs fájl szerepeltetése

include("site_init.tpl");

// Cím megjelenítése

fejléc megjelenítése($webhely_neve);

// Törzstartalom Ez néhány törzsinformáció

// Lábléc megjelenítése Show_footer();

Projekt: oldalgenerátor

Bár az általam készített weboldalak többsége az adatbázisból leolvasott információk alapján generálta az oldalak fő tartalmát, mindig lesz néhány oldal, ami alig változik. Különösen a fejlesztőcsapattal kapcsolatos információkat, elérhetőségeket, hirdetéseket stb. tudnak megjeleníteni. Ezeket a "statikus" információkat általában egy külön mappában tárolom, és egy PHP szkript segítségével töltöm be, amikor kérik. Természetesen van egy kérdés - ha ez statikus információ, akkor mire való a PHP szkript? Miért nem tölt be normál HTML oldalakat? A PHP előnye, hogy szükség szerint használhat sablonokat és statikus kivonatokat szúrhat be.

<а href = "/static.php?content=$content">Statikus oldalnév

Kezdjük statikus oldalak létrehozásával. Az egyszerűség kedvéért három olyan oldalra korlátozom magam, amelyek a webhelyről (9.12-es lista), hirdetésről (9.13-as lista) és elérhetőségi adatokról (9.14-es lista) tartalmaznak információkat.

Felsorolás 9.12. Webhely információ (about.html)

A PHPRecipesről

Milyen programozó nem keveri az egész éjszakai programozást ínyenc sütikkel. Itt a PHPRecipesben. alig telik el éjszaka anélkül, hogy valamelyik kódolónk ne keverjen egy kis HTML-t egy finom portobello gombával vagy akár fondüvel. Ezért úgy döntöttünk, hogy elhozzuk nektek a legjobb, amit a legjobban szeretünk: PHP és étel!

Így van, olvasók. Oktatóanyagok, forgatókönyvek, szuflák és egyebek. 0nly a PHPRecipesnél.

Rekláminformációk

Függetlenül attól, hogy a legújabb PHP technikák elsajátítására jönnek-e, vagy azért, hogy felfrissítsék a módját

csirkét sütni, fogadni lehet, hogy olvasóink döntéshozók. Ők az Ipar

szakemberek, akik döntéseket hoznak a cégük vásárlásáról.

Rekláminformációkért forduljon

">[e-mail védett].

Felsorolás 9.14. Elérhetőségek (contact.html)

Lépjen kapcsolatba velünk

Van valami kódolási tipped?

Ismeri a tökéletes feltétet a kandírozott jam?

Tudasd velünk! Vegye fel a kapcsolatot a csapattal a telefonszámon [e-mail védett].

Térjünk át a static.php oldal felépítésére, amely megjeleníti a kért statikus információkat. Ez a fájl (lásd a 9-15. listát) tartalmazza webhelyünk oldalösszetevőit és a site_init.tpl inicializálási fájlt.

Felsorolás 9.15. Statikus oldalak általános kimenete (static.php)

// Fájl: static.php

// Cél: A kért statikus oldalak megjelenítése.

// FIGYELEM: feltételezzük, hogy a "site_init.tpl" fájl és minden

// a statikus fájlok ugyanabban a könyvtárban vannak.

// A függvények és változók betöltése include("site_init.tpl"):

// Cím megjelenítése show_header($site_name);

// A kért tartalom megjelenítése include("$content.html"):

// Lábléc megjelenítése lábléc megjelenítése();

Most minden készen áll a fő forgatókönyv felépítéséhez. Csak adja meg az oldalt

<а href = "static.php?content=about">Statikus oldalnév

Rekláminformációk

Lépjen kapcsolatba velünk

Ezen hivatkozások bármelyikére kattintva betöltődik a megfelelő static.php-be ágyazott oldal a böngészőben!

Eredmények

Ebben a fejezetben megismerkedhetsz a PHP elsődleges céljával: a weboldalak dinamikus létrehozásával. A következő kérdéseket vették figyelembe:

  • URL feldolgozás;
  • dinamikus tartalom készítése;
  • alapsablonok beépítése és felépítése.

A fejezet egy oldalgenerátorral zárul, egy olyan programmal, amely statikus oldalakat tölt be egy sablonba, és megkönnyíti a nagyszámú statikus HTML-oldal karbantartását.

A következő fejezet a PHP HTML-űrlapokkal kombinált használatáról szól, hogy nagymértékben növelje webhelye interaktivitását. És akkor - interakció az adatbázisokkal! Sok érdekes dolgot kell tanulnod.

Szia! Most megpróbáljuk megvalósítani a legegyszerűbb regisztrációt az oldalon a PHP + MySQL használatával. Ehhez telepíteni kell az Apache-t a számítógépére. A szkriptünk működése az alábbiakban látható.

1. Kezdjük a felhasználók tábla létrehozásával az adatbázisban. Tartalmazni fogja a felhasználói adatokat (bejelentkezés és jelszó). Menjünk a phpmyadmin oldalra (ha létrehoz egy adatbázist a számítógépén http://localhost/phpmyadmin/). Hozzon létre egy táblázatot felhasználókat, akkor 3 mezője lesz.

Én mysql adatbázisban készítem, másik adatbázisban is elkészítheted. Ezután állítsa be az értékeket az ábrán látható módon:

2. Csatlakozás ehhez a táblázathoz szükséges. Hozzunk létre egy fájlt bd.php. A tartalma:

$db = mysql_connect("az Ön MySQL szervere","bejelentkezés erre a szerverre","jelszó ehhez a szerverhez");
mysql_select_db ("a csatlakozáshoz szükséges adatbázis neve", $db);
?>

Az én esetemben így néz ki:

$db = mysql_connect("localhost","felhasználó","1234");
mysql_select_db("mysql",$db);
?>

spórolunk bd.php.
Kiváló! Van egy táblánk az adatbázisban, kapcsolatunk vele. Most elkezdhet létrehozni egy oldalt, ahol a felhasználók meghagyják adataikat.

3. Hozzon létre egy reg.php fájlt tartalommal (minden megjegyzés benne):



Bejegyzés


Bejegyzés
















4. Hozzon létre egy fájlt, amely adatokat visz be az adatbázisba és menti a felhasználót. save_user.php(belül megjegyzések):



{
}
//ha megadja a bejelentkezési nevet és a jelszót, akkor azokat feldolgozzuk, hogy a címkék és a szkriptek ne működjenek, soha nem tudhatod, mit adhatnak meg az emberek


// felesleges szóközök eltávolítása
$bejelentkezés = trim($login);
$jelszó = trim($jelszó);
// csatlakozik az adatbázishoz
// ellenőrizze, hogy létezik-e azonos bejelentkezési névvel rendelkező felhasználó
$result = mysql_query("SELECT id FROM user WHERE login="$bejelentkezés"",$db);
if (!üres($myrow["id"])) (
exit("Sajnáljuk, a megadott felhasználónév már regisztrálva van. Adjon meg másik felhasználónevet.");
}
// ha nincs, akkor mentse az adatokat
$result2 = mysql_query ("INSERT INTO user (bejelentkezés,jelszó) VALUES("$bejelentkezés","$jelszó")");
// Ellenőrizze, hogy vannak-e hibák
if ($eredmény2=="IGAZ")
{
echo "Sikeres regisztráció! Most már beléphet az oldalra. Főoldal";
}
más(
echo "Hiba! Nincs bejelentkezve.";
}
?>

5. Felhasználóink ​​most már regisztrálhatnak! Ezután egy "ajtót" kell készítenie, hogy belépjen az oldalra a már regisztrált felhasználók számára. index.php(belül megjegyzések):

// az egész eljárás munkameneteken működik. Ebben tárolódnak a felhasználó adatai, amíg az oldalon tartózkodik. Nagyon fontos az oldal legelején elindítani őket!!!
session_start();
?>


Főoldal


Főoldal











Regisztráció



// Ellenőrizze, hogy a bejelentkezési és a felhasználói azonosító változók üresek-e
if (üres($_SESSION["bejelentkezés"]) vagy üres($_SESSION["id"]))
{
// Ha üres, nem jelenítjük meg a hivatkozást
echo "Vendégként vagy bejelentkezve
Ez a link csak regisztrált felhasználók számára érhető el";
}
más
{

Fájlban index.php megjelenítünk egy linket, amely csak regisztrált felhasználók számára lesz nyitva. Ez a szkript lényege: korlátozni kell az adatokhoz való hozzáférést.

6. Van egy fájl a megadott bejelentkezési név és jelszó ellenőrzésével. testreg.php (megjegyzések belül):

session_start();// az egész eljárás munkameneteken működik. Ebben tárolódnak a felhasználó adatai, amíg az oldalon tartózkodik. Nagyon fontos az oldal legelején elindítani őket!!!
if (isset($_POST["bejelentkezés"])) ( $bejelentkezés = $_POST["bejelentkezés"]; if ($login == "") ( unset($login);) ) //beírja a bejelentkezést a felhasználót a $login változóba, ha üres, akkor megsemmisítjük a változót
if (isset($_POST["jelszó"])) ( $jelszó=$_POST["jelszó"]; if ($jelszó =="") ( unset($password);) )
//a felhasználó által beírt jelszót tedd a $password változóba, ha üres, akkor töröld a változót
if (empty($login) or empty($password)) //ha a felhasználó nem adott meg bejelentkezési nevet vagy jelszót, akkor hibát adunk ki és leállítjuk a szkriptet
{
exit("Nem adott meg minden információt, menjen vissza és töltse ki az összes mezőt!");
}
//ha megadja a bejelentkezési nevet és a jelszót, akkor azokat feldolgozzuk, hogy a címkék és a szkriptek ne működjenek, soha nem tudhatod, mit adhatnak meg az emberek
$bejelentkezés = stripslashes($bejelentkezés);
$bejelentkezés = htmlspecialchars($bejelentkezés);
$jelszó = stripslashes($jelszó);
$jelszó = htmlspecialchars($jelszó);
// felesleges szóközök eltávolítása
$bejelentkezés = trim($login);
$jelszó = trim($jelszó);
// csatlakozik az adatbázishoz
include("bd.php");// a bd.php fájlnak ugyanabban a mappában kell lennie, mint mindenki másnak, ha nem csak az elérési utat módosítja

$result = mysql_query("SELECT * FROM felhasználók WHERE login="$bejelentkezés"",$db); //a megadott bejelentkezési névvel rendelkező felhasználó összes adatának lekérése az adatbázisból
$myrow = mysql_fetch_array($eredmény);
if (üres($myrow["jelszó"]))
{
//ha a megadott bejelentkezési névvel rendelkező felhasználó nem létezik
}
más(
//ha létezik, ellenőrizze a jelszavakat
if ($myrow["jelszó"]==$jelszó) (
//ha a jelszavak egyeznek, akkor elindítjuk a munkamenetet a felhasználó számára! Gratulálhatsz neki, belépett!
$_SESSION["bejelentkezés"]=$myrow["bejelentkezés"];
$_SESSION["id"]=$myrow["id"];//ezeket az adatokat nagyon gyakran használják, így a bejelentkezett felhasználó "viszi"
echo "Sikeresen bejelentkezett az oldalra! Főoldal";
}
más(
//ha a jelszavak nem egyeznek

Exit("Elnézést, a megadott bejelentkezési név vagy jelszó helytelen.");
}
}
?>

Rendben, most mindennek vége! Lehet, hogy a lecke unalmas, de nagyon hasznos. Itt csak a regisztráció ötlete jelenik meg, majd javíthatja: védelmet, tervezést, adatmezőket ad hozzá, avatarokat tölt fel, jelentkezzen ki a fiókjából (ehhez egyszerűen törölje a változókat a munkamenetből a funkcióval nincs beállítva) stb. Sok szerencsét!

Mindent megnéztem, jól működik!

Az utolsó leckében kitaláltuk, hogy az utazássablon milyen blokkokból áll majd, így már indulhat is. Kezdjük két mappa létrehozásával:

képek – ez a mappa tartalmazza a sablon stílusához használt képfájlokat. Mert még nincs tervezési fejlesztésünk, akkor dobjon be egy grafikus fájlt ebbe a mappába, különben a Joomla nem telepíti a sablont és hibát ad, ha a mappa üres.

FIGYELEM: Tartalomgrafika nem helyezhető el a sablon képek mappájában!

css - ez a mappa tartalmazni fogja lépcsőzetes stíluslapfájlok. Kezdésként helyezzünk el benne egy üres template.css fájlt, melynek segítségével különféle tervezési stílusok lesznek hozzárendelve az oldalelemekhez.

Ezután megkezdheti a legfontosabb index.php fájl létrehozását, amely meghatározza a webhely elemeinek vizuális helyét, és megmondja a Joomla CMS-nek, hogy melyik blokkban helyezze el a különböző összetevőket és modulokat. A fájl a PHP és a HTML kombinációja.

Mindig csak Macromedia Dreamweavert használok kódíráskor. Kiváló program, kezdőknek bátran ajánlom, mert. ha hibát követ el a kódon való munka közben, a program biztosan kiemeli a jammet.

Az oldalon egy oktatóanyagot talál a Macromedia Dreamweaverről. Ha weboldalakat szeretne fejleszteni, akkor ezt a programot legalább a kezdeti szinten el kell sajátítania a sablonkódok hibamentes szerkesztése érdekében.

Az oldal elemeinek (blokkjainak) pozicionálása HTML kóddal történik, konkrétan DIV tageket fogunk használni. De ahogy az oldalunk a Joomla motoron fog működni, i.e. dinamikus lesz, a PHP nyelvet is használnod kell. Segítségével meghatározzuk, hogy mely blokkokban helyezkedjenek el a modulok kimenetének pozíciói, és hogyan hívják ezeket a pozíciókat, összeomlanak-e a blokkok vagy sem. Csatlakoztassunk stíluslapokat külső fájlokból, tartalomnyelvet, állítsuk be, hogyan változzon a webhely mérete stb.

index.php

Fájl fejléc

A fájl fejléce több részből áll. A PHP fejléckódjának első része annak biztosítása, hogy biztonsági okokból ne érje el közvetlenül a fájlt.

< ?php
definiált ("_JEXEC" ) vagy die ;
JHtml::_("behavior.framework" , true ) ;
$app = JFactory::getApplication() ;
?>
< ?php echo "< ?" ; ?> xml version="1.0" kódolás=" < ?php echo $ez-> _charset ?> "?>

A DOCTYPE egy nagyon fontos paraméter, amely alapján a böngésző eldönti, hogyan jelenítse meg ezt az oldalt, és hogyan értelmezze a CSS-t.

< ! DOCTYPE html PUBLIC "- / / W3C/ / DTD XHTML 1.0 Strict/ / EN""http: // www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

A következő részlet kivonatok telepített nyelv a globális konfigurációból.

< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang=" < ?php echo $ez->nyelv; ?>" lang=" < ?php echo $ez->nyelv; ?>" dir=" < ?php echo $ez-> irány; ?>" >

Az alábbi kódrészlet tartalmazza További információ a globális konfigurációban beállított fejléchez. Ezt az információt megtekintheti bármely weboldal forráskódjában. Különösen ezek azok a metacímkék, amelyekről már tud.

< head>
< jdoc:include type= "head" / >

A fejléc következő sorai a fő Joomla CSS-stílusokra mutató hivatkozásokat tartalmaznak.

< link rel= "stylesheet" href= "< ?php echo $ez-> baseurl ?> /templates/system/css/system.css" type="text /css" / >
< link rel= "stylesheet" href= "< ?php echo $ez-> baseurl ?> /templates/system/css/general.css" type="text /css" / >

A sablontervezési stílusok használatához hivatkozást készítünk a template.css lépcsőzetes stíluslapokat tartalmazó fájlra, amely a CSS mappában található. Nem számít, hogy ez a fájl még mindig üres, a lényeg a csatlakoztatás, a tervezéssel később foglalkozunk, amikor telepítjük a sablont Joomlára. Így könnyebben látható lesz az eredmény.

< link rel= "stylesheet" href= "< ?php echo $ez-> baseurl ?> /sablonok/< ?php echo $ez-> sablon ?> / css/ template.css" type="text /css" / >

A következő kódrészlet lehetővé teszi a bal vagy jobb oldali oszlop összecsukását, ha nincsenek modulok a „bal” és „jobb” pozícióban. Ha mindkét oszlop össze van csukva, akkor a tartalom az oldal szélességének 100%-át elfoglalja. Ha csak egy oszlop szerepel, akkor a tartalom 80%-ot foglal el. Két oszloppal együtt a tartalom az oldal szélességének 60%-át teszi ki.

< ?php
ha ($ ez-> countModules("bal és jobb" ) == 0) $contentwidth = "100" ;
ha ($ ez-> countModules("bal vagy jobb" ) == 1) $contentwidth = "80" ;
ha ($ ez-> countModules("bal és jobb" ) == 1) $contentwidth = "60" ;
?>

Fejléc bezárása

< / head>

< body>

Az „oldal” blokk csak az oldal oldalának dizájnját tartalmazza, szélessége 950px.

< div id= "page" >

A "felső" blokk az oldal legtetején található, és két blokkot tartalmaz: "logo" és "user1".

< div id= "top" >

A „logó” bokeh-ben elhelyezzük a logó grafikus fájlt, ez lesz beírva a stíluslapokba. De az index.php fájlba írjuk az oldal nevének automatikus kimenetét, és a név a H1 tag-be kerül, ami nagyon fontos a keresőoptimalizálás szempontjából.

< div id= "logo" >
< h1> < ?php echo $app - >getCfg("webhelynév") ; ?>< / h1>
< / div>

Határozzuk meg a "felhasználó1" pozíciót az azonos nevű blokkban a webhelykereső modul megjelenítéséhez.

< div id= "user1" >
< jdoc:include type= "modules" name= "user1" style= "xhtml" / >
< / div>
< / div> < ! - - конец блока top - - >

A vízszintes menümodul kimenete a "user2" blokkban a "user2" pozícióban. A blokk összeomlik, ha nincs modul azon a helyen.

< ?php if ($ez-> countModules("felhasználó2")) : ?>
< div id= "user2 " >
< jdoc:include type= "modules" name= "user2" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Ezután jön a webhely fejléc blokkja "fejléc". Ebben meghatározzuk a modulok kimenetének "fejléc" pozícióját. A blokk összeomlik, ha nincs modul azon a helyen. Szándékosan bővítettem ennek a blokknak a lehetőségeit, hogy ne csak a fejlécképet, hanem a képforgatókat is el tudjam helyezni benne.

< ?php if ($ez-> countModules(" fejléc") ) : ?>
< div id= "fejléc">
< jdoc:include type= "modules" name= "fejléc" style="xhtml" />
< / div>
< ?php endif ; ?>

A "user3" blokkban adja meg a "user3" pozíciót a modulok megjelenítéséhez.

A blokk összeomlik, ha nem jelenik meg modul ezen a "felhasználó3" helyen.

< ?php if ($ez-> countModules("felhasználó3")) : ?>
< div id= "user3" >
< jdoc:include type= "modules" name= "user3" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Megnyílik a bal oldali oszlop blokkja, amely összeomlik, ha nincs modul a „bal” pozícióban.

< ?php if ($ez-> countModules("bal" ) ) : ?>
< div id= "left" >
< jdoc:include type= "modules" name= "left" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Megnyílik a legfontosabb tartalomblokk, amely az oldal szélességének 100%-át, 80%-át és 60%-át is elfoglalhatja a benne foglalt oszlopok számától függően.

< div id= "content< ?php echo $contentwidth ; ?> " >

Üzenetek megjelenítése komponensekben

< jdoc:include type= "message" / >

Tartalom kimenet.

< jdoc:include type= "component" style= "xhtml" / >
< / div> < ! - - конец блока контента- - >

Megnyílik a jobb oldali oszlop blokkja, amely összeomlik, ha egyetlen modul sem lesz „jobb” pozícióban.

< ?php if ($ez-> countModules("jobbra") ) : ?>
< div id= "rigth" >
< jdoc:include type= "modules" name= "right" style= "xhtml" / >
< / div>
< ?php endif ; ?>

A „lábléc” blokk kimenete, amely a „HTML kód” modul szerzői jogi információkkal való megjelenítésére szolgál. Ide is elhelyezheti az alját vízszintes menü vagy tartalombemutató modul. A blokk összeomlik, ha egynél több modul nem jelenik meg ebben a "lábléc" pozícióban

< ?php if ($ez-> countModules("lábléc")) : ?>
< div id= "footer" >
< jdoc:include type= "modules" name= "footer" style= "xhtml" / >
< / div>
< ?php endif ; ?>

A webhely oldalblokkja az "oldal", a törzs és az összes kód zárva van.

< / div> < ! - - конец блока page- - >
< / body> < ! - - конец блока body - - >
< / html> < ! - - конец кода- - >

Létrehoztunk egy teljes index.php fájlt. Most már tudja, milyen parancsokkal és milyen sorrendben jelennek meg a sablonblokkok.

FIGYELEM: Ahhoz, hogy a sablonkód kiolvasható legyen a joomla adminisztrációs panelről, az index.php fájlt meg kell nyitni az AkelPad szerkesztőben, és UTF-8 kódolásban kell elmenteni, miközben törölni kell a BOM bejelölését. Ha a Macromedia Dreamweavert használta a fájl kezeléséhez, akkor a visszatérési menüben válassza a "Szerkesztés" > "Oldaltulajdonságok" lehetőséget, és válassza ki a Unicode dokumentumkódolást (utf-8), miközben törölje a jelet az "Unicode aláírások (BOM) engedélyezése" jelölőnégyzetből. . Viszont erősen ajánlom, hogy ne a Joomla adminisztrációs paneljéből szerkessze a kódot, ha valamit elront – nincs visszaút, ellentétben a Macromedia Dreamweaver programmal, ahol mindig vissza lehet vonni a változtatásokat.

A blokkok kialakítását a template.css tartalmazza. De a stíluslapokat testreszabjuk a sablon Joomla 3 (joomla 2.5) rendszerre történő telepítése után, és ehhez létre kell hozni

Hozzon létre egy hello.php nevű fájlt a webszerver gyökérkönyvtárában (DOCUMENT_ROOT), és írja be a következőket:

1. példa Az első PHP szkript: hello.php



PHP tesztelése


"

Helló Világ!

" ; ?>

Nyisd ki adott fájl böngészőben a webszerver nevének beírásával és /hello.php. Helyi fejlesztésnél ez a link valami ilyesmi lehet http://localhost/hello.php vagy http://127.0.0.1/hello.php, de ez a szerver beállításaitól függ. Ha minden megfelelően van beállítva, ezt a fájlt a PHP feldolgozza, és a böngésző a következő szöveget jeleníti meg:

PHP teszt

Helló Világ

Ez a program rendkívül egyszerű, és nem is kell PHP-t használni egy ilyen egyszerű oldal létrehozásához. Minden, amit tesz, az a következtetés Helló Világ PHP utasítás használatával visszhang. Felhívjuk figyelmét, hogy a fájl nem kell végrehajthatónak lennie vagy más módon különbözik a többi fájltól. A kiszolgáló tudja, hogy ezt a fájlt a PHP-nek kell feldolgoznia, mivel a fájl ".php" kiterjesztéssel rendelkezik, amely a szerver beállításai szerint az ilyen fájlokat át kell adni a PHP-nek. Tekintsd úgy, mint egy normál HTML-fájlt, amely elég szerencsés, ha rendelkezik egy speciális címkével (az Ön számára is elérhető), amelyekkel sok klassz dolog van.

Ha ez a példa nem jelenít meg semmit, vagy egy letöltési ablakot jelenít meg, vagy ha a teljes fájlt szöveges formában látja, akkor valószínűleg a webszerver nem támogatja a PHP-t, vagy rosszul lett beállítva. Kérje meg a kiszolgáló rendszergazdáját, hogy engedélyezze ezt a támogatást. Ajánlja fel neki a telepítési utasításokat: ennek a dokumentációnak a Telepítés című részét. Ha otthoni (helyi) PHP szkripteket fejleszt, akkor olvassa el ezt a fejezetet is, hogy megbizonyosodjon arról, hogy minden megfelelően van beállítva. Győződjön meg arról is, hogy a fájlt a kiszolgálótól kéri a http protokollon keresztül. Ha csak megnyitja a fájlt a saját fájlrendszer, azt nem a PHP fogja feldolgozni. Ha a problémák továbbra is fennállnak, nyugodtan kérjen segítséget a PHP támogatási elismervényei közül.

A példa célja a PHP speciális címkék formátumának bemutatása. Ebben a példában használtuk nyitó tagként, majd a PHP parancsok záró címkével végződnek ?> . Így a HTML fájlban bárhol "beugorhat" és "kiugorhat" a PHP módból. Erről bővebben a kézikönyv Alapszintaxis című részében olvashat.

Megjegyzés: Megjegyzés az újsorokról

A sortörések keveset jelentenek a HTML-ben, de érdemes a HTML-t olvashatóan tartani úgy, hogy új sorba tördeljük. A PHP automatikusan eltávolítja az újsorokat közvetlenül a zárócímke után ?> . Ez rendkívül hasznos lehet, ha sok PHP kódblokkot használ, vagy olyan PHP fájlokat tartalmaz, amelyeknek nem szabad semmit kiadniuk. Ugyanakkor zavaró is lehet. A záró címke után szóközt tehet ?> és akkor a szóköz az újsorral együtt kerül kiadásra, vagy a PHP kódblokkból az utolsó echo/print híváshoz is hozzáadhat egy újsort.

Megjegyzés: Néhány szó a szövegszerkesztőkről

Sokan vannak szövegszerkesztőkés integrált fejlesztői környezetek (IDE-k), ahol PHP-fájlokat hozhat létre és szerkeszthet. Egyes szerkesztők listáját a » PHP szerkesztők listája című részben találja. Ha szeretne szerkesztőt ajánlani, látogasson el erre az oldalra, és kérje egy szerkesztő felvételét a listára. A szintaktikai kiemeléssel rendelkező szerkesztő használata nagy segítséget jelenthet a munkájában.

Megjegyzés: Néhány szó a szövegszerkesztőkről

Szövegszerkesztők (StarOffice Writer, Microsoft Word, Abiword stb.) a legtöbb esetben nem alkalmasak szerkesztésre PHP fájlok. Ha továbbra is használni szeretné ezek bármelyikét a tesztszkripthez, győződjön meg róla, hogy a fájlt más néven menti egyszerű szöveg(sima szöveg), különben a PHP nem fogja tudni olvasni és futtatni a szkriptet.

Megjegyzés: Néhány szó a Windows Jegyzettömbről

PHP szkriptek írásakor a beépített Windows Jegyzettömb.php kiterjesztésű fájlokat kell menteni. (A Jegyzettömb automatikusan hozzáadja a .txt kiterjesztést, ha nem hajtja végre a következő lépéseket.) Amikor a rendszer felkéri, hogy nevezze el a fájlt a mentéskor, írja be a fájlnevet idézőjelek közé (például "hello.php" ). Ezenkívül kattintson a legördülő menüre " Szöveges dokumentumok" a fájl mentése párbeszédpanelen, és válassza ki benne az "Összes fájl" lehetőséget. Ezt követően megadhatja a fájl nevét idézőjel nélkül.

Most, hogy sikeresen elkészített egy működő PHP szkriptet, itt az ideje, hogy létrehozza a valaha volt leghíresebb PHP szkriptet! Hívjon függvényt phpinfo()és sokakat fogsz látni hasznos információ a rendszerről és a beállításokról, például az elérhető előre definiált változókról, a betöltött PHP modulokról és a beállítási lehetőségekről. Szánjon egy kis időt ennek a fontos információnak a tanulmányozására.

2. példa Rendszerinformációk lekérése PHP-ből

A harmadik probléma megoldására kiválóan alkalmas a Denwer program, amely ingyenesen telepíthető a számítógépére. Ha nem tudja, milyen program ez, akkor azt tanácsolom, hogy olvassa el: hogyan kell telepíteni a Denwert, ez a cikk lépésről lépésre elmagyarázza (kezdők számára), hogyan kell telepíteni és hogyan kell használni.

Természetesen vannak más eszközök is, amelyek lehetővé teszik a PHP értelmezését. Például az Apatch, de ez meglehetősen bonyolult a beállításokban, és ha kezdő vagy, akkor nem javaslom, hogy kezdj vele.

Ahhoz, hogy elkezdhess egy webhely fejlesztését PHP-ben, alapszintű HTML-ismeretekre van szükséged. Már írtam arról, hogyan lehet egyszerű HTML oldalt létrehozni. Leírja az összes html címkét, amelyek nélkül lehetetlen webhelyet létrehozni. Ezért erősen ajánlom, hogy kezdje el tanulmányozni a webhelyépítést ebből a cikkből.

Mi a különbség a PHP és a csupasz HTML oldal között?

A PHP webhely szinte megkülönböztethetetlen egy csupasz HTML webhelytől. Az egyetlen különbség a webhely rugalmasabb beállítása és kezelése, valamint számos funkció automatizálása. Mondok egy egyszerű példát.

Tegyük fel, hogy a webhely fejlécében szó szerint módosítania kell egy szót. Ha az oldal csupasz HTML-en készült, akkor minden html fájlt meg kell nyitni a módosításhoz, és ez nagyon kényelmetlen. Ha a webhely fejléce PHP-ben, beépülő komponensként készült, akkor a módosításokat csak egy fájlban kell végrehajtani, és azok automatikusan megváltoznak az egész webhelyen.

Egy tipikus PHP webhely felépítése:

Most megadom a webhely sablon kódját PHP-ben. Kérjük, vegye figyelembe, hogy a php használatával készített oldalakat ajánlatos .php kiterjesztéssel készíteni, bár ez nem előfeltétel. Bizonyos hosting beállítások mellett a szokásos .html kiterjesztésű fájlok is képesek PHP kódot feldolgozni.

Index.php fájl kódja:

<span>Lap cím</span> ... $_SERVER["DOCUMENT_ROOT"]."/head.php"; ?> ... ...
$_SERVER["DOCUMENT_ROOT"]."/top.php"; ?>
...
...
... Az oldal fő része...
... ... ...

Most nézzük meg az egyes kapcsolódó elemeket külön-külön:

  • fej.php
  • top.php
  • sidebar1.php
  • sidebar2.php
  • lábléc.php

Kérjük, vegye figyelembe, hogy egy speciális PHP paranccsal csatlakoznak:

igényel_egyszer <полный путь/имя файла>

Minden fájl a webhely egy külön részéért felelős. Igyekeztem a lehető leginformatívabban és érthetőbben megnevezni őket. A webhely több ilyen beépülő modulból állhat. Nézzük meg az egyes elemeket sorrendben fentről lefelé.