Använder PHP på sidor med html-tillägget. Formulär i din layout Hur man läser html-sida php

Jag försöker skapa ett inloggningsformulär. Detta är min HTML-formulärkod

Personligen fick jag den för PDO.

Punkterna 4 och 5

$password = mysql_real_escape_string(stripslashes(md5($_POST["lösenord"])));

För det första är ordningen på detta fel. Du hash $_POST["lösenord"] och sedan försöker använda snedstreck - efter dess hash kommer inte att ha några snedstreck. Men om du försöker hindra människor från att använda snedstreck (eller något annat) i lösenord, måste du ta bort dem innan du hasha strängen.

Följande md5 bör inte användas som en hashningsalgoritm för lösenord, som har visat sig vara svag och kan vara brute force för att skapa strängkollisioner mycket oftare än nödvändigt.

Ja du måste lagra hash eller "fingeravtryck" av lösenord, inte själva lösenorden, men helst vill du salta och hasha (med minst sha1) dessa lösenord, snarare än att bara kasta dem i md5()-funktionen.

Och sök efter "lösenordshash-inställning" med hjälp av din sökmotor.

Punkt 6

VÄLJ ID FRÅN $table WHERE användarnamn = "" . $användarnamn. "" och lösenord = "" . $lösenord. "";

Jag lade till = som saknades i den ursprungliga frågan, men det är allt matchade inte användarnamnet och lösenordet i din begäran...om någon lyckades få en SQL-injektion i ditt användarnamn, kommer lösenordet aldrig att verifieras. Införa:

VÄLJ user.id FRÅN användare WHERE user.username = "fred" ELLER 1 = 1 -- OCH user.password = "abc123"

Det är bättre att välja fingeravtrycksanvändar-ID och lösenord från databasen och sedan utvärdera lösenordet i programmet snarare än att lita på lösenordsverifieringen på databasnivå. Detta innebär också att du kan använda en speciell hash- och saltningsalgoritm i själva appen för att verifiera dina lösenord.

Punkt 7

$_SESSION["användare"] = $_POST["användarnamn"];

Lagrar det bara användarnamnet i sessionen? Detta bör inte användas som en "inloggningsverifierare" på något sätt, speciellt om det (tydligen) inte finns något på din session som förhindrar kapning.

Sessions-ID:t kan enkelt sniffas från kakan i realtid, och det är allt som skulle krävas för att "låna" någon annans användarnamn. Du bör åtminstone försöka minska sannolikheten för sessionskapning genom att associera användarens IP-adress, UserAgent-sträng eller någon annan kombination av relativt statisk data som kan jämföras med varje sida... det finns dock nackdelar med nästan alla metoder (särskilt , som jag redan har funnit, om du har besökare som använder AOL), men du kan göra en möjlig 99 % effektiv fingeravtryckssession möjlig för att minska kapningen med en mycket liten chans att användarens session kommer att återställas av misstag.

Helst kan du också skapa en sessionstoken för att mildra CSRF attacker när användaren behöver utföra en "privilegierad" åtgärd på databasen (uppdatera sin data eller något annat). Token kan vara en helt slumpmässig och unik kod som lagras i en databas och/eller kaka SSL när användaren loggar in (förutsatt att användaren inte kan utföra några åtgärder som uppdaterar databasen utanför HTTPS, eftersom detta helt enkelt kommer att överföra data i klartext över Internet - vilket skulle vara dålig idé).

Tokenen placeras i ett dolt formulärfält för alla formulär och kontrolleras mot värdet som lagras i cookien (eller sessionen eller databasen) när formuläret skickas. Detta säkerställer att personen som skickar formuläret åtminstone kommer att ha en livesession på din webbplats.

Det kan finnas flera problem.

För det första, i ditt $match-uttalande saknar du lösenordslikhetsoperatorn:

$match = "VÄLJ ID FRÅN $table WHERE användarnamn = "".$användarnamn."" och lösenord"".$password."";";

Borde vara:

$match = "VÄLJ ID FRÅN $table WHERE användarnamn = "".$användarnamn."" och lösenord = "".$password."";";

För det andra, sätter du in lösenordet i databasen efter dess användning med md5?

Om inte, försöker din begäran matcha md5 (lösenord) med lösenordet.

När du skapar ens en personlig webbplats kan inte alla tillhandahålla allt möjliga sätt dess vidare användning. Det är mycket viktigt att bereda marken för vidare utveckling av platsen. Om du har skapat en webbplats tidigare och tilldelat alla sidor tillägget .html som standard, och först då bestämt dig för att använda PHP, läs sedan vidare.

