Неактивен html регистрация php. Формулярът във вашето оформление. PHP към HTML - файлови разширения

>

PHP за начинаещи

На тази страница ще се опитаме да обясним логиката на изграждане на динамичен сайт. Php е скрипт, който се изпълнява от сървъра. Какво означава това? На сървъра е инсталиран специален интерпретатор, който разбира определени езикови конструкции. Самият php файл, той чете ред по ред, сякаш преминава през него отгоре надолу. Ако намери, например, думата изход, след което спира и не чете нищо по-нататък, а изпълнява това, което е намерило преди тази дума, например печат"Страхотен!"Ще отпечата страхотно!

печат"Страхотен!";
изход ;
?>

Това е най-простият php файл, но в действителност, на практика, трябва да се справите със сложен php файл. В сайта има много страници, в момента имаме 24 хиляди, трябваше да напишем същото количество php файлове, или просто html файлове. Но php ви позволява да направите всичко в един изпълним файл. Тоест, в самия файл е необходимо да се организират връзки от типа, ако това - правим това, ако това - правим го. PHP ви позволява да организирате много добре връзките. Общата схема е както следва:

Можете да видите в скрипта, че отделенията харесват
ако (тогава) (
тогава го правим
}

Тогава какво се случи, ако първото условие беше изпълнено, т.е $ условия 1== "да", след това изпълняваме скрипта в скоби (), които се отнасят до този раздел на скрипта, след което в този раздел има изход- тук програмата приключва. Тоест, с помощта на отделения можем да разделим php файла на съставните му части. И какво е условието - if ($ условия == "да")??? Това и мрежата е една и съща връзка, в този случай нещо ще бъде изпълнено, ако променливата $ условияще бъдат равни да.

Да назовем файла all.php... За да организирате връзки към него в командния ред, просто добавете all.php?условия = да... Ако видите въпросителен знак в командния ред, това е връзката в този случай, $ uslovie == "да"... След това ще създадем html файл, в който ще напишем връзки към нашия изпълним скрипт.



Нова страница


uslovie1= да "> Първа връзка
uslovie2= да "> Втора връзка



Виждате две връзки. Ако щракнете върху връзките, тогава файлът ще бъде изпълнен all.php, а в първия случай скриптът ще бъде предаден, че променливата $ условия 1== да, а във втория случай, $ условия 2== да... На първия линк първото отделение ще бъде изпълненои програмата ще спре, на втората връзка програмата ще премине през първото отделение и нещо от второто отделение ще се сбъдне(виж по-горе). Моля, имайте предвид, че знакът за долар не е изписан във връзките, програмата ги прави променливи, когато се предават на скрипта, тоест когато се предават на командния ред.

Сега знаем как да организираме връзки към php файл, как да го разделим на отделения и как да организираме връзки в html текст към нашия файл. Но има още нещо... Факт е, че ако организирате сайта по този начин, тогава в оригиналния му вид, когато няма много връзки, няма да видите проблеми. Да кажем, че има 10 отделения, всички те спокойно се настаняват в един файл. Но ако има много връзки, например, имаме 24 000 страници, тогава по принцип е невъзможно да се съберат всички отделения в един php файл. Вие сами се уморявате да търсите това или онова отделение в един файл, например, за да го промените. Освен това файлът ще бъде много голям по размер, нашият all.php ще отнеме 1MB. Освен това трябва да разберете още нещо, на много сървъри има ограничение за размера на изпълними файлове (например 50Kb), ако има излишък, такъв файл се игнорира и не се изпълнява. Във връзка с тези изчисления намалихме размера на основния файл до 8Kb, въпреки че той носи натоварване от 1Mb. Как може да се направи това? PHP предоставя отлична възможност за разделяне на php файл на парчета с помощта на командата включват....

Сега става ясно как намалихме основния си файл до 8Kb, тъй като всички други свързани файлове имат общ размер 1MB и ги скрихме в отделна папка и ги свързваме според нуждите, тоест в зависимост от връзките в командния ред . Командата include свързва файловете, сякаш са написани в основния скрипт, следователно, ако във вмъкнатите файлове препращате към бази данни или към html файлове, тогава ще трябва да отброите обратно от основния файл, в нашия случай all.php... Например, има папка html, той съдържа файла one.htmкак да го отпечатате. Тогава файлът one.php изглежда така:

включват"html / one.htm";
печат
изход ;
?>

Разпечатахме съдържанието one.htm, плюс отпечатан Това е първият раздел на програмата, и спря програмата. Тоест, въз основа на теорията на html, ще трябва да включим файла one.htmТака: включва "../html/one.htm"тъй като папката htmlсе намира едно ниво над файла one.php... Но в php това не е така, командата include просто добавя кода към скрипта и той става неразделна част от него, което означава, че всички връзки ще се броят спрямо основния файл, а не включени.



