<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2384230768248733415</atom:id><lastBuildDate>Fri, 17 Oct 2025 17:26:21 +0000</lastBuildDate><category>Access Control</category><category>Binaty Data</category><category>Cookies</category><category>Sessions</category><category>controller php</category><category>php mysql</category><category>php oracle connect</category><category>php oracle examples</category><category>simple cms</category><category>книги PHP</category><title>PHP. Изучение языков и web-технологий</title><description>Конспект изучения языков и web-технологий : PHP</description><link>http://prostophp.blogspot.com/</link><managingEditor>noreply@blogger.com (Sergey)</managingEditor><generator>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2384230768248733415.post-147198494787823389</guid><pubDate>Sun, 01 Nov 2020 11:38:00 +0000</pubDate><atom:updated>2010-11-01T06:33:11.283-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">книги PHP</category><title>Список литературы</title><description>Литературы на тему &lt;b&gt;PHP&lt;/b&gt;, конечно, очень много.&lt;br /&gt;
Мне нравятся вот эти книги по стилю и содержанию.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;1. &amp;nbsp;&lt;b&gt;Build Your Own Database Driven Web Site Using PHP &amp;amp; MySQL&lt;/b&gt; by Kevin Yank. Fourth Edition: July 2009.&lt;br /&gt;
&lt;br /&gt;
Я брал, как обычно, примеры из этой книги и проверял их работу с небольшими вариантами изменений. Здесь же хороший &lt;b&gt;справочник команд MySQL&lt;/b&gt; и&amp;nbsp; &lt;b&gt;функций PHP&lt;/b&gt; для доступа к &lt;b&gt;MySQL&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Davey Shafik - &lt;b&gt;The PHP Anthology. 101 Essential Tips, Tricks &amp;amp; Hacks&lt;/b&gt;, 2nd Edition - 2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На эту книгу ссылается Kevin Yank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. М.Кузнецов-&lt;b&gt;PHP5. Практика разработки web-сайтов&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Тоже полезная книга.</description><link>http://prostophp.blogspot.com/2010/11/blog-post.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2384230768248733415.post-2301503639419750299</guid><pubDate>Thu, 28 Oct 2010 09:50:00 +0000</pubDate><atom:updated>2010-11-01T06:25:28.208-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Access Control</category><category domain="http://www.blogger.com/atom/ns#">Binaty Data</category><category domain="http://www.blogger.com/atom/ns#">Cookies</category><category domain="http://www.blogger.com/atom/ns#">Sessions</category><title>Cookies, Sessions,  Access Control, Binaty Data</title><description>Куки - набор пар &lt;b&gt;имя-значение&lt;/b&gt;, хранящиеся на клиенте в привязке к конкретному сайту.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #cfe2f3;&quot;&gt;&amp;nbsp; &lt;br /&gt;
setcookie(name[, value[, expiryTime[, path[, domain[, secure[,httpOnly]]]]]])&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Должна использоваться &lt;b&gt;до отправки &lt;/b&gt;актуального контента (аналогично header()) ! &lt;br /&gt;
Разные браузеры могут вводить ограничения на количество &lt;b&gt;куков&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Чтобы обойти возможные ограничения браузеров, используются &lt;b&gt;сессии&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Если&lt;b&gt; куки&lt;/b&gt; хранятся &lt;b&gt;на клиенте&lt;/b&gt;, то &lt;b&gt;сессии&lt;/b&gt; - на web-&lt;b&gt;сервере&lt;/b&gt;.&lt;br /&gt;
В качестве&lt;b&gt; куки&lt;/b&gt; в этом случае хранится тоько &lt;b&gt;id сессии&lt;/b&gt; юзера.&lt;br /&gt;
Разрешение на сессии прописывается в файле php.ini.&lt;br /&gt;
До передачи контента вызывается функция:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
session_start();&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;$_SESSION[&#39;password&#39;] = &#39;mypassword&#39;;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;unset($_SESSION[&#39;password&#39;]);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;$_SESSION = array();&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;session_destroy();&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Браузер передаёт &lt;b&gt;id&lt;/b&gt; сессии &lt;b&gt;каждый раз &lt;/b&gt;при&amp;nbsp; запросе страницы.&lt;br /&gt;
&lt;br /&gt;
Для &lt;b&gt;работы с файлами&lt;/b&gt; используются функции:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;$html = file_get_contents($srcurl);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;$result=file_put_contents($tempfilename, $html);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;file_exists($tempfilename);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;unlink($tempfilename);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;copy($tempfilename, $targetfilename);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;Что интересно, если в функции&lt;b&gt; file_get_contents($srcurl)&lt;/b&gt; в значении &lt;b&gt;$srcurl&lt;/b&gt; стоит&lt;b&gt; url&lt;/b&gt;, например, &quot;&lt;a href=&quot;http://prostophp.blogspot.com/2010/10/cookies-sessions-and-access-control.html&quot;&gt;http://prostophp.blogspot.com/2010/10/cookies-sessions-and-access-control.html&lt;/a&gt;&quot;, то результатом будет&lt;span style=&quot;color: red;&quot;&gt; не содержание файла&lt;/span&gt;, а результат обработки файла браузером, т.е&lt;span style=&quot;color: red;&quot;&gt;.html - контент&lt;/span&gt;!&lt;br /&gt;
&lt;br /&gt;
Всё, что нужно для&amp;nbsp; upload - выгрузки файла с клиента на сервер:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;form action=&quot;&lt;b&gt;index.php&lt;/b&gt;&quot; method=&quot;post&quot; &lt;span style=&quot;color: red;&quot;&gt;enctype=&quot;multipart/form-data&quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&amp;lt;label id=&quot;my_files&quot;&amp;gt;Select file to upload:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;span style=&quot;color: red;&quot;&gt;input type=&quot;file&quot;&lt;/span&gt; id=&quot;upload&quot; name=&quot;upload&quot;/&amp;gt;&amp;lt;/label&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&amp;lt;input type=&quot;hidden&quot; name=&quot;action&quot; value=&quot;upload&quot;/&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; value=&quot;Submit&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
PHP - скрипт&lt;b&gt; index.php&lt;/b&gt; обрабатывает просабмиченную форму.&lt;br /&gt;
Информация о файле хранится в глобальном массиве &lt;b&gt;$_FILES[&#39;my_files&#39;]&lt;/b&gt;.&lt;br /&gt;
&lt;b&gt;$_FILES[ ][&#39;tmp_name&#39;]&lt;/b&gt; - имя загруженного&amp;nbsp; на web-сервер файла во временный каталог (параметр &lt;b&gt;upload_tmp_dir&lt;/b&gt; в php.ini)&lt;br /&gt;
&lt;b&gt;$_FILES[ ][&#39;name&#39;] &lt;/b&gt;- имя исходного файла на клиенте до сабмита&lt;br /&gt;
&lt;b&gt;$_FILES[ ][&#39;size&#39;]&lt;/b&gt; - размер файла в байтах &lt;br /&gt;
&lt;b&gt;$_FILES[ ][&#39;type&#39;&lt;/b&gt;] - MIME type файла (text/plain, image/gif,image/jpeg,image/png,..)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ограничение макс. размера файла&lt;/b&gt; - через параметр &lt;b&gt;upload_max_filesize&lt;/b&gt; в &lt;b&gt;php.ini.&lt;/b&gt;&lt;br /&gt;
Проверять через параметр &lt;b&gt;$_FILES[ ][&#39;size&#39;]&lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt; нет смысла&lt;/span&gt;, т.к. файл &lt;b&gt;уже загружен&lt;/b&gt; на сервер.&lt;br /&gt;
&lt;br /&gt;
Создание &lt;b&gt;уникального имени&lt;/b&gt; файла, например:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
$filename = &#39;C:/uploads/&#39; . time() . $_SERVER[&#39;REMOTE_ADDR&#39;] . $ext;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Безопасное копирование файла:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
if (!is_uploaded_file($_FILES[&#39;upload&#39;][&#39;tmp_name&#39;]) or&lt;br /&gt;
&amp;nbsp; !copy($_FILES[&#39;upload&#39;][&#39;tmp_name&#39;], $filename))&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;{ обработка ошибки ...}&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Очень &lt;b&gt;важная &lt;/b&gt;функция -&lt;b&gt; is_uploaded_file&lt;/b&gt;().&lt;br /&gt;
Проверяет, действительно ли этот файл был загружен в результате сабмита формы.&lt;br /&gt;
&lt;br /&gt;
Просмотр загруженных файлов.&lt;br /&gt;
&lt;br /&gt;
Размер файла передаётся в заголовке:&lt;br /&gt;
header(&#39;Content-length: &#39; . strlen($filedata));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тип файла:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
header(&quot;Content-type: $mimetype&quot;);&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Имя файла:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
header(&quot;Content-disposition: inline; filename=$filename&quot;);&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Извлекаем файл из базы:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
$sql = &quot;SELECT filename, mimetype, filedata FROM filestore WHERE id = &#39;$id&#39;&quot;;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;...&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;$file = mysqli_fetch_array($result);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;$filename = $file[&#39;filename&#39;];&lt;br /&gt;
$mimetype = $file[&#39;mimetype&#39;];&lt;br /&gt;
$filedata = $file[&#39;filedata&#39;];&lt;br /&gt;
$disposition = &#39;&lt;span style=&quot;color: red;&quot;&gt;inline&lt;/span&gt;&#39;;&amp;nbsp;&amp;nbsp;&amp;nbsp; // просмотр на месте&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;if ($_GET[&#39;action&#39;] == &#39;download&#39;)&lt;br /&gt;
{&lt;br /&gt;
$mimetype = &#39;application/x-download&#39;;&lt;br /&gt;
$disposition = &#39;&lt;span style=&quot;color: red;&quot;&gt;attachment&lt;/span&gt;&#39;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
header(&quot;Content-type: $mimetype&quot;);&lt;br /&gt;
header(&quot;Content-disposition: $disposition; filename=$filename&quot;);&lt;br /&gt;
header(&#39;Content-length: &#39; . strlen($filedata));&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;echo $filedata;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;</description><link>http://prostophp.blogspot.com/2010/10/cookies-sessions-and-access-control.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2384230768248733415.post-8453962058259857389</guid><pubDate>Tue, 26 Oct 2010 09:32:00 +0000</pubDate><atom:updated>2010-11-01T06:22:52.569-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php oracle examples</category><title>Особенности коннекта к Oracle</title><description>&lt;span style=&quot;font-size: large;&quot;&gt;1. Примеры&amp;nbsp; коннекта:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
putenv(&quot;NLS_LNAG=AMERICAN_CIS.CL8MSWIN1251&quot;);&lt;br /&gt;
$link = oci_connect( &quot;user&quot; , &quot;password&quot; , &quot;&lt;span style=&quot;color: red;&quot;&gt;//192.168.1.10:1521/orcl&lt;/span&gt;&quot; );&lt;br /&gt;
if (!$link)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $err = oci_error ();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $error = &#39;Ошибка подключения: &#39; . $err [&#39;message&#39;];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; include &#39;error.html.php&#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; exit();&lt;br /&gt;
}&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Если без &lt;b&gt;IP&lt;/b&gt; - через файл &lt;b&gt;tnsnames.ora&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
$link = oci_connect( &quot;user&quot; , &quot;password&quot; , &quot;testdb&quot; );&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
&lt;b&gt;testdb&lt;/b&gt; должна быть прописана в файле&lt;b&gt; tnsnames.ora&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;2. SQL - запросы.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Сначала - подготовка - &lt;b&gt;oci_parse&lt;/b&gt;()&amp;nbsp; затем исполнение &lt;b&gt;oci_execute&lt;/b&gt;():&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
$sql = &#39;select TO_CHAR(to_oradate(start_date),&#39; . &quot;&#39;MM.DD.YYYY&#39;&quot; .&#39;) as dt,t1.dbsessionid as id,novellname as name&lt;br /&gt;
&amp;nbsp;&amp;nbsp; from sys#locks t1,x$activeusers t2 where t1.dbsessionid =t2.dbsessionid order by novellname&#39;;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;$stid = oci_parse($link, $sql); // не проверяем результат - опция&lt;span style=&quot;color: red;&quot;&gt; не работает&lt;/span&gt;&lt;br /&gt;
$result = oci_execute($stid, OCI_DEFAULT);&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;3. Oracle возвращает имена полей - в &lt;span style=&quot;color: red;&quot;&gt;верхнем&lt;/span&gt; регистре!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
while ($row = oci_fetch_assoc($stid))&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $users[] = array(&#39;dt&#39; =&amp;gt; $row[&#39;&lt;span style=&quot;color: red;&quot;&gt;DT&lt;/span&gt;&#39;], &#39;id&#39; =&amp;gt; $row[&#39;&lt;span style=&quot;color: red;&quot;&gt;ID&lt;/span&gt;&#39;], &#39;name&#39; =&amp;gt; $row[&#39;&lt;span style=&quot;color: red;&quot;&gt;NAME&lt;/span&gt;&#39;]);&lt;br /&gt;
}&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;4. Обработка ошибок:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp; if (!$result) &amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $e = oci_error($stid);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $error = &#39;Error : &#39; . htmlentities($e[&#39;message&#39;]) . &#39; : &#39; . htmlentities($e[&#39;sqltext&#39;]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; include &#39;error.html.php&#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; exit();&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Именно $&lt;b&gt;stid&lt;/b&gt; а не $&lt;b&gt;link&lt;/b&gt; . Т.е переменная, возвращаемая &lt;b&gt;oci_parse&lt;/b&gt;().</description><link>http://prostophp.blogspot.com/2010/10/oracle.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2384230768248733415.post-4442818081364592261</guid><pubDate>Thu, 07 Oct 2010 13:53:00 +0000</pubDate><atom:updated>2010-11-01T06:19:57.014-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php oracle connect</category><category domain="http://www.blogger.com/atom/ns#">simple cms</category><title>Простая CMS</title><description>Чтобы перейти от &lt;b&gt;простой&lt;/b&gt; html-странички, отображающей данные, хранящиеся в базе, необходима &lt;b&gt;CMS&lt;/b&gt; - &lt;i&gt;content management system&lt;/i&gt;. Такая система состоит из ряда web-страниц, доступ к которым ограничен &lt;b&gt;авторизованным&lt;/b&gt; юзерам. Интерфейс должен позволять &lt;b&gt;просматривать&lt;/b&gt; и &lt;b&gt;изменять &lt;/b&gt;хранящуюся в базе информацию,&lt;b&gt; не заботясь&lt;/b&gt; о деталях SQL-запросов.&lt;br /&gt;
Функционал можно разместить в&lt;b&gt; отдельных&lt;/b&gt; в папках.&lt;br /&gt;
В каждой папке находится свой&lt;b&gt; index.php&lt;/b&gt;, фактически, свой &lt;b&gt;контроллер&lt;/b&gt;.&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;a href=&lt;span style=&quot;color: red;&quot;&gt;&quot;jokes/&lt;/span&gt;&quot;&amp;gt;Manage Jokes&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&lt;span style=&quot;color: red;&quot;&gt;authors/&lt;/span&gt;&quot;&amp;gt;Manage Authors&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&lt;span style=&quot;color: red;&quot;&gt;categories/&lt;/span&gt;&quot;&amp;gt;Manage Joke Categories&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;Дальше всё по обычной схеме - формы с &lt;b&gt;возвратом в контроллер&lt;/b&gt;, где происходит &lt;b&gt;исполнение действий&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5EgCB5p1qcfDS0kDp5sSSVEgAOSHM6Y5Pya4OTDetPsW8NE5f7hdCXyNhV0vRl_7O9ZzeYwDBA25aGAy2j53Z5mnmA1ZApgNoWhdpYBqCdawS44UhGBDAGM1JAJNVrBBS5MAyjINI4RY/s1600/scheme1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;238&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5EgCB5p1qcfDS0kDp5sSSVEgAOSHM6Y5Pya4OTDetPsW8NE5f7hdCXyNhV0vRl_7O9ZzeYwDBA25aGAy2j53Z5mnmA1ZApgNoWhdpYBqCdawS44UhGBDAGM1JAJNVrBBS5MAyjINI4RY/s320/scheme1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Аналогично для любой функциональности.&lt;br /&gt;
Если обработка выполняется&lt;b&gt; в основном контроллере&lt;/b&gt;, то возврат выполняется с помощью функции:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
header(&#39;Location: .&#39;);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;exit();&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Если обработка во&lt;b&gt; внешнем&lt;/b&gt; модуле/форме, то возврат&amp;nbsp; задаётся параметром action=&quot;&quot; формы.&lt;br /&gt;
Значение может быть пустым, либо , например,&lt;b&gt; action=&quot;delete&quot;&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
В списке отображаемых данных в конце каждой строки (как вариант) добавляется кнопка с определённой функцией или группой функций (delete/edit/...).&lt;br /&gt;
В этом случае, каждая строка данных - как форма. &lt;br /&gt;
Для связи с основным контроллером передаваемые данные оформляются через &lt;b&gt;скрытые &lt;/b&gt;кнопки:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;?php foreach ($authors as $author): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form action=&quot;&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php htmlout($author[&#39;name&#39;]); ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;&lt;span style=&quot;color: red;&quot;&gt;hidden&lt;/span&gt;&quot; name=&quot;&lt;span style=&quot;color: red;&quot;&gt;id&lt;/span&gt;&quot; value=&quot;&lt;span style=&quot;color: red;&quot;&gt;&amp;lt;?php echo $author[&#39;id&#39;]; ?&amp;gt;&lt;/span&gt;&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;action&quot; value=&quot;Edit&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;action&quot; value=&quot;Delete&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;nbsp; &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&amp;nbsp;Если использовать &lt;b&gt;checkbox&lt;/b&gt;, то достаточно по одной кнопке действий на всю таблицу.&lt;br /&gt;
Формирование отмеченного списка строк несколько хитрее:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;lt;?php if (isset($users)): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Отметить&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Юзер&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;DBSESSIONID&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Дата входа&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form action=&quot;?&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php foreach ($users as $user): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr valign=&quot;top&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type=&quot;checkbox&quot; name=&quot;&lt;span style=&quot;color: red;&quot;&gt;kill[]&lt;/span&gt;&quot; id=&quot;dbsession&amp;lt;?php $user[&#39;id&#39;]?&amp;gt;&quot; value=&quot;&amp;lt;?php htmlout($user[&#39;id&#39;]); ?&amp;gt;&quot; /&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php htmlout($user[&#39;name&#39;]); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;id[]&quot; value=&quot;&amp;lt;?php htmlout($user[&#39;id&#39;]); ?&amp;gt;&quot; disabled /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php htmlout($user[&#39;dt&#39;]); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;input type=&quot;submit&quot; name=&quot;askme&quot; value=&quot;Подтвердить удаление&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;hidden&quot; name=&quot;action&quot; value=&quot;delete&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;?php endif; ?&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Поскольку количество строк таблицы с данными &lt;b&gt;заранее неизвестно&lt;/b&gt;, в качестве значения атрибута &lt;b&gt;name&lt;/b&gt; тега&amp;nbsp; &amp;lt;input type=&quot;checkbox&quot; ... &amp;gt; задаётся &lt;b&gt;массив&lt;/b&gt;, например,&lt;b&gt; kill[] &lt;/b&gt;.&lt;br /&gt;
В основном контроллере список обрабатывается:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
if (isset($_POST[&#39;action&#39;]) and $_POST[&#39;action&#39;] == &#39;delete&#39; and isset($_POST[&#39;kill&#39;]) )&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; $list = &quot;&#39;&quot; . join(&quot;&#39;,&#39;&quot;, $_POST[&#39;kill&#39;]) . &quot;&#39;&quot;;&lt;br /&gt;
&amp;nbsp; $sql = &#39;delete from sys#locks where dbsessionid in ( &#39; . $list . &#39;)&#39; ;&lt;br /&gt;
&amp;nbsp; $stid = oci_parse($link, $sql);&lt;br /&gt;
&amp;nbsp; $result = oci_execute($stid, OCI_DEFAULT);&lt;br /&gt;
&amp;nbsp; include &#39;ctrl_sql_err.php&#39;;&lt;br /&gt;
&amp;nbsp; oci_commit($link);&lt;br /&gt;
&amp;nbsp; header(&#39;Location: .&#39;);&lt;br /&gt;
&amp;nbsp; exit();&lt;br /&gt;
}&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Последний пример - коннект к &lt;b&gt;Oracle&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Формирование переменного pop-up списка (&amp;lt;id&amp;gt;,&amp;lt;имя автора&amp;gt;) c установкой default -значения.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;?php foreach ($authors as $author): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;option value=&quot;&amp;lt;?php htmlout($author[&#39;id&#39;]); ?&amp;gt;&quot;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: red;&quot;&gt; &amp;lt;?php if ($author[&#39;id&#39;] == $authorid) echo &#39; selected=&quot;selected&quot;&#39;;?&amp;gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php htmlout($author[&#39;name&#39;]); ?&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Где &lt;b&gt;id&lt;/b&gt; - &lt;i&gt;скрытое поле&lt;/i&gt;. В&lt;b&gt; pop-up&lt;/b&gt; листе только &lt;b&gt;name&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Аналогично, для &lt;b&gt;checkbox&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;?php foreach ($categories as $category): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&amp;lt;label for=&quot;category&amp;lt;?php htmlout($category[&#39;id&#39;]);?&amp;gt;&quot;&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;checkbox&quot; name=&quot;categories[]&quot; id=&quot;category&amp;lt;?php htmlout($category[&#39;id&#39;]); ?&amp;gt;&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value=&quot;&amp;lt;?php htmlout($category[&#39;id&#39;]); ?&amp;gt;&quot;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: red;&quot;&gt; &amp;lt;?php if ($category[&#39;selected&#39;]) echo &#39; checked=&quot;checked&quot;&#39;; ?&amp;gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php htmlout($category[&#39;name&#39;]); ?&amp;gt;&amp;lt;/label&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Гибко и просто!</description><link>http://prostophp.blogspot.com/2010/10/cms.html</link><author>noreply@blogger.com (Sergey)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5EgCB5p1qcfDS0kDp5sSSVEgAOSHM6Y5Pya4OTDetPsW8NE5f7hdCXyNhV0vRl_7O9ZzeYwDBA25aGAy2j53Z5mnmA1ZApgNoWhdpYBqCdawS44UhGBDAGM1JAJNVrBBS5MAyjINI4RY/s72-c/scheme1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2384230768248733415.post-4266528389194791587</guid><pubDate>Tue, 05 Oct 2010 09:50:00 +0000</pubDate><atom:updated>2010-11-01T06:16:27.515-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">controller php</category><title>Структурное программирование</title><description>Части кода PHP подключаются с помощью&lt;b&gt; include&lt;/b&gt; &#39;...&#39;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #cfe2f3; color: #0b5394;&quot;&gt;&lt;b&gt;include&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: #0b5394;&quot;&gt;&lt;b&gt;require&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: #0b5394;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: #0b5394;&quot;&gt;&lt;b&gt;include_once&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: #0b5394;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: #0b5394;&quot;&gt;&lt;b&gt;require_once&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;?php include $_SERVER[&#39;DOCUMENT_ROOT&#39;] . &#39;/includes/db.inc.php&#39;; ?&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Область видимости переменных.&lt;br /&gt;
Доступ к глобальным переменным внутри функции:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;global&amp;nbsp;&lt;/b&gt; $link;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; или $&lt;b&gt;GLOBALS&lt;/b&gt;[&#39;link&#39;];&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
Чтобы в&lt;b&gt; html&lt;/b&gt;-страничке &lt;b&gt;использовать переменные&lt;/b&gt;, надо использовать идею &lt;b&gt;контроллера &lt;/b&gt;PHP.&lt;br /&gt;
Т. е. &lt;b&gt;все вызовы htm&lt;/b&gt;l-страниц происходят из &lt;b&gt;одного контроллера&lt;/b&gt; PHP (&lt;span style=&quot;color: #073763;&quot;&gt;index.php&lt;/span&gt;). В контроллере происходит &lt;b&gt;обработка логики&lt;/b&gt; операций и переменным присваиваются определённые значения.&lt;br /&gt;
Тогда в коде html просто вставляется, например:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;h1&amp;gt;&amp;lt;?php htmlout($pagetitle); ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
где переменная $&lt;b&gt;pagetitele&lt;/b&gt;&amp;nbsp; получает значение в контроллере &lt;b&gt;index.php&lt;/b&gt;</description><link>http://prostophp.blogspot.com/2010/10/blog-post.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2384230768248733415.post-2383155225015239624</guid><pubDate>Thu, 23 Sep 2010 07:12:00 +0000</pubDate><atom:updated>2010-11-01T06:14:17.413-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php mysql</category><title>Publishing MySQL Data on the Web</title><description>Коннект к &lt;b&gt;MySQL&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
$link = mysqli_connect(&#39;localhost&#39;, &#39;root&#39;, &#39;password&#39;); //&amp;nbsp; база на локальном компьютере&lt;br /&gt;
mysqli_set_charset($link, &#39;utf8&#39;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //&amp;nbsp;&amp;nbsp; установка кодировки&lt;br /&gt;
mysqli_select_db($link, &#39;ijdb&#39;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //&amp;nbsp;&amp;nbsp; выбираем базу jdb&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Когда скрипт завершён, PHP will&lt;b&gt; automatically close any open database&lt;/b&gt; connections.&lt;br /&gt;
&lt;br /&gt;
SQL-запрос: &lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
mysqli_query(link, query);&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Создаём таблицу:&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
$sql = &#39;CREATE TABLE joke (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; joketext TEXT,jokedate DATE NOT NULL) DEFAULT CHARACTER SET utf8&#39;;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;if (!mysqli_query($link, $sql)) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = &#39;Error creating joke table: &#39; . mysqli_error($link);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include &#39;output.html.php&#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit();&lt;br /&gt;
}&lt;/div&gt;&lt;br /&gt;
Функция  &lt;span style=&quot;color: blue;&quot;&gt;mysqli_error($link)&lt;/span&gt; выводит подробную &lt;b&gt;расшифровку ошибки&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Функция &lt;span style=&quot;color: blue;&quot;&gt;mysqli_query&lt;/span&gt; возвращает &lt;b&gt;true &lt;/b&gt;в случае успеха или &lt;b&gt;false&lt;/b&gt;.&lt;br /&gt;
Для &lt;b&gt;DELETE&lt;/b&gt;, &lt;b&gt;INSERT&lt;/b&gt;, и&lt;b&gt; UPDATE&lt;/b&gt; запросов&amp;nbsp; MySQL also &lt;i&gt;keeps track of the number of table rows (entries) that were affected by the query&lt;/i&gt;.&lt;br /&gt;
Для этого используется &lt;span style=&quot;color: blue;&quot;&gt;mysqli_affected_rows($link)&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Обработка&amp;nbsp; результатов&lt;/b&gt; SQL-запроса. Массив полученных данных обрабатывается в цикле &lt;b&gt;while&lt;/b&gt; или чаще с помощью&lt;b&gt; foreach&lt;/b&gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;?php foreach ($jokes as $joke): ?&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;?php echo htmlspecialchars($joke, ENT_QUOTES, &#39;UTF-8&#39;); ?&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Если запрос возвращает &lt;b&gt;несколько&lt;/b&gt; полей:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
$result = mysqli_query($link, &#39;SELECT id, joketext FROM joke&#39;);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;...&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;while ($row = mysqli_fetch_array($result))&lt;br /&gt;
{&lt;br /&gt;
$jokes[] = array(&#39;id&#39; =&amp;gt; $row[&#39;id&#39;], &#39;text&#39; =&amp;gt; $row[&#39;joketext&#39;]);&lt;br /&gt;
} &lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;..&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;include &#39;jokes.html.php&#39;;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Вся &lt;b&gt;обработка действий&lt;/b&gt; юзера ведётся в &lt;b&gt;одном контроллере&lt;/b&gt;&lt;span style=&quot;color: blue;&quot;&gt; index.php&lt;/span&gt;, из которого вызываются нужные блоки кода .&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Возврат в контроллер&lt;/b&gt;:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
header(&#39;Location: .&#39;);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;exit();&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Для удаления записей - кнопка &quot;delete&quot; в форме :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;?php foreach ($jokes as $joke): ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;form action=&quot;?deletejoke&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php echo htmlspecialchars($joke[&#39;text&#39;], ENT_QUOTES,&#39;UTF-8&#39;); ?&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&amp;lt;?php echo $joke[&#39;id&#39;]; ?&amp;gt;&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;submit&quot; value=&quot;Delete&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
Интересный вариант - через &lt;b&gt;линк&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&amp;nbsp; &lt;br /&gt;
&amp;lt;a href=&quot;?deletejoke&amp;amp;amp;id=&lt;span style=&quot;color: red;&quot;&gt;&amp;lt;?php echo $joke[&#39;id&#39;]; ?&amp;gt;&lt;/span&gt;&quot;&amp;gt;Delete&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/div&gt;&lt;br /&gt;
Проблема с линком в том, что при &lt;b&gt;обновлении страницы&lt;/b&gt; будут повторяться действия, т.е. можно &lt;b&gt;удалить все записи&lt;/b&gt; из таблицы.</description><link>http://prostophp.blogspot.com/2010/09/publishing-mysql-data-on-web.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2384230768248733415.post-2037820755506824641</guid><pubDate>Mon, 20 Sep 2010 18:00:00 +0000</pubDate><atom:updated>2010-11-01T06:10:54.662-07:00</atom:updated><title>Основы языка</title><description>PHP - &lt;i&gt;&lt;b&gt;серверно-ориентированный&lt;/b&gt;&lt;/i&gt; язык. Код выполняется на стороне &lt;b style=&quot;color: red;&quot;&gt;сервера.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Простой пример:&lt;br /&gt;
&lt;div style=&quot;background-color: #fce5cd;&quot;&gt;&lt;br /&gt;
&amp;lt;?php&lt;/div&gt;&lt;div style=&quot;background-color: #fce5cd;&quot;&gt;&amp;nbsp; echo &quot;Simple text&quot;;&lt;/div&gt;&lt;div style=&quot;background-color: #fce5cd;&quot;&gt;?&amp;gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Переменные:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fce5cd;&quot;&gt;&lt;br /&gt;
$var1 = 1;&lt;/div&gt;&lt;div style=&quot;background-color: #fce5cd;&quot;&gt;$testvariable = &#39;Three&#39;;&lt;/div&gt;&lt;div style=&quot;background-color: #fce5cd;&quot;&gt;$testvariable = &#39;Hi &#39; . &#39;there!&#39;; // конкатенация&lt;/div&gt;&lt;div style=&quot;background-color: #fce5cd;&quot;&gt;$var1 = &#39;PHP&#39;; // Assigns a value of &#39;PHP&#39; to $var1&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Интерполяция&lt;/b&gt;. В &lt;span style=&quot;color: red;&quot;&gt;одинарных кавычках&lt;/span&gt; значение переменной &lt;span style=&quot;color: red;&quot;&gt;НЕ подставляется&lt;/span&gt;.&lt;br /&gt;
&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;echo &quot;$var1 rules!&quot;; // выводит &#39;PHP rules!&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;echo &#39;$var1 rules!&#39;; // выводит &#39;$var1 rules!&#39;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Массив&lt;/b&gt;:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
$myarray = array(&#39;one&#39;, 2, &#39;3&#39;);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;echo $myarray[0]; // Outputs &#39;one&#39;&lt;br /&gt;
echo $myarray[1]; // Outputs &#39;2&#39;&lt;br /&gt;
echo $myarray[2]; // Outputs &#39;3&#39;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Добавление&lt;/b&gt; элемента:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
$myarray[] = &#39;the fifth element&#39;;&lt;br /&gt;
echo $myarray[4]; // Outputs &#39;the fifth element&#39;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Ассоциативный&lt;/b&gt; массив:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;$birthdays[&#39;Kevin&#39;] = &#39;1978-04-12&#39;;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;$birthdays[&#39;Stephanie&#39;] = &#39;1980-05-16&#39;;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;$birthdays[&#39;David&#39;] = &#39;1983-09-09&#39;;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Или через функцию:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
$birthdays = array(&#39;Kevin&#39; =&amp;gt; &#39;1978-04-12&#39;, &#39;Stephanie&#39; =&amp;gt; &#39;1980-05-16&#39;, &#39;David&#39; =&amp;gt; &#39;1983-09-09&#39;);&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;echo &#39;My birthday is: &#39; . $birthdays[&#39;Kevin&#39;];&lt;/div&gt;&lt;br /&gt;
PHP используется для генерации &lt;b&gt;динамического контента&lt;/b&gt; html-страниц.&lt;br /&gt;
Код PHP активируется , когда &lt;i style=&quot;color: #0b5394;&quot;&gt;запрос посылается к серверу&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
Ключом в создании интерактивности на PHP является понимание того,&lt;i&gt; &lt;span style=&quot;color: #073763;&quot;&gt;как можно вместе с запросом к серверу на генерацию новой страницы отправить информацию о том, что сделал юзер на странице&lt;/span&gt;.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Самый простой способ &lt;b&gt;передачи параметров серверу&lt;/b&gt; - это в &lt;i&gt;&lt;span style=&quot;color: #073763;&quot;&gt;строке URL&lt;/span&gt;&lt;/i&gt;:&lt;br /&gt;
В тексте html- странички пишем:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;a href=&quot;welcome1.php?name=Max&amp;amp;amp;lastname=Petrovich&quot;&amp;gt;Hi, I&amp;amp;rsquo;m Max!&amp;lt;/a&amp;gt;&lt;/div&gt;&lt;br /&gt;
Вот что в файле на сервере &lt;span style=&quot;color: #3d85c6;&quot;&gt;welcome1.php&lt;/span&gt;: &lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&amp;lt;?php&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;$name = $_GET[&#39;name&#39;];&lt;br /&gt;
$lastname = $_GET[&#39;lastname&#39;]; &lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;echo &#39;Welcome to our web site, &#39; . $name . $lastname &#39;!&#39;;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;?&amp;gt;&lt;/div&gt;&lt;br /&gt;
Ответ сервера &lt;b&gt;замещает весь контент&lt;/b&gt; страницы. Т.е., сервер возвращает&lt;b&gt; новую&lt;/b&gt; страницу.&lt;br /&gt;
PHP автоматически создаёт массив &lt;b&gt;$_GET[]&lt;/b&gt;, &lt;i style=&quot;background-color: white; color: #0b5394;&quot;&gt;при получении запроса от браузера&lt;/i&gt;.&lt;br /&gt;
Однако, здесь налицо &lt;b&gt;дыра в безопасности&lt;/b&gt;!&amp;nbsp; В т&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;ексте параметра можно передать &lt;b&gt;коды html &lt;/b&gt;и сервер обработает их. Например:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
welcome1.php?name=&amp;lt;a href=&#39;http://localhost&#39;&amp;gt;Newlink&amp;lt;/a&amp;gt;&lt;/div&gt;Всё, что угодно...&lt;br /&gt;
&lt;b&gt;Дыра закрывается&lt;/b&gt; функцией &lt;b style=&quot;color: #0b5394;&quot;&gt;htmlspecialchars($name, ENT_QUOTES, &#39;UTF-8&#39;)&lt;/b&gt;&lt;br /&gt;
Html-теги &lt;b&gt;преобразуются в специальные символы&lt;/b&gt;. (&amp;amp;lt; &amp;amp;gt; ....)&lt;br /&gt;
&lt;br /&gt;
Другой способ передачи параметров php - скрипту - с помощью метода POST через форму:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&amp;lt;form action=&quot;welcome5.php&quot; method=&quot;post&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&amp;lt;label for=&quot;firstname&quot;&amp;gt;First name:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;text&quot; name=&quot;firstname&quot; id=&quot;firstname&quot;/&amp;gt;&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&amp;lt;label for=&quot;lastname&quot;&amp;gt;Last name:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type=&quot;text&quot; name=&quot;lastname&quot; id=&quot;lastname&quot;/&amp;gt;&amp;lt;/label&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&amp;lt;input type=&quot;submit&quot; value=&quot;GO&quot;/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Скрипт сервера:&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$firstname = $_POST[&#39;firstname&#39;];&lt;br /&gt;
$lastname = $_POST[&#39;lastname&#39;];&lt;br /&gt;
echo &#39;Welcome to our web site, &#39; .&lt;br /&gt;
htmlspecialchars($firstname, ENT_QUOTES, &#39;UTF-8&#39;) . &#39; &#39; .&lt;br /&gt;
htmlspecialchars($lastname, ENT_QUOTES, &#39;UTF-8&#39;) . &#39;!&#39;;&lt;br /&gt;
?&amp;gt;&lt;/div&gt;&lt;br /&gt;
Вместо массивов $_GET[] или&amp;nbsp; $_POST[] можно использовать $_&lt;b&gt;REQUEST&lt;/b&gt;[]. Тогда на сервере можно не задумываться, каким методом передаются параметры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Управляющие структуры.&lt;/u&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;if(condition){...}else{...}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;while (condition) {...}&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;for (declare counter; condition; increment counter) {...}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fff2cc;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;u&gt;Один&amp;nbsp; контроллер - несколько шаблонов.&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;u&gt; &lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
Примерная схема построения :&lt;br /&gt;
&lt;b&gt;контроллер&lt;/b&gt; - в модуле &lt;span style=&quot;color: #0b5394;&quot;&gt;index.php&lt;/span&gt;&lt;br /&gt;
В контроллере выполняется &lt;b&gt;обработка условий&lt;/b&gt;, при которых генерится разный контент, возвращаемый браузеру.&lt;br /&gt;
&lt;br /&gt;
С помощью&lt;span style=&quot;color: #0b5394;&quot;&gt; include&lt;/span&gt; подключаются разные фрагменты &lt;b&gt;php&lt;/b&gt;-кода.</description><link>http://prostophp.blogspot.com/2009/05/blog-post.html</link><author>noreply@blogger.com (Sergey)</author><thr:total>0</thr:total></item></channel></rss>