Tidigare, för att använda SSI, var sidnamnen tvungna att sluta med tillägget .shtml, men idag är de flesta internetservrar konfigurerade så att SSI kan användas på sidor med tillägget .html, vilket är ganska bekvämt. PHP är en helt annan historia - .php-tillägget är standardtillägget. Webbplatsutvecklare vet i förväg vad som kommer att användas givet språk programmering tilldelas rhinestone den korrekta förlängningen.

Men vad ska man göra när alla sidor slutar med tillägget .html?

Ersätt HTML-tillägget med PHP

Detta kan göras på flera sätt. Det mest uppenbara sättet är att ge alla sidor ett .php-tillägg eller ändra befintliga tillägg (.html, .shtml, etc.). Denna metod har nackdelar. Till exempel måste redan indexerade sidor med tillägget .html indexeras igen sökmotorer. Eller ännu värre - allt externa länkar, som uttryckligen länkar till en viss sida kommer att vara ogiltiga. Och du måste meddela ägarna av varje webbplats om dessa ändringar och skapa en annan sida med 301-fel för varje sida. Naturligtvis är det acceptabelt att ändra ett tillägg till ett annat, men vad händer om webbplatsen redan har många sidor och många länkar till olika sidor från andra webbplatser?

Av en medveten anledning det här ögonblicket alla sidor på den här webbplatsen slutar med html-tillägget, och jag ville inte göra ovanstående ändringar, vilket skapade onödiga svårigheter för mig själv.

Du kan göra det på ett annat sätt. Om servern som är värd för webbplatsen stöder mod_rewrite (i de flesta fall gör den det) och det finns tillgång till .htaccess-filen, kan du lägga till följande rader till just den här filen:

RewriteEngine på RewriteRule ^(.*)\.html $1\.php

Genom att lägga till den här koden i .htaccess behöver du inte oroa dig. Alla begärda icke-existerande sidor med en .html-tillägg kommer automatiskt att ersättas med en .php-tillägg tack vare Apaches underverk. Men denna metod är inte den enda. Du kan skriva följande i samma .htaccess-fil:

AddHandler application/x-httpd-php .php .html .htm

Enligt min mening det mest framgångsrika sättet. Detta gör HTML-sidor lika med PHP-sidor, vilket innebär att alla PHP-funktioner nu kan användas på sidor med HTML-tillägg. Om du inte har tillgång till .htaccess-filen kan du skriva ett brev till värdföretaget och artigt be administratörerna att registrera sig i Apache-konfigurationer(httpd.conf) det nödvändiga värdet för webbplatsen.

Förresten, om webbplatsen tidigare använde SSI enligt följande:

sedan i det nya PHP-tillståndet måste denna kod ersättas med:

Tja, det är allt, jag tror att en av ovanstående metoder kommer att hjälpa.

PHP är ett inbäddat programmeringsspråk på serversidan. Mycket av dess syntax är lånat från C, Java och Perl. Och även lagt till ett par unika egenskaper endast för PHP-funktioner. Huvudsyftet med detta språk är att skapa dynamiskt genererade PHP HTML-sidor.

PHP till HTML

När du skapar komplexa webbsidor kommer du att ställas inför behovet av att kombinera PHP och HTML för att utföra specifika uppgifter. Vid första anblicken kan detta verka komplicerat, eftersom PHP och HTML är två oberoende discipliner, men så är det inte. PHP är designat för att interagera med HTML, och dess kod kan inkluderas i siduppmärkning.

PHP-kod ingår i HTML-sidor med hjälp av speciella taggar. När en användare öppnar en sida bearbetar servern PHP-koden och skickar sedan resultatet av behandlingen (inte PHP-kod) till webbläsaren.

HTML och PHP är ganska lätta att kombinera. Alla delar av ett PHP-skript utanför taggarignoreras av PHP-kompilatorn och skickas direkt till webbläsaren. Om du tittar på exemplet nedan kan du se att ett komplett PHP-skript kan se ut så här:

Hej idag.

Ovanstående kod är vanlig HTML med lite PHP-utdrag vilka utgångar dagens datum med den inbyggda datumfunktionen. I det här fallet kommer all HTML att ignoreras av PHP-kompilatorn och överföras till webbläsaren oförändrad.

Att integrera PHP i HTML är verkligen väldigt enkelt. Kom ihåg att ett script är en HTML-sida med lite PHP-kod inkluderad. Du kan skapa ett skript som endast innehåller HTML (inga taggar), och det kommer att fungera bra.

Mer avancerade metoder:

  • Menyobjekt

och resultatet:

PHP till HTML med short_open_tag

Om du behöver göra din kod så kort som möjligt innan du infogar HTML i PHP kan du använda short_tags. Som ett resultat behöver du inte gå inshort_tags"Med" Av"på" ". Även om de flesta servrar redan har det här alternativet aktiverat, är det alltid bäst att kontrollera detta manuellt. Ett problem som kan uppstå vid användning av korta taggar är en konflikt vid användning av XML. I XML-syntaxuttryck