Нова страница


uslovie1= да "> Просто първа връзка
uslovie1= да и действай= да ">
uslovie2= да "> Само втора връзка
uslovie2= да и действай= да "> Втора връзка, но също действай = да



След това php файл one.phpтрансформира се в това:

ако($ act == "да") (
включват"html / one.htm";
изход ;
}
печат"Това е първият раздел на програмата";
изход ;
?>

Ако щракнете върху връзката uslovie1= да "> Просто първата връзка, ще се отпечата Това е първият раздел на програматаако щракнете върху връзката uslovie1= да и действай= да "> Първа връзка, но също и действие = да, след това съдържанието на файла ще бъде отпечатано html / one.htmи програмата ще спре.

403 Kb

Изтеглете архива, той е направен така, че не е нужно да знаете Php, трябва да знаете само HTML.

Да.))

Ще ми бъде по-лесно да направя копие на index.php и да го преименувам на contact.php например и след това да сменя средата на middle2 с ново съдържание.

Чайник малко съм в php


Все още не го разбрах.
имам уебсайт.
индексен файл в корена. В друга папка, горните средни долни файлове например.

Има меню. Просто искам да се показва друга среда при щракване върху елемент от менюто.

Как да направя това и къде да се натъпче ???

Отговор: Е, как къде. Много е просто, става въпрос за създаване на скрипт на меню menus.html


нещо без масива $ _GET ["uslovie"]; твоите примери не ми вършат работа

Отговор: вашият сървър няма поддръжка за глобални променливи, ако е така, можете да поставите реда в началото на всичките си скриптове

ако (isset($ _GET)) ( за всеки($ _GET като $ ключ => $ val) ($$ ключ = $ val;))

тогава можете да използвате нашите скриптове, без да използвате $ _GET ["uslovie"], но просто поставете $ uslovie


Имате доста интересен ресурс.
Благодаря за информацията.

Отговор:


Отдавна обещахте да анализирате как се създава PHP сайт.Защо не изпълнихте обещанието си?Може би напишете статия на тази тема (а ако е и с MySQL, тогава общо взето всичко ще е шоколад).

Отговор:


Много да. Само, ето го, вместо too.htm, вероятно имате нужда от two.htm
Не е задължително, но поръчайте))

Отговор:


Кажете ми къде можете да прочетете и запомните всички PHP оператори и кодове например: ехо , включват , друго , ако , печат , за всеки , issetи т.н., какво означават и за какво служат?

Отговор: Александър, бях в почивка от един месец, плюс сега завършвам нова версия на целия сайт. Когато завърша, ще направя малка страница за това.


Mobilesfinks, докато щях да инсталирам php 4, вече беше пусната нова версия на сайта в php 5. И нямаше проблеми, всичко работеше% tashus%

Отговор:


Здравейте!

Моля, кажете ми как да направя заглавието в горната част на прозореца да се промени на всяка страница: тоест " Нова страница" ...

Например, ако щракнете върху връзката "1", тогава прозорецът трябва да се нарича "Първи раздел. Математика" - тоест HTML-кодът беше Първи раздел. математика...
И ако връзката е "2", например, тогава прозорецът да се нарича "Раздел 2. География" - тоест така, че HTML кодът да е Втори раздел. География...

Как го правите променлив с PHP?

Отговор: html.html


Необходимо е да инсталирате PHP4 в Денвър. Инсталационният скрипт сам ще направи всички промени.
След това в папката, където имате файла all.php, който създавате
файл с име ".htaccess" и въведете реда в него
страница: 1
Текуща страница: 1 Общо съобщения: 22

Дори при създаването на личен сайт не всеки може да предвиди всички възможни начини за по-нататъшното му използване. Много е важно да се подготви почвата за по-нататъшното развитие на обекта. Ако в миналото сте създали сайт и сте присвоили разширението .html на всички страници по подразбиране и едва след това сте решили да използвате PHP, тогава прочетете нататък.

Преди, за да се използва SSI, имената на страниците на сайтове трябваше да завършват с разширението .shtml, но днес повечето интернет сървъри са конфигурирани така, че SSI да може да се използва на страници с разширението .html, което е доста удобно. PHP е съвсем различна история - разширението .php е разширението по подразбиране. Разработчиците на уебсайтове, знаейки предварително, че този език за програмиране ще се използва, присвояват правилното разширение на кристала.

Но какво да направите, когато всички страници завършват с разширение .html?

Замяна на HTML разширението с PHP

