49a5cc4d4fc3821a6c0b97ffc43a0ba6.ppt
- Количество слайдов: 11
PHP и технологии создания сайтов
Обработка форм script. php? name=test Варианты передачи переменных: n Переменные передаются непосредственно phpмодулю (если включена директива register_globals) $name n Через специальные ассоциированные массивы: $_GET['name'] $_POST['name'] $_REQUEST['name'] n $HTTP_GET_VARS['name'] (в PHP 3) Функция import_request_variables('p', 'p_'); n Через переменную окружения $QUERY_STRING
Рисование формы <html><body> <H 2>Опрос: выборы в Госдуму</H 2> <? $parties = array("Единая Россия", "Справедливая Россия", "КПРФ", "ЛДПР"); ? > <form method="GET" action="anketa. php"> <P>За какую партию Вы намерены голосовать: </P><BLOCKQUOTE> <? for($i = 0; $i < sizeof($parties); $i++) { ? > <INPUT type="radio" id="party<? =$i+1? >" name="party" value="<? =$i+1? >"> <LABEL for="party<? =$i+1? >"> <? =$i+1? >. <? =$parties[$i]? ></LABEL><BR> <? } ? > </BLOCKQUOTE><P><INPUT TYPE=submit value="Проголосовать"></form> </H 3></body></html>
Обработка формы <html><body> <H 2>Опрос: выборы в Госдуму</H 2> <? $data. File = "data. txt"; ? > <? if($vote=$_GET["party"]) { $save = fopen($data. File, "a"); fwrite($save, "$voten"); fclose($save); ? > <P>Ваше мнение учтено. </P> <? } ? > </H 3></body></html>
Показ результатов опроса <html><body> <H 2>Опрос: выборы в Госдуму</H 2> <? $data. File = "data. txt"; ? > <? if($vote=$_GET["display"]) { $data=fopen($data. File, "r")); while( $str= fgets($data, 2) ){ $votes[$str]++; } fclose($data); ? > <H 3>Результаты опроса: </H 3><OL> <? for($i= 0; $i < sizeof($parties); $i++) { ? > <LI><? =$parties[$i]? >: <? =$votes[$i+1]? > голосов <? } } ? > </H 3></body></html>
Шаблоны в PHP Проблема отделения представления от логики (работы верстальщика от работы программиста). Решения: n В рамках модулей PHP n Smarty
Smarty Теги в шаблонах Smarty: n {* комментарий *} n {выражение} – печать значения выражения n {func par 1="val 1" par 2="val 2"} например {include file="inc. php"} n {php} … {/php}
Smarty выражение|модификатор: параметры Модификаторы: n upper n truncate: 20: "…" n default: {$td|default: " "} n replace: {$file. Name| replace: " ": "_"}
Smarty Переменная smarty n n n {$smarty. get. par 1} {$smarty. post. par 1} {$smarty. cookies. username} {$smarty. template} {$smarty. ldelim}
Пример. PHP <? php require_once('smarty/Smarty. class. php'); $smarty = new Smarty(); $smarty->template_dir = 'templates'; $smarty->compile_dir = 'templates_c'; $DB->query("SELECT * FROM news ORDER BY ID LIMIT 0, 10"); $smarty->assign('news', $DB->fetchrowset()); $smarty->display('index. tpl. html'); ? >
Пример. Шаблон index. tpl. html <html> {foreach from=$news item=record} <P>Заголовок: {$record. title} Teкст новости: {$record. description} Полная версия: <a href="index. php? id={$record. id}">Подробнее. . . </a> {/foreach} </html>
49a5cc4d4fc3821a6c0b97ffc43a0ba6.ppt