PHP till HTML med short__tag

Hej, idag är det.

Tänk på att om du vill skapa en webbplats som är kompatibel med så många plattformar som möjligt bör du inte förlita dig på short_tags när du infogar PHP i HTML.

HTML till PHP med echo

Ett annat sätt att integrera HTML i en PHP-fil är kommandot echo:.

Detta kommer att påverka markeringen i de flesta redigerare. Därför är det nödvändigt att välja allt dubbla citattecken inuti HTML-kod med ett omvänt snedstreck.

PHP till HTML - filtillägg

För en standardkonfigurerad webbserver:

AddHandler cgi-script .html .htm

För en webbserver som kör FastCGI:

AddHandler fcgid-script .html .htm

HTML till PHP

Du kan också använda HTML-kod i PHP-skript. Allt du behöver göra är när du öppnar en sida med PHP, ändra ordningen på sidorna som öppnas HTML-taggar och PHP.

Använda HTML i PHP:

Personlig information

Förnamn:
Efternamn:
"; ?>

Genom att infoga PHP i HTML på detta sätt kan du använda mycket mindre kod. Här använder vi $PHP_SELF globalt, vilket gör att fältvärdena som anges under dem kan användas i samma fil. Vanligtvis skapas två filer för sådana formulär: den första är själva HTML-formuläret och den andra är PHP-filen som utför bearbetningen.

Om du redan har komplexa PHP-applikationer som använder ett stort antal filer och vill förenkla kan den här metoden hjälpa.

Denna publikation är en översättning av artikeln "PHP i HTML", utarbetad av det vänliga projektteamet

>

Php för nybörjare

På den här sidan kommer vi att försöka förklara logiken i att bygga en dynamisk webbplats. Php är ett serverexekverat skript. Vad betyder det här? Servern har en speciell tolk installerad som förstår vissa språkkonstruktioner. Själva php-filen, den läser den rad för rad, som om den går igenom den från topp till botten. Om den hittar till exempel ordet utgång, då stannar den och läser inget vidare, utan kör till exempel vad den hittade före detta ord skriva ut"Bra!" Kommer att skriva ut Bra!

skriva ut"Bra!";
utgång ;
?>

Detta är den enklaste php-filen, men i praktiken måste du hantera en komplex php-fil. Det finns många sidor på sajten, vi har för närvarande 24 tusen, vi skulle behöva skriva lika många php-filer, eller bara html-filer. Men php låter dig göra allt detta i en körbar fil. Det vill säga, vi måste organisera länkar i själva filen som, om detta - gör det, om det - gör det. Php låter dig organisera länkar mycket bra. Det allmänna schemat är:

Du ser i manuset att fack gillar
om då)
då gör vi det
}

Vad hände sedan om det första villkoret var uppfyllt, alltså $uslovie 1== "ja", då kör vi skriptet inom parentes ( ) som hänför sig till den här delen av skriptet, sedan finns det i det här avsnittet utgång- här slutar programmet. Det vill säga, med hjälp av fack kan vi dela upp en php-fil i dess beståndsdelar. Och vad är villkoret - if($uslovie == "ja")??? Detta nätverk är samma länk, i det här fallet kommer något att exekveras om variabeln $uslovie kommer att vara lika ja.

Låt oss namnge filen all.php. För att organisera länkar till det på kommandoraden, lägg helt enkelt till all.php?uslovie=ja. Om du ser ett frågetecken på kommandoraden är det här länken i det här fallet, $uslovie == "ja". Sedan kommer vi att skapa en html-fil där vi ska skriva länkar till vårt körbara skript.



Ny sida


uslovie1=ja" >Första länken
uslovie2=ja" >Andra länken

Du ser två länkar. Om du klickar på länkarna kommer filen att köras all.php, och i det första fallet kommer skriptet att få veta att variabeln $uslovie 1== ja och i det andra fallet, $uslovie 2== ja. Från första länken det första facket kommer att vara färdigt och programmet kommer att stoppa, med hjälp av den andra länken kommer programmet att köras genom det första facket och något från det andra facket kommer att uppfyllas(se ovan). Observera att dollartecknet inte är skrivet i länkarna, programmet gör dem till variabler när de skickas till skriptet, det vill säga när de skickas till kommandoraden.