Това може да стане по няколко начина. Най-очевидният начин е да дадете на всички страници разширение .php или да промените съществуващите разширения (.html, .shtml и т.н.). Този метод има недостатъци. Например, вече индексирани страници с разширение .html ще трябва да бъдат повторно индексирани от търсачките. Или още по-лошо - всички външни връзки, които изрично препращат към тази или онази страница, ще бъдат невалидни. И ще трябва да уведомите собствениците на всеки сайт за тези промени и да създадете друга страница с 301 грешки за всяка страница. Разбира се, смяната на едно разширение с друго е приемливо, но какво ще стане, ако сайтът вече има много страници и много връзки към различни страници от други сайтове?

По умишлена причина в момента всички страници на този сайт завършват с разширението html и не исках да правя горните промени, като по този начин създавам ненужни затруднения за себе си.

Можете да го направите по друг начин. Ако сървърът, хостващ сайта, поддържа mod_rewrite (в повечето случаи го прави) и има достъп до файла .htaccess, тогава можете да добавите следните редове към този файл:

RewriteEngine на RewriteRule ^ (. *) \. Html $ 1 \ .php

С този код, добавен към .htaccess, не е нужно да се притеснявате. Всички заявени несъществуващи страници с разширение .html ще бъдат автоматично заменени с разширение .php благодарение на чудеса от Apache. Но този метод не е единственият. Можете да напишете следното в същия .htaccess файл:

Приложение AddHandler / x-httpd-php .php .html .htm

Според мен най-успешният начин. Това прави HTML страниците равни на PHP страниците, тоест всички PHP функции вече могат да се използват на страници с разширението HTML. Ако няма достъп до файла .htaccess, тогава можете да напишете писмо до хостинг компанията и учтиво да помолите администраторите да зададат желаната стойност за сайта в конфигурацията на Apache (httpd.conf).

Между другото, ако преди това сайтът използва SSI, както следва:

тогава в новото състояние на PHP този код трябва да бъде заменен с:

Е, това е всичко, мисля, че някой от горните методи ще помогне.

PHP е вграден език за програмиране от страна на сървъра. По-голямата част от неговия синтаксис е заимстван от C, Java и Perl. И също така добави няколко уникални функции само за PHP. Основната цел на този език е да създава динамично генерирани PHP HTML страници.

PHP към HTML

Когато създавате сложни уеб страници, ще трябва да комбинирате PHP и HTML, за да изпълните конкретни задачи. На пръв поглед това може да изглежда обезсърчително, тъй като PHP и HTML са две независими дисциплини, но не са. PHP е проектиран да взаимодейства с HTML и неговият код може да бъде включен в маркирането на страницата.

В HTML страниците PHP кодът се включва с помощта на специални тагове. Когато потребителят отвори страницата, сървърът обработва PHP кода и след това изпраща резултата от обработката (не самият той PHP код) в браузъра.

HTML и PHP са доста лесни за комбиниране. Всяка част от PHP скрипт извън таговесе игнорира от компилатора на PHP и се предава директно на браузъра. Ако погледнете примера по-долу, можете да видите, че пълният PHP скрипт може да изглежда така:

Здравейте днес.

Горният код е нормален HTML с малък PHP фрагмент, който извежда текущата дата с помощта на вградената функция за дата. В този случай целият HTML ще бъде игнориран от компилатора на PHP и ще бъде прехвърлен в браузъра непроменен.

Наистина е лесно да се интегрира PHP в HTML. Не забравяйте, че скриптът е HTML страница с включен специфичен PHP код. Можете да създадете скрипт, който ще съдържа само HTML (без тагове) и ще работи добре.

По-напреднали методи:

  • Елемент от менюто


и резултатът е:

PHP към HTML с short_open_tag

Ако трябва да съкратите кода си колкото е възможно повече, преди да вмъкнете HTML в PHP, можете да използвате short_tags. В резултат на това няма да е необходимо да влизатеshort_tags"с" Изключено" На " На". Въпреки че повечето сървъри вече имат активирана тази опция, винаги е най-добре да я проверите ръчно. Проблем, който може да възникне при използване на кратки тагове, е конфликт при използване на XML. В XML синтактичен израз

PHP към HTML с помощта на short__tag

Здравейте, днес е.

Имайте предвид, че ако искате да създадете сайт, който е съвместим с възможно най-много платформи, не трябва да разчитате на short_tags, когато вграждате PHP в HTML.

HTML в PHP с помощта на ехо

Друг начин за интегриране на HTML в PHP файл е с командата echo:.

Това ще повлияе на подчертаването на маркирането в повечето редактори. Следователно е необходимо всички двойни кавички в HTML кода да бъдат затворени с обратна наклонена черта.