Nu vet vi hur man organiserar länkar till en php-fil, hur man delar upp den i sektioner och hur man organiserar länkar i html-text till vår fil. Men, det finns en sak till... Faktum är att om du organiserar webbplatsen på detta sätt, kommer du inte att se problem i sin ursprungliga form, när det inte finns särskilt många länkar. Låt oss säga att det finns 10 fack, de passar alla tyst i en fil. Men om det är många länkar, till exempel har vi 24 000 sidor, så är det i princip omöjligt att få in alla avsnitt i en php-fil. Du kommer själv att bli torterad genom att söka efter det eller det facket i en fil för att till exempel ändra det. Dessutom kommer filen att vara väldigt stor, vår all.php skulle ta upp 1MB. Dessutom måste du förstå en sak till: på många servrar finns det en gräns för storleken på körbara filer (till exempel 50Kb); om den överskrids ignoreras en sådan fil och exekveras inte. I samband med dessa beräkningar minskade vi storleken på huvudfilen till 8Kb, även om den har en exekveringsbelastning på 1MB. Hur gor man det har? Php ger ett utmärkt tillfälle att dela upp en php-fil i bitar med hjälp av kommandot ingår....

Nu blir det tydligt hur vi minskade vår huvudfil till 8Kb, eftersom alla andra inkluderade filer har en total storlek på 1 MB, och vi gömde dem i en separat mapp och ansluter dem efter behov, det vill säga beroende på länkarna i kommandot linje. Kommandot include kopplar ihop filer som om de var skrivna i huvudskriptet, därför, om du i de infogade filerna kommer åt databaser eller html-filer, måste räkningen utföras exakt från huvudfilen, i vårt fall all.php. Det finns till exempel en mapp html, den innehåller en fil one.htm hur man skriver ut det. Då ser one.php-filen ut så här:

omfatta"html/one.htm";
skriva ut
utgång ;
?>

Vi har skrivit ut innehållet one.htm, plus tryckt Detta är den första delen av programmet och stoppade programmet. Det vill säga, baserat på html-teori skulle vi behöva inkludera filen one.htm Så: inkludera "../html/one.htm", sedan mappen html ligger en nivå ovanför filen one.php. Men i php är detta inte fallet, kommandot include lägger helt enkelt till kod till skriptet och det blir en integrerad del av det, vilket innebär att alla länkar räknas i förhållande till huvudfilen, och inte de inkluderade.



Ny sida


uslovie1=ja" >Bara första länken
uslovie1=ja& spela teater=ja" >
uslovie2=yes" >Bara andra länken
uslovie2=ja& spela teater=ja" >Andra länken, men också agera=ja

Sedan php-fil one.php förvandla det till detta:

om($act == "ja")(
omfatta"html/one.htm";
utgång ;
}
skriva ut"Detta är den första delen av programmet";
utgång ;
?>

Om du klickade på länken uslovie1=ja" >Helt enkelt första länken, kommer att skrivas ut Detta är den första delen av programmet, om du klickade på länken uslovie1=ja& spela teater=ja" >Första länken, men även agera=ja, då kommer innehållet i filen att skrivas ut html/one.htm, och programmet stoppas.

403 KB

Ladda ner arkivet, det är gjort på ett sådant sätt att du inte behöver kunna Php, du behöver bara känna till HTML.

Ja.))

Det skulle vara lättare för mig att göra en kopia av index.php och byta namn på den till exempelvis contact.php och sedan byta middle till middle2 med nytt innehåll.

Kettle Jag är lite php


Jag förstår fortfarande inte.
Jag har en hemsida.
indexfil i roten. I en annan mapp finns filer överst i mitten till exempel.

Det finns en meny. Jag vill att en annan mitten ska visas när du klickar på ett menyalternativ.

Hur gör man detta och var ska man lägga det???

Svar: Ja, var som helst. Det är väldigt enkelt, det handlar om att göra ett menyskript menus.html


något utan en array $_GET ["uslovie"] ; dina exempel fungerar inte för mig

Svar: stöd för globala variabler är inaktiverat på din server, i så fall kan du sätta raden i början av alla dina skript

om (isset($_GET )) ( för varje($_GET som $key =>$val ) ( $$key =$val ; ) )

då kan du använda våra skript utan att använda $_GET [ "uslovie" ] , utan lägg bara $uslovie


Ganska intressant resurs du har..
Tack för informationen.

Svar:


Du har länge lovat att undersöka hur en PHP-webbplats skapas. Varför höll du inte ditt löfte? Kanske skriv en artikel om detta ämne (och om du också använder MySQL kommer allt att bli bra).

Svar:


Mycket ja. Bara, där är det, istället för too.htm behöver du förmodligen två.htm
Inte nödvändigt, men för att hålla ordning på saker och ting))

Svar:


Berätta för mig var jag kan läsa och lära mig alla operatorer och PHP-koder utantill, till exempel: eko , omfatta , annan , om , skriva ut , för varje , isset etc., vad betyder de och vad tjänar de?

Svar: Alexander, jag var på semester i en månad, plus att jag håller på att färdigställa en ny version av hela webbplatsen. Så fort jag är klar ska jag göra en liten sida om detta.


Mobilesfinks, medan jag gjorde mig redo att installera om php 4, hade en ny version av sajten i php 5 redan släppts. Och det var inga problem, allt fungerade %tashus%