PHP към HTML - файлови разширения

За стандартно конфигуриран уеб сървър:

AddHandler cgi-script .html .htm

За уеб сървър, работещ с FastCGI:

AddHandler fcgid-script .html .htm

HTML към PHP

Можете също да използвате HTML код в PHP скриптове. Всичко, което трябва да направите, е да промените реда на отварящите HTML и PHP тагове, когато отваряте страницата с PHP.

Използване на HTML в PHP:

Лична информация

Име:
Фамилия:
"; ?>

Това вмъкване на PHP в HTML позволява да се използва много по-малко код. Тук използваме $ PHP_SELF глобално, което позволява стойностите на полето, посочени под тях, да се използват в същия файл. Обикновено за такива форми се създават два файла: първият е самата HTML форма, а вторият е PHP файлът, който извършва обработката.

Ако вече имате сложни PHP приложения, които използват голям брой файлове и искате да поддържате нещата прости, този метод може да ви помогне.

Тази публикация е превод на статията "PHP в HTML", изготвена от приятелския екип на проекта

Опитвам се да създам форма за вход. Това е моят HTML код на формуляр

Лично аз го взех за PDO.

Точки 4 и 5

$ парола = mysql_real_escape_string (наклонени черти (md5 ($ _ POST ["парола"])));

Първо, редът е грешен. Хеширате $ _POST ["парола"] и тогаваопитвайки се да използвам наклонени черти - следнеговите хешове няма да имат наклонени черти. Въпреки това, ако се опитвате да попречите на хората да използват наклонени черти (или каквото и да е друго) в паролите, трябва да ги премахнете, преди да хеширате низа.

Следващият md5 не трябва да се използва като алгоритъм за хеширане на парола, за който е установено, че е слаб и може да бъде груба сила за създаване на сблъсъци на низове много по-често, отколкото е необходимо.

да ти трябва дасъхранявайте хешове или "пръстови отпечатъци" на пароли, а не самите пароли, но в идеалния случай искате да солите и хеширате (с поне sha1) тези пароли, а не просто да ги хвърляте във функцията md5 ().

И потърсете "настройка на хеш на парола", като използвате избраната от вас търсачка.

Точка 6

SELECT id FROM $ table WHERE потребителско име = "". $ потребителско име. "" и парола = "". $ парола. "";

Добавих =, което липсваше в оригиналния въпрос, но всичко не съвпада с потребителското име и паролата във вашата заявка... ако някой успее да получи SQL инжекция във вашето потребителско име, паролата никога няма да бъде проверена. Представи си:

ИЗБЕРЕТЕ user.id FROM user WHERE user.username = "fred" ИЛИ 1 = 1 - И user.password = "abc123"

По-добре е да изберете потребителския идентификатор и паролата за пръстов отпечатък от базата данни и след това да оцените паролата в приложението, вместо да се доверите на проверката на паролата на ниво база данни. Това също означава, че можете да използвате специален алгоритъм за хеширане и осоляване в самото приложение, за да потвърдите паролите си.

клауза 7

$ _SESSION ["user"] = $ _POST ["username"];

Просто се съхранява потребителското име в сесията? Това по никакъв начин не трябва да се използва като „проверител за влизане“, особено ако във вашата сесия (вероятно) няма нищо, което да предотврати отвличане.

Идентификаторът на сесията може лесно да бъде извлечен от бисквитката в реално време и това е всичко, което е необходимо, за да „заемете“ потребителското име на някой друг. Трябва поне да се опитате да намалите шансовете за отвличане на сесията, като свържете IP адреса на потребителя, низа на UserAgent или някаква друга комбинация от относително статични данни, които могат да се сравняват с всяка страница ... все пак има недостатъци на почти всеки подход (особено , както вече открих, ако имате посетители, използващи AOL), но можете да направите възможна 99% ефективна сесия на пръстов отпечатък, за да намалите отвличането с много малък шанс сесията на потребителя да бъде прекъсната по погрешка.

В идеалния случай можете също да създадете токен за сесия, за да смекчите CSRF атаките, когато потребителят трябва да предприеме „привилегировано“ действие върху базата данни (актуализира своите данни или каквото и да е). Токенът може да бъде напълно произволен и уникален код, съхранен в базата данни и/или в SSL бисквитката, когато потребителят влезе (ако приемем, че потребителят не може да извърши каквото и да е действие, което актуализира базата данни извън HTTPS, тъй като това просто ще предаде данни в чист текст през интернет - какво би лоша идея).

Токенът се поставя в скрито поле на формуляр за всички/всички формуляри и се проверява спрямо стойността, съхранена в бисквитката (или сесията или базата данни), когато този формуляр е изпратен. Това ще гарантира, че лицето, което изпраща формуляра, има поне сесия на живо във вашия уебсайт.