Svar:


Hallå!

Berätta för mig hur jag ändrar TITEL högst upp i fönstret på varje sida: det vill säga " Ny sida" ...

Om du till exempel följer länken "1", så ska fönstret heta "Första avsnittet. Matematik" - det vill säga HTML-koden ska vara Första avsnittet. Matematik...
Och om länken är "2", till exempel, så ska fönstret heta "Andra avsnitt. Geografi" - det vill säga HTML-koden ska vara Andra avsnittet. Geografi...

Hur kan jag ändra det med PHP?

Svar: html.html


Vi måste installera PHP4 för Denver. Installationsskriptet gör alla ändringar själv.
Sedan i mappen där du har all.php-filen du skapar
en fil som heter ".htaccess" och lägg till en rad i den
Sida: 1
Nuvarande sida: 1 Totalt antal meddelanden: 22

Många läsare i alla böcker om datorer skummar över allt som inte är av omedelbart intresse och går vidare till vad de verkligen behöver. vilja känna till. Personligen är det vad jag gör. Det är dock inget fel med det – det är sällan tekniska böcker som behöver läsas från pärm till pärm. Eller kanske det var det du gjorde - hoppade över de första åtta kapitlen och tog upp det här kapitlet för att det hade den mest intressanta titeln? Och vem vill slösa tid på detaljer när ett annat projekt brinner på jobbet?

Lyckligtvis kommer en sådan brådska inte att hindra dig från att ordentligt bemästra materialet i den andra delen av boken, som ägnas åt att använda PHP för att bygga webbplatser och interagera med webben. I det här kapitlet kommer du att lära dig hur du enkelt ändrar innehållet på webbsidor och navigerar på webben med hjälp av länkar och olika standardfunktioner. Nästa kapitel kommer att komplettera det presenterade materialet - det undersöker i detalj sätten för interaktion med användaren i HTML-formulär. Kapitel 11 beskriver organisationen av gränssnittet med databaser. De återstående kapitlen i den andra delen diskuterar icke-triviala aspekter av webbprogrammering i PHP.

Man bör dock komma ihåg att materialet i del 1 absolut nödvändigt för normala kunskaper i PHP. Det antas att du redan har läst del 1, så exemplen kommer att använda många av de begrepp som beskrivits tidigare. Så om du skummar igenom en del av boken måste du då och då gå tillbaka till tidigare kapitel och komma ikapp.

Enkla länkar

<а href = "date.php">

$link = "date.php";

skriv ut "<а href = \"$link\">Se dagens datum
\n"

Du undrar säkert varför det finns ett snedstreck (\) före citattecken (") i länkkoden? Faktum är att citattecken i PHP är specialtecken och används som radavgränsare. Därför måste citattecken är bokstavliga i strängar som måste skyddas .

Om att behöva undkomma citattecken irriterar dig, aktivera helt enkelt magic_quotes_gpc-läget i din php.ini-fil. Resultatet är alla apostrof, citat, snedstreck och nolltecken. escapes automatiskt i texten!

Låt oss utveckla det givna exemplet. För att snabbt visa en lista med länkar i webbläsaren kan du använda en array:

// Skapa en uppsättning sektioner

$contents - array("handledning", "artiklar", "skript", "kontakt");

// Iterera igenom och visa sekventiellt varje element i arrayen

för ($i = 0; $i< sizeof($contents; $i++)

skriv ut " ".$contents[$i]."
\n";

// - särskild beteckning för markeringspunkt slutför;

Filkomponenter (mallar)

Vi har kommit till en av mina favoritfunktioner i PHP. En mall (i relation till webbprogrammering) är en del av ett webbdokument som du ska använda på flera sidor. Mallar, som PHP-funktioner, sparar dig från onödig kopiering/klistring av sidinnehåll och programkod. I takt med att sajtens skala ökar, ökar betydelsen av mallar, eftersom de tillåter enkla och snabba ändringar på hela webbplatsens nivå. Det här avsnittet kommer att beskriva några av de möjligheter som öppnas när du använder enkla mallar.

Vanligtvis sparas vanliga delar av innehåll/kod (dvs mallar) i separata filer. När du bygger ett webbdokument "inkluderar" du helt enkelt dessa filer på lämpliga platser på sidan. I PHP finns det två funktioner för detta: include() och require().

include() och require()

En av de mest framstående aspekterna av PHP är förmågan att bygga mallar och programmeringsbibliotek och sedan infoga dem i nya skript. Att använda bibliotek sparar tid och ansträngning genom att använda gemensamma funktioner på olika webbplatser. Läsare med

erfarenhet av programmering på andra språk (som C, C++ eller Java), och är bekant med konceptet funktionsbibliotek och deras användning i program för att utöka funktionaliteten.

Att inkludera en eller flera filer i ett skript görs med standard PHP-funktionerna require() och include(). Som kommer att visas i nästa avsnitt gäller var och en av dessa funktioner i en specifik situation.

Funktioner

Det finns fyra funktioner i PHP för att inkludera filer i PHP-skript:

  • omfatta();
  • include_once();
  • behöva();
  • require_once().

Trots likheten mellan namn löser dessa funktioner olika problem.

Funktionen include() inkluderar innehållet i en fil i skriptet. Syntaxen för funktionen include() är:

include(fil fil]

Funktionen include() har en intressant funktion - den kan köras villkorligt. Till exempel om ett funktionsanrop ingår i ett if-kommandoblock. då ingår filen i programmet endast om villkoret i f är sant. Om funktionen includeO används i ett villkorligt kommando, då måste vara innesluten i lockiga hängslen eller alternativa avgränsare. Jämför skillnaderna i syntax mellan Listor 9.1 och 9.2.

Notering 9.1. Felaktig användning av include()

om (något_villkorligt)

include("text91a.txt"); annan

include("text91b.txt");

Notering 9.2. Korrekt användning av include()

if (some_conditional) :

include("text91a.txt");

include("text91b.txt");

All PHP-kod i include-filen Nödvändigtvis ligger i PHP-taggar. Anta inte att om du bara sparar ett PHP-kommando till en fil kommer det att säkerställa att det bearbetas korrekt:

Istället måste du linda in kommandot i lämpliga taggar, som följande exempel visar:

print "detta är en ogiltig inkluderingsfil";

Funktionen include_once() gör samma sak som include(), med ett undantag: innan den inkluderar en fil i programmet kontrollerar den om den redan har inkluderats. Om filen redan har inkluderats ignoreras anropet include_once() och om inte, inkluderas standardfilen. I alla andra avseenden skiljer sig include_once() inte från include(). Syntaxen för funktionen include_once() är:

include_once(filfil)

Generellt sett liknar funktionen require() include() - den inkluderar också mallen i filen där require()-anropet finns. Syntaxen för funktionen require() är:

kräver (filfil)

Det finns dock en viktig skillnad mellan funktionerna require() och include(). Filen specificerad av require() ingår i skriptet oavsett platsen för require() i skriptet. Till exempel, om du anropar requi re() i ett if-block, om villkoret är falskt, kommer filen fortfarande att inkluderas i skriptet!

I många situationer är det bekvämt att skapa en fil med variabler och annan information som används på hela sidan och sedan inkludera den efter behov. Även om namnet på den här filen är godtyckligt, brukar jag kalla den init.tpl (förkortning av "initialisaion.template"). Lista 9.3 visar hur en mycket enkel init.tpl-fil ser ut. I listning 9.4 ingår innehållet i init.tpl i skriptet med require().

Notering 9.3. Exempel på en initieringsfil

$site_title = "PHP-recept";!}

$contact_email = " [e-postskyddad]";

$contact_name = "WJ Gilmore";

Notering 9.4. Använder filen init.tpl

<? print $site_title; ?>

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

Att skicka en URL när du anropar require() är endast tillåtet om läget "URL fopen wrappers" är aktiverat (det här läget är aktiverat som standard).

När storleken på webbplatsen ökar kan det visa sig att vissa filer ingår i skriptet flera gånger. Ibland orsakar detta inga problem, men i vissa fall, inklusive filen igen, gör att värdena för de ändrade variablerna återställs. Om include-filen definierar funktioner kan namnkonflikter uppstå. Med det sagt kommer vi till nästa funktion - require_once().

Funktionen require_once() säkerställer att filen endast ingår i skriptet en gång. När requi re_once() anropas ignoreras alla ytterligare försök att inkludera samma fil. Syntaxen för funktionen require_once() är:

Du kommer sannolikt att börja använda funktioner för filinkludering oftare när dina webbapplikationer börjar växa i storlek. Dessa funktioner förekommer ofta i exempel i den här boken för att minska kodredundans. De första exemplen diskuteras i nästa avsnitt om principerna för att konstruera grundläggande mallar.

Byggnadskomponenter

När jag definierar strukturen för en typisk webbsida brukar jag dela upp den i tre delar: sidhuvud, brödtext och sidfot. Som regel har de flesta korrekt organiserade webbplatser en rubrik som förblir praktiskt taget oförändrad; huvuddelen visar det begärda innehållet på webbplatsen, så det ändras ofta; Slutligen innehåller sidfoten upphovsrättsinformation och navigeringslänkar. Sidfoten, liksom sidhuvudet, förblir vanligtvis oförändrad. Missförstå mig inte - jag försöker inte undertrycka dina kreativa strävanden. Jag har sett många bra webbplatser som inte följer dessa principer. Jag försöker bara komma på en generell struktur som kan fungera som utgångspunkt för fortsatt arbete.

Rubrik

En rubrikfil (som den i Listing 9.5) visas på nästan alla mina PHP-aktiverade webbplatser. Denna fil innehåller

webbplatsomfattande information, såsom titel, kontaktinformation och vissa HTML-kodkomponenter.

Notering 9.5. Exempel på rubrikfil

// Fil: header.tpl

// Syfte: rubrikfil för PhpRecipes-webbplatsen.

$site_name = "PHPRecept";

$site_email= " [e-postskyddad]";

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

<? print $site_name; ?>

// Skriv ut aktuellt datum och tid

print date("F d, h:i a");

Ganska ofta är åtkomsten till inkluderade filer för besökare begränsad, särskilt om dessa filer innehåller känslig information (till exempel lösenord). I Apache kan du förhindra att vissa filer visas genom att redigera http.conf- eller htaccess-filerna. Följande exempel visar hur du förhindrar visning av alla filer med filtillägget .tpl:

Beställ tillåt, förneka

Tillåt från 127.0.0.1

PHP och webbplatssäkerhetsfrågor behandlas i detalj i kapitel 16.

Löpande titel

Sidfoten är vanligtvis den information som finns längst ner på sidorna på en webbplats - kontaktinformation, länkar och information om upphovsrätt. Denna information kan placeras i en separat fil och inkluderas som en mall på samma sätt som en rubrik. Låt oss säga att i början av det nya året måste du ändra upphovsrättsinformationen och föra den till formuläret "Copyright © 2000-2001". Det finns två alternativ: Spendera julafton med att frenetiskt redigera hundratals statiska sidor. eller använd en mall som den som visas i Listing 9.6. En enkel förändring och du kan återgå till din semesterrutin.

Notering 9.6. Exempel på sidfotsfil (footer.tpl)

Kontakt |

din integritet

Notera användningen av den globala variabeln $site_email i sidfotsfilen. Värdet på denna variabel är sidomfattande och vi antar att filerna header.tpl och footer.tpl kommer att inkluderas på en sista sida. Lägg också märke till närvaron av $site_path i Sekretesslänken. Jag inkluderar alltid den fullständiga sökvägen till alla länkar i mina mallar - om länkens URL bara var privacy.php, skulle sidfotsfilen hårdkodas till en specifik katalog.

Huvudsak

Huvuddelen av sidan innehåller innehållet i sidhuvudet och sidfoten. I huvudsak är det huvuddelen som innehåller informationen som intresserar webbplatsbesökare. Sidhuvudet ser imponerande ut, sidfoten innehåller användbar information, men det är för huvuddelen av sidan som användarna återvänder till webbplatsen om och om igen. Även om jag inte kan ge några råd om specifik sidstruktur, förenklar mallar som den i Listing 9.7 avsevärt sidadministrationen.

Notering 9.7. Exempel på huvuddelen av sidan (index_body.tpl)

/tutorials.php">självstudier

artiklar

skript

kontakt

Välkommen till PHPRecipes. startplatsen för PHP-skript, handledningar,

och information om gourmetmatlagning!

Allt tillsammans: sidhuvud, sidfot och brödtext

Mitt humör sammanfattas kanske bäst av en rad från överste "Hannibal" Smith (George Peppard) från den berömda tv-serien "The A-Team": "Jag älskar det när saker faller på plats." Jag upplever något liknande där olika mallar samlas för att bilda ett komplett webbdokument. Genom att kombinera tre dokumentsektioner: header.tpl, index_body.tpl och footer.tpl, kan du snabbt bygga en enkel sida som den som visas i Listing 9.8.

Notering 9.8. Skapa en index.php-sida genom att inkludera flera filer

// Fil: index.php

// Destination: PHPRecipes hemsida

// Skriv ut titel

include("header.tpl");

// Mata ut huvuddelen

include("index_body.tpl");

// Visa sidfoten

include("sidfot.tpl");

Så hur? Tre enkla kommandon och du har en färdig sida. Texten på den sista sidan visas i Listing 9.9.

Notering 9.9. HTML-sida inbyggd i Listing 9.8 (index.php)

PHPRecept

23 augusti, 15:17

Handledningar

artiklar

skript

Kontakt

Välkommen till PHPRecipes, startplatsen för PHP-skript, handledningar,

och gourmetmatlagningstips och recept!

Copyright 2000 PHPRecept. Alla rättigheter förbehållna.

Kontakt |

din integritet

I fig. Figur 9.1 visar hur den resulterande sidan ser ut i en webbläsare. Även om jag vanligtvis inte använder bordskanter, ritade jag ut dem den här gången för att de tre delarna av sidan ska framträda tydligare i illustrationen.

Ris. 9.1. Utseendet på sidan inbyggd i Listing 9.8

Malloptimering

I det andra (enligt mig mer föredragna) alternativet är mallarna utformade som funktioner som finns i en separat fil. Detta ger ytterligare struktur till dina mallar. Jag kallar den här filen för initialiseringsfilen och lagrar annan användbar information i den. Eftersom vi redan har tittat på relativt långa sidhuvuds- och sidfotsexempel har listorna 9.10 och 9.11 förkortats något för att illustrera den nya idén.

Notering 9.10. Optimerad webbplatsmall (site_init.tpl)

// Fil: site_init.tpl

// Syfte: PhpRecipes initieringsfil

$site_name = "PHPRecept";

$site_email = " [e-postskyddad]";

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

function show_header($site_name) (

<? print $site_name: ?>

Det här är rubriken

funktion visa sidfot()

Det här är sidfoten

Notering 9.11. Använder en initialiseringsfil

// Inkludera initialiseringsfil

include("site_init.tpl");

// Skriv ut titel

show header($site_name);

// Kroppsinnehåll Detta är lite kroppsinformation

// Visa sidfoten Show_footer();

Projekt: sidgenerator

Även om de flesta webbplatser jag har skapat har genererat huvudsidans innehåll baserat på information som läses från en databas, finns det alltid några sidor som förblir praktiskt taget oförändrade. I synnerhet kan de visa information om utvecklingsteamet, kontaktinformation, reklam etc. Jag brukar lagra denna "statiska" information i en separat mapp och använda ett PHP-skript för att ladda det när en förfrågan kommer in. Naturligtvis har du en fråga - om detta är statisk information, vad är PHP-skriptet till för? Varför inte ladda vanliga HTML-sidor? Fördelen med PHP är att du kan använda mallar och infoga statiska utdrag efter behov.

<а href = "/static.php?content=$content">Statiskt sidnamn

Låt oss börja med att skapa statiska sidor. För enkelhetens skull begränsar jag mig till tre sidor som innehåller webbplatsinformation (lista 9.12), annonsering (lista 9.13) och kontaktinformation (lista 9.14).

Notering 9.12. Information om webbplatsen (about.html)

Om PHPRecept

Vilken programmerare blandar inte hela natten programmering med gourmetkakor. Här på PHPRecipes. går knappt en natt utan att någon av våra kodare blandar lite HTML med en välsmakande tallrik Portobello-svamp eller till och med Fondue. Så vi bestämde oss för att ge dig det bästa av det vi älskar mest: PHP och mat!

Det stämmer, läsare. Handledningar, manus, suffler och mer. 0 endast på PHPRecipes.

Annonsinformation

Oavsett om de kommer för att lära sig de senaste PHP-teknikerna eller för att fräscha upp hur

att baka kyckling kan du slå vad om att våra läsare är beslutsfattare. De är industrin

proffs som fattar beslut om vad deras företag köper.

För annonsinformation, kontakta

">[e-postskyddad].

Notering 9.14. Kontaktuppgifter (contact.html)

Kontakta oss

Har du ett kodningstips?

Vet du den perfekta toppingen för kanderade jams?

Låt oss veta! Kontakta teamet på [e-postskyddad].

Låt oss gå vidare till att bygga sidan static.php, som visar den begärda statiska informationen. Den här filen (se Lista 9.15) innehåller sidkomponenterna på vår webbplats och initialiseringsfilen site_init.tpl.

Notering 9.15. Allmän produktion av statiska sidor (static.php)

// Fil: static.php

// Syfte: visa begärda statiska sidor.

// VARNING: detta förutsätter att filen är "site_init.tpl" och det är allt

// statiska filer finns i samma katalog.

// Ladda funktioner och variabler include("site_init.tpl"):

// Visa rubriken show_header($site_name);

// Mata ut det begärda innehållet include("$content.html"):

// Visa sidfoten show footer();

Nu är allt klart för att bygga huvudscenariot. Ta bara med det på sidan

<а href = "static.php?content=about">Statiskt sidnamn

Annonsinformation

Kontakta oss

Om du klickar på någon av dessa länkar kommer din webbläsare att ladda motsvarande statiska sida inbäddad i static.php!

Resultat

I det här kapitlet blev du bekant med den primära uppgiften som PHP skapades för - att dynamiskt bygga webbsidor. Följande frågor övervägdes:

  • URL-bearbetning;
  • bygga dynamiskt innehåll;
  • inkludering och konstruktion av grundläggande mallar.

Kapitlet avslutas med en sidgenerator, ett program som laddar in statiska sidor i en mall och gör det enkelt att stödja ett stort antal statiska HTML-sidor.

Nästa kapitel fokuserar på att använda PHP i kombination med HTML-formulär för att avsevärt förbättra interaktiviteten på din webbplats. Och sedan - interaktion med databaser! Du har mycket intressant att lära dig.


En värld av gratis program och användbara tips
2024 whatsappss.ru