Това може да са няколко проблема.

Първо,във вашето $ match изявление ви липсва операторът за равенство на паролата:

$ match = "ИЗБЕРЕТЕ идентификатор ОТ $ таблица WHERE потребителско име =" ". $ потребителско име." "и парола" ". $ парола." ";";

Би трябвало:

$ match = "ИЗБЕРЕТЕ идентификатор ОТ $ таблица WHERE потребителско име =" ". $ потребителско име." "и парола =" ". $ парола." ";";

Второ, поставяте паролата в базата данни следизползвате го с md5?

Ако не, тогава вашата заявка се опитва да съпостави md5 (парола) с парола.

Много читатели във всяка книга за компютрите прелистват всичко, което не представлява непосредствен интерес, и преминават към това, което всъщност са. искамзная. Аз лично правя точно това. Въпреки това, няма какво да се притеснявате – рядко има технически книги, които трябва да се четат от кора до кора. Или може би направихте точно това – пропуснахте първоначалните осем глави и поехте тази глава, защото имаше най-интересното заглавие? И кой иска да губи време за детайли, когато следващият проект е „запален“ на работа?

За щастие тази бързина няма да ви попречи да преминете през втората част на тази книга, която е за използването на PHP за създаване на сайтове и взаимодействие с мрежата. В тази глава ще научите как лесно да променяте съдържанието на уеб страниците и да навигирате в мрежата с помощта на връзки и различни стандартни функции. Следващата глава ще допълни този материал, като разгледа подробно средствата за взаимодействие с потребителя в HTML форми Глава 11 описва организацията на интерфейса с базите данни. Останалите глави от втората част обхващат нетривиалните аспекти на уеб програмирането в PHP.

Имайте предвид обаче, че материалът в част 1 абсолютно необходимоза нормални PHP умения. Това предполага, че сте прочели част 1, така че примерите ще използват много от концепциите, описани по-рано. Така че, ако сте прегледали част от книгата, ще трябва от време на време да се връщате към предишните глави и да наваксвате.

Прости връзки

<а href = "date.php">

$ връзка = "date.php";

отпечатай "<а href = \"$link\">Вижте днешната дата
\ н "

Вероятно се чудите защо обратната наклонена черта (\) се поставя преди кавичките (") в референтния код? Това е така, защото кавичките в PHP са специални знаци и се използват като разделители на низове. Следователно, буквалните кавички в низовете трябва да бъдат екраниран.

Ако необходимостта да избягвате кавички ви дразни, просто включете режима magic_quotes_gpc във вашия php.ini файл. В резултат на това всички апострофи, кавички, обратни наклонени черти и нулеви знаци. в текста автоматично се избягват!

Нека развием горния пример. За да покажете бързо списък с връзки в браузъра, можете да използвате масив:

// Създаване на масив от секции

$ contents - масив ("уроци", "статии", "скриптове", "контакт");

// Превъртане и последователно показване на всеки елемент от масива

за ($ i = 0; $ i< sizeof($contents; $i++)

отпечатай "• ". $ contents [$ i]."
\ н ";

// • - специална нотация за маркерна точка endfor;

Файлови компоненти (шаблони)

Това ни отвежда до една от любимите ми функции на PHP. Шаблонът (по отношение на уеб програмирането) е част от уеб документ, който ще използвате на няколко страници. Шаблоните, като функциите на PHP, ви спестяват труда да копирате/поставяте фрагменти от съдържанието и кода на страницата. С разрастването на сайта значението на шаблоните нараства, тъй като те позволяват бързи и лесни модификации в целия сайт. Този раздел ще опише някои от възможностите, които се отварят при използване на най-простите шаблони.

Обикновено общите части от съдържание/код (т.е. шаблони) се записват в отделни файлове. Когато създавате уеб документ, просто „включвате“ тези файлове на съответните места на страницата. PHP има две функции за това: include () и require ().

включва () и изисква ()

Един от най-забележителните аспекти на PHP е способността да се създават шаблони и програмни библиотеки и след това да се вмъкват в нови скриптове. Използването на библиотеки спестява време и усилия за споделяне на обща функционалност в уеб сайтове. Читатели с

опит в програмирането на други езици (като C, C ++ или Java), са запознати с концепцията за функционални библиотеки и тяхното използване в програми за разширяване на функционалността.

Включването на един или повече файлове в скрипт се извършва със стандартните функции на PHP изискват () и включват (). Както ще видите в следващия раздел, всяка от тези функции се прилага за конкретна ситуация.

Функции

Има четири функции в PHP за включване на файлове в PHP скриптове:

  • включва ();
  • включва_веднъж ();
  • изисквам ();
  • изисквам_веднъж ().

Въпреки сходството на имената, тези функции решават различни проблеми.

Функцията include () включва съдържанието на файла в скрипта. Синтаксисът на функцията include () е:

включва (файлов файл]

Функцията include () има една интересна функция - може да се изпълнява условно. Например, ако извикване на функция е включено в блок на оператор if. тогава файлът се включва в програмата само ако условието i f е вярно. Ако функцията includeO се използва в условна команда, тогава тя Трябвада бъдат затворени в къдрави скоби или алтернативни ограничители. Сравнете разликите в синтаксиса между листи 9.1 и 9.2.

Списък 9.1. Неправилно използване на включва ()

ако (някое_условно)

включва ("text91a.txt"); друго

включва ("text91b.txt");

Списък 9.2. Правилното използване на включва ()

ако (някое_условно):

включва ("text91a.txt");

включва ("text91b.txt");

Целият PHP код във включен файл задължителносе намира в PHP тагове. Не предполагайте, че просто съхраняването на PHP команда във файл ще я обработи правилно:

Вместо това трябва да обвиете командата в подходящи тагове, както показва следният пример:

print "това е невалиден файл за включване";

Функцията include_once () прави същото като include (), с едно изключение: преди да включи файл в програмата, тя проверява дали е бил включен по-рано. Ако файлът вече е включен, извикването include_once () се игнорира, а ако не, файлът се включва като стандарт. Във всички останали отношения, include_once () не се различава от include (). Синтаксисът за функцията include_once () е:

include_once (файлов файл)

Като цяло функцията require () е подобна на include () - тя също така включва шаблона във файла, който съдържа извикването на require (). Синтаксисът за функцията require () е:

изисквам (файлов файл)

Има обаче една важна разлика между функциите require () и include (). Файлът, определен от параметъра require (), е включен в скрипта, независимо къде в скрипта се намира require (). Например, ако извикате requi ge () в блока if, ако условието е false, файлът все още ще бъде включен в скрипта!

В много ситуации е удобно да създадете файл с променливи и друга информация, която се използва в целия сайт, и след това да го включите, ако е необходимо. Въпреки че името на този файл е произволно, обикновено го наричам init.tpl (съкратено от "initializaion.template"). Списък 9.3 показва как изглежда един много прост файл init.tpl. Списък 9.4 включва съдържанието на init.tpl в скрипта с командата require ().

Списък 9.3. Пример за файл за инициализация

$ site_title = "(! LANG: PHP рецепти";!}

$ contact_email = " [защитен с имейл]";

$ contact_name = "WJ Gilmore";

Списък 9.4. Използване на файла init.tpl

<? print $site_title; ?>

\ "mai1 до: $ contact_email \"> $ contact_name."; ?>

Предаването на URL адреса при извикване на require () е разрешено само когато е активиран режимът "URL fopen wrappers" (този режим е активиран по подразбиране).

С разрастването на сайта може да се окаже, че някои файлове са включени в скрипта няколко пъти. Понякога това не е проблем, но в някои случаи повторното включване на файла ще нулира стойностите на променените променливи. Ако функциите са дефинирани във файл за включване, могат да възникнат конфликти при именуване. С това казано стигаме до следващата функция - require_once ().

Функцията require_once () гарантира, че файлът е включен в скрипта само веднъж. След извикване на requi re_once (), всички следващи опити за включване на същия файл се игнорират. Синтаксисът за функцията requige_once () е:

Вероятно ще стане по-вероятно да използвате функции за включване на файлове, тъй като вашите уеб приложения нарастват по размер. Тези функции често се срещат в примерите в тази книга за намаляване на излишъка на кода. Първите примери са разгледани в следващия раздел за това как да изградите основни шаблони.

Строителни компоненти

Когато дефинирам структурата на типична уеб страница, обикновено я разделям на три части: заглавка, тяло и долен колонтитул. Обикновено повечето добре организирани уебсайтове имат заглавие, което почти не се променя; в основната част се показва исканото съдържание на сайта, поради което често се променя; накрая, долният колонтитул съдържа информация за авторски права и връзки за навигация. Долен колонтитул, подобно на заглавието, обикновено остава непроменен. Не ме разбирайте погрешно – изобщо не се опитвам да потискам творческите ви пориви. Попаднах на много страхотни сайтове, които не спазват тези указания. Просто се опитвам да измисля обща структура, която може да послужи като отправна точка за по-нататъшна работа.

Заглавие

Заглавен файл (като този в листинг 9.5) присъства в почти всеки от моите уеб сайтове с активиран PHP. Този файл съдържа

информация за целия сайт, като заглавие, информация за контакт и някои от компонентите на кода на HTML страница.

Списък 9.5. Примерен заглавен файл

// Файл: header.tpl

// Цел: заглавен файл за сайта PhpRecipes.

$ site_name = "PHPRecipes";

$ site_email = " [защитен с имейл]";

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

<? print $site_name; ?>

// Отпечатване на текущата дата и час

отпечатайте дата ("F d, h: i a");

Доста често достъпът на посетителите до включване на файлове е ограничен, особено ако тези файлове съдържат поверителна информация (например пароли). В Apache можете да предотвратите гледането на някои файлове, като редактирате файловете http.conf или htaccess. Следният пример показва как да деактивирате прегледа на всички файлове с разширение .tpl:

Поръчайте разреши, откажи

Разрешаване от 127.0.0.1

Проблемите със сигурността на PHP и сайта са описани подробно в Глава 16.

Текущо заглавие

Долен колонтитул обикновено е информацията, която се намира в долната част на страниците на сайта – информация за контакт, връзки и информация за авторски права. Тази информация може да бъде поставена в отделен файл и включена като шаблон, точно както бихте направили със заглавка. Да кажем, че с началото на новата година трябва да промените информацията за авторските права и да я приведете във формата "Авторско право © 2000-2001". Има два начина: прекарайте Бъдни вечер в трескаво редактиране на стотици статични страници илиизползвайте шаблон като този в листинг 9.6. Една проста промяна и можете да се върнете към ваканционните си задължения.

Списък 9.6.Пример за файл на долния колонтитул (footer.tpl)

контакт |

вашата поверителност

Обърнете внимание на използването на глобалната променлива $ site_email във файла на горния/долен колонтитул. Стойността на тази променлива е валидна за цялата страница и приемаме, че файловете header.tpl и footer.tpl ще бъдат включени в една и съща крайна страница. Обърнете внимание и на наличието на $ site_path във връзката за поверителност. Винаги включвам пълни пътища към всички връзки в моите шаблони - ако URL адресът на връзката се състои от едно име privacy.php, тогава файлът на долния колонтитул ще бъде твърдо кодиран към конкретна директория.

Главна част

Основното тяло на страницата включва съдържанието на горния и долния колонтитул. По същество това е основната част, която съдържа информация, представляваща интерес за посетителите на сайта. Заглавката изглежда впечатляващо, долният колонтитул съдържа полезна информация, но в името на основната част на страницата потребителите се връщат към сайта отново и отново. Въпреки че не мога да дам никакви насоки относно конкретната структура на страниците, шаблони като този в листинг 9.7 значително опростяват администрирането на страниците.

Списък 9.7. Пример за основното тяло на страницата (index_body.tpl)

/tutorials.php">уроци

статии

скриптове

контакт

Добре дошли в PHPRecipes. отправното място за PHP скриптове, уроци,

и информация за гурме готвене!

Обединяване на всичко: горен, долен колонтитул и тяло

Настроението ми може би най-добре е изразено от полковник „Ханибал“ Смит (Джордж Пепард) от известната поредица „Екип А“: „Обичам, когато всичко си дойде на мястото“. Изпитвам нещо подобно, когато различни шаблони се комбинират, за да образуват пълен уеб документ. Чрез комбиниране на три секции на документа, header.tpl, index_body.tpl и footer.tpl, можете бързо да създадете проста страница като тази в листинг 9.8.

Списък 9.8. Изграждане на страницата index.php чрез включване на множество файлове

// Файл: index.php

// Дестинация: начална страница на PHPRecipes

// Показване на заглавието

включва ("header.tpl");

// Показване на основната част

включва ("index_body.tpl");

// Показване на горния и долния колонтитул

включва ("footer.tpl");

Как е? Три прости команди - и имате готова страница. Текстът на крайната страница е показан в листинг 9.9.

Списък 9.9. HTML страницата, вградена в листинг 9.8 (index.php)

PHPRecipes

23 август, 15:17 ч

уроци

статии

скриптове

контакт

Добре дошли в PHPRecipes, отправното място за PHP скриптове, уроци,

и гурме съвети и рецепти за готвене!

Авторско право 2000 PHPRecipes. Всички права запазени.

контакт |

вашата поверителност

На фиг. 9.1 показва как изглежда получената страница в браузър. Въпреки че обикновено не използвам граници на таблицата, този път ги извадих, за да изпъкнат по-ясно трите части на страницата на снимката.

Ориз. 9.1. Външният вид на страницата, изградена в листинг 9.8

Оптимизиране на шаблони

Във втория (според мен по-предпочитан) вариант шаблоните са форматирани като функции, разположени в отделен файл. Това осигурява допълнително структуриране на вашите шаблони. Наричам този файл init файл и съхранявам друга полезна информация в него. Тъй като вече разгледахме сравнително дългите примери за горен и долен колонтитул, съдържанието на Списъци 9-10 и 9-11 е леко съкратено, за да илюстрира новата идея.

Списък 9.10. Оптимизиран шаблон на сайт (site_init.tpl)

// Файл: site_init.tpl

// Цел: файл за инициализация PhpRecipes

$ site_name = "PHPRecipes";

$ site_email = " [защитен с имейл]";

$ site_path = "http: // локален хост / phprecipes /";

функция show_header ($ site_name) (

<? print $site_name: ?>

Това е заглавката

функция показва долен колонтитул ()

Това е долният колонтитул

Списък 9.11. Използване на файл за инициализация

// Включете файл за инициализация

включва ("site_init.tpl");

// Показване на заглавието

показване на заглавка ($ site_name);

// Съдържание на основното тяло Това е информация за тялото

// Показване на заглавката Show_footer ();

Проект: генератор на страници

Въпреки че повечето от създадените от мен уебсайтове са генерирали съдържанието на основната си страница въз основа на информация, прочетена от база данни, винаги има няколко страници, които остават до голяма степен непроменени. По-специално, те могат да показват информация за екипа за разработка, информация за контакт, реклами и т. н. Обикновено пазя тази „статична“ информация в отделна папка и използвам PHP скрипт, за да я заредя при поискване. Разбира се, вие се чудите – ако това е статична информация, за какво е PHP скриптът? Защо не зареждате обикновени HTML страници? Предимството на PHP е, че можете да използвате шаблони и да вмъквате статични фрагменти, ако е необходимо.

<а href = "/static.php?content=$content">Име на статичната страница

Нека започнем със създаване на статични страници. За простота ще се огранича до три страници, съдържащи информация за сайта (листинг 9.12), реклами (листинг 9.13) и информация за контакт (листинг 9.14).

Списък 9.12. Информация за сайта (about.html)

Относно PHPRecipes

Кой програмист не смесва цяла нощ програмиране с гурме бисквитки. Тук в PHPRecipes. Едва ли минава нощ без някой от нашите кодери да смеси малко HTML с вкусна чиния с гъби Портобело или дори фондю. Затова решихме да ви донесем най-доброто от това, което обичаме най-много: PHP и храна!

Точно така, читатели. Уроци, скриптове, суфлета и др. само 0в PHPRecipes.

Рекламна информация

Независимо дали идват, за да научат най-новите техники на PHP или за да осмислят как

за да печете пиле, можете да се обзаложите, че нашите читатели са вземащи решения. Те са индустрията

професионалисти, които вземат решения за това какво купува тяхната компания.

За рекламна информация се свържете

">[защитен с имейл].

Списък 9.14. Данни за връзка (contact.html)

Свържете се с нас

Имате съвет за кодиране?

Знаете ли идеалния топинг за захаросани сладкиши?

Информирай ни! Свържете се с екипа на [защитен с имейл].

Нека да преминем към изграждането на страницата static.php, която показва исканата статична информация. Този файл (виж листинг 9.15) включва компонентите на страницата за нашия сайт и файла за инициализация site_init.tpl.

Списък 9.15. Общ изход на статичните страници (static.php)

// Файл: static.php

// Цел: показване на исканите статични страници.

// ВНИМАНИЕ: предполага се, че файлът "site_init.tpl" и всички

// статичните файлове са в същата директория.

// Функциите и променливите за зареждане включват ("site_init.tpl"):

// Показване на заглавието show_header ($ site_name);

// Извеждане на исканото съдържание включва ("$ content.html"):

// Показване на заглавката show footer ();

Вече всичко е готово за изграждане на основния скрипт. Просто включете в страницата

<а href = "static.php?content=about">Статично име на страница

Рекламна информация

Свържете се с нас

Когато щракнете върху някоя от тези връзки, браузърът зарежда съответната статична страница, вградена в static.php!

Резултати

В тази глава научихте за основната цел, която PHP е проектиран да реши — динамично изграждане на уеб страници. Бяха разгледани следните въпроси:

  • URL обработка;
  • изграждане на динамично съдържание;
  • включване и изграждане на основни шаблони.

Главата завършва с генератор на страници, програма, която зарежда статични страници в шаблон и улеснява поддържането на голям брой статични HTML страници.

Следващата глава се фокусира върху използването на PHP във връзка с HTML форми за драстично увеличаване на интерактивността на вашия сайт. И след това - взаимодействие с бази данни! Има много интересни неща за учене.