<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Программирование это просто</title>
		<link>http://my-programm.ucoz.net/</link>
		<description></description>
		<lastBuildDate>Mon, 09 Jan 2012 15:51:36 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://my-programm.ucoz.net/news/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Гостевая книга на PHP. Часть 2</title>
			<description>И теперь сформируем внешний вид гостевой книги: &lt;br /&gt; &lt;b&gt;css/main.css&lt;/b&gt; &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; *{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin:0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding:0; &lt;br /&gt; } &lt;br /&gt; body { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color:#fff; &lt;br /&gt;&amp;nbsp;&amp;nbsp;color:#fff; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font:14px/1.3 Arial,sans-serif; &lt;br /&gt; } &lt;br /&gt; footer { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color:#212121; &lt;br /&gt;&amp;nbsp;&amp;nbsp;bottom:0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;box-shadow: 0 -1px 2px #111111; &lt;br /&gt;&amp;nbsp;&amp;nbsp;display:block; &lt;br /&gt;&amp;nbsp;&amp;nbsp;height:70px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;left:0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;position:fixed; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width:100%; &lt;br /&gt;&amp;nbsp;&amp;nbsp;z-index:100; &lt;br /&gt; } &lt;br /&gt; footer h2{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size:22px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-weight:normal; &lt;br /&gt;&amp;nbsp;&amp;nbsp;left:50%; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin-left:-400px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding:22px 0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;position:absolute; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width:540px; &lt;br /&gt; } &lt;br /&gt; footer a.stuts,a.stuts:visited{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;border:none; &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-decoration:none; &lt;br /&gt;&amp;nbsp;&amp;nbsp;color:#fcfcfc; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size:14px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;left:50%; &lt;br /&gt;&amp;nbsp;&amp;nbsp;line-height:31px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin:23px 0 0 110px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;position:absolute; &lt;br /&gt;&amp;nbsp;&amp;nbsp;top:0; &lt;br /&gt; } &lt;br /&gt; footer .stuts span { &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size:22px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-weight:bold; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin-left:5px; &lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; .container { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background: transparent url(../images/book_open.jpg&amp;#41; no-repeat top center ; &lt;br /&gt;&amp;nbsp;&amp;nbsp;color: #000000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;height: 600px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin: 20px auto; &lt;br /&gt;&amp;nbsp;&amp;nbsp;overflow: hidden; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding: 35px 100px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;position: relative; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width: 600px; &lt;br /&gt; } &lt;br /&gt; #col1, #col2 { &lt;br /&gt;&amp;nbsp;&amp;nbsp;float: left; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin: 0 10px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;overflow: hidden; &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-align: center; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width: 280px; &lt;br /&gt; } &lt;br /&gt; #col1 { &lt;br /&gt;&amp;nbsp;&amp;nbsp;-webkit-transform: rotate(3deg&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;-moz-transform: rotate(3deg&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;-ms-transform: rotate(3deg&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;-o-transform: rotate(3deg&amp;#41;; &lt;br /&gt; } &lt;br /&gt; #records form { &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin:10px 0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding:10px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-align:left; &lt;br /&gt; } &lt;br /&gt; #records table td.label { &lt;br /&gt;&amp;nbsp;&amp;nbsp;color: #000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size: 13px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding-right: 3px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-align: right; &lt;br /&gt; } &lt;br /&gt; #records table label { &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size: 12px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;vertical-align: middle; &lt;br /&gt; } &lt;br /&gt; #records table td.field input, #records table td.field textarea { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color: rgba(255, 255, 255, 0.4&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;border: 0px solid #96A6C5; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-family: Verdana,Arial,sans-serif; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size: 13px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin-top: 2px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding: 6px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width: 190px; &lt;br /&gt; } &lt;br /&gt; #records table td.field input&amp;#91;type=submit] { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color: rgba(200, 200, 200, 0.4&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;cursor: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;float:right; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width: 100px; &lt;br /&gt; } &lt;br /&gt; #records table td.field input&amp;#91;type=submit]:hover { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color: rgba(200, 200, 200, 0.8&amp;#41;; &lt;br /&gt; } &lt;br /&gt; #records_list { &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-align:left; &lt;br /&gt; } &lt;br /&gt; #records_list .record { &lt;br /&gt;&amp;nbsp;&amp;nbsp;border-top: 1px solid #000000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size: 13px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding: 10px; &lt;br /&gt; } &lt;br /&gt; #records_list .record:first-child { &lt;br /&gt;&amp;nbsp;&amp;nbsp;border-top-width:0px; &lt;br /&gt; } &lt;br /&gt; #records_list .record p:first-child { &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-weight:bold; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size:11px; &lt;br /&gt; } &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</description>
			<content:encoded>И теперь сформируем внешний вид гостевой книги: &lt;br /&gt; &lt;b&gt;css/main.css&lt;/b&gt; &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; *{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin:0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding:0; &lt;br /&gt; } &lt;br /&gt; body { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color:#fff; &lt;br /&gt;&amp;nbsp;&amp;nbsp;color:#fff; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font:14px/1.3 Arial,sans-serif; &lt;br /&gt; } &lt;br /&gt; footer { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color:#212121; &lt;br /&gt;&amp;nbsp;&amp;nbsp;bottom:0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;box-shadow: 0 -1px 2px #111111; &lt;br /&gt;&amp;nbsp;&amp;nbsp;display:block; &lt;br /&gt;&amp;nbsp;&amp;nbsp;height:70px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;left:0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;position:fixed; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width:100%; &lt;br /&gt;&amp;nbsp;&amp;nbsp;z-index:100; &lt;br /&gt; } &lt;br /&gt; footer h2{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size:22px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-weight:normal; &lt;br /&gt;&amp;nbsp;&amp;nbsp;left:50%; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin-left:-400px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding:22px 0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;position:absolute; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width:540px; &lt;br /&gt; } &lt;br /&gt; footer a.stuts,a.stuts:visited{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;border:none; &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-decoration:none; &lt;br /&gt;&amp;nbsp;&amp;nbsp;color:#fcfcfc; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size:14px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;left:50%; &lt;br /&gt;&amp;nbsp;&amp;nbsp;line-height:31px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin:23px 0 0 110px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;position:absolute; &lt;br /&gt;&amp;nbsp;&amp;nbsp;top:0; &lt;br /&gt; } &lt;br /&gt; footer .stuts span { &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size:22px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-weight:bold; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin-left:5px; &lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; .container { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background: transparent url(../images/book_open.jpg&amp;#41; no-repeat top center ; &lt;br /&gt;&amp;nbsp;&amp;nbsp;color: #000000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;height: 600px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin: 20px auto; &lt;br /&gt;&amp;nbsp;&amp;nbsp;overflow: hidden; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding: 35px 100px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;position: relative; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width: 600px; &lt;br /&gt; } &lt;br /&gt; #col1, #col2 { &lt;br /&gt;&amp;nbsp;&amp;nbsp;float: left; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin: 0 10px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;overflow: hidden; &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-align: center; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width: 280px; &lt;br /&gt; } &lt;br /&gt; #col1 { &lt;br /&gt;&amp;nbsp;&amp;nbsp;-webkit-transform: rotate(3deg&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;-moz-transform: rotate(3deg&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;-ms-transform: rotate(3deg&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;-o-transform: rotate(3deg&amp;#41;; &lt;br /&gt; } &lt;br /&gt; #records form { &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin:10px 0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding:10px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-align:left; &lt;br /&gt; } &lt;br /&gt; #records table td.label { &lt;br /&gt;&amp;nbsp;&amp;nbsp;color: #000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size: 13px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding-right: 3px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-align: right; &lt;br /&gt; } &lt;br /&gt; #records table label { &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size: 12px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;vertical-align: middle; &lt;br /&gt; } &lt;br /&gt; #records table td.field input, #records table td.field textarea { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color: rgba(255, 255, 255, 0.4&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;border: 0px solid #96A6C5; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-family: Verdana,Arial,sans-serif; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size: 13px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;margin-top: 2px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding: 6px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width: 190px; &lt;br /&gt; } &lt;br /&gt; #records table td.field input&amp;#91;type=submit] { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color: rgba(200, 200, 200, 0.4&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;cursor: pointer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;float:right; &lt;br /&gt;&amp;nbsp;&amp;nbsp;width: 100px; &lt;br /&gt; } &lt;br /&gt; #records table td.field input&amp;#91;type=submit]:hover { &lt;br /&gt;&amp;nbsp;&amp;nbsp;background-color: rgba(200, 200, 200, 0.8&amp;#41;; &lt;br /&gt; } &lt;br /&gt; #records_list { &lt;br /&gt;&amp;nbsp;&amp;nbsp;text-align:left; &lt;br /&gt; } &lt;br /&gt; #records_list .record { &lt;br /&gt;&amp;nbsp;&amp;nbsp;border-top: 1px solid #000000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size: 13px; &lt;br /&gt;&amp;nbsp;&amp;nbsp;padding: 10px; &lt;br /&gt; } &lt;br /&gt; #records_list .record:first-child { &lt;br /&gt;&amp;nbsp;&amp;nbsp;border-top-width:0px; &lt;br /&gt; } &lt;br /&gt; #records_list .record p:first-child { &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-weight:bold; &lt;br /&gt;&amp;nbsp;&amp;nbsp;font-size:11px; &lt;br /&gt; } &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
			<link>https://my-programm.ucoz.net/news/gostevaja_kniga_na_php_chast_2/2012-01-09-22</link>
			<category>PHP</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/gostevaja_kniga_na_php_chast_2/2012-01-09-22</guid>
			<pubDate>Mon, 09 Jan 2012 15:51:36 GMT</pubDate>
		</item>
		<item>
			<title>Гостевая книга на PHP. Часть 1</title>
			<description>&lt;div align=&quot;center&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size:13pt;&quot;&gt;Шаг 1. SQL&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;Для работы нашего приложения требуется создать таблицу: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; CREATE TABLE IF NOT EXISTS `s178_guestbook` ( &lt;br&gt;&amp;nbsp;&amp;nbsp;`id` int(10) unsigned NOT NULL auto_increment, &lt;br&gt;&amp;nbsp;&amp;nbsp;`name` varchar(255) default &apos;&apos;, &lt;br&gt;&amp;nbsp;&amp;nbsp;`email` varchar(255) default &apos;&apos;, &lt;br&gt;&amp;nbsp;&amp;nbsp;`description` varchar(255) default &apos;&apos;, &lt;br&gt;&amp;nbsp;&amp;nbsp;`when` int(11) NOT NULL default &apos;0&apos;, &lt;br&gt;&amp;nbsp;&amp;nbsp;`ip` varchar(20) default NULL, &lt;br&gt;&amp;nbsp;&amp;nbsp;PRIMARY KEY (`id`) &lt;br&gt; ) ENGINE=MyISAM DEFAULT CHARSET=utf8; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; &lt;b&gt;&lt;span style=&quot;font-size:13pt;&quot;&gt;Шаг 2. PHP&lt;/span&gt;&lt;/b&gt; &lt;br&gt;&lt;br&gt; Основной файл будет содержать следующий код: &lt;br&gt; &lt;b&gt;guestbook.php&lt;/b&gt;&amp;nbsp;...</description>
			<content:encoded>&lt;div align=&quot;center&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size:13pt;&quot;&gt;Шаг 1. SQL&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;Для работы нашего приложения требуется создать таблицу: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; CREATE TABLE IF NOT EXISTS `s178_guestbook` ( &lt;br&gt;&amp;nbsp;&amp;nbsp;`id` int(10) unsigned NOT NULL auto_increment, &lt;br&gt;&amp;nbsp;&amp;nbsp;`name` varchar(255) default &apos;&apos;, &lt;br&gt;&amp;nbsp;&amp;nbsp;`email` varchar(255) default &apos;&apos;, &lt;br&gt;&amp;nbsp;&amp;nbsp;`description` varchar(255) default &apos;&apos;, &lt;br&gt;&amp;nbsp;&amp;nbsp;`when` int(11) NOT NULL default &apos;0&apos;, &lt;br&gt;&amp;nbsp;&amp;nbsp;`ip` varchar(20) default NULL, &lt;br&gt;&amp;nbsp;&amp;nbsp;PRIMARY KEY (`id`) &lt;br&gt; ) ENGINE=MyISAM DEFAULT CHARSET=utf8; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; &lt;b&gt;&lt;span style=&quot;font-size:13pt;&quot;&gt;Шаг 2. PHP&lt;/span&gt;&lt;/b&gt; &lt;br&gt;&lt;br&gt; Основной файл будет содержать следующий код: &lt;br&gt; &lt;b&gt;guestbook.php&lt;/b&gt;&amp;nbsp;$CUT$&lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; &lt;?php &lt;br&gt; // Отключаем возможные предупреждения &lt;br&gt; if (version_compare(phpversion(), &quot;5.3.0&quot;, &quot;&gt;=&quot;) == 1) &lt;br&gt;&amp;nbsp;&amp;nbsp;error_reporting(E_ALL &amp; ~E_NOTICE &amp; ~E_DEPRECATED); &lt;br&gt; else &lt;br&gt;&amp;nbsp;&amp;nbsp;error_reporting(E_ALL &amp; ~E_NOTICE);&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt; require_once(&apos;classes/CMySQL.php&apos;); // including service class to work with database &lt;br&gt;&lt;br&gt; // Получаем IP посетителя &lt;br&gt; function getVisitorIP() { &lt;br&gt;&amp;nbsp;&amp;nbsp;$ip = &quot;0.0.0.0&quot;; &lt;br&gt;&amp;nbsp;&amp;nbsp;if( ( isset( $_SERVER[&apos;HTTP_X_FORWARDED_FOR&apos;] ) ) &amp;&amp; ( !empty( $_SERVER[&apos;HTTP_X_FORWARDED_FOR&apos;] ) ) ) { &lt;br&gt;&amp;nbsp;&amp;nbsp;$ip = $_SERVER[&apos;HTTP_X_FORWARDED_FOR&apos;]; &lt;br&gt;&amp;nbsp;&amp;nbsp;} elseif( ( isset( $_SERVER[&apos;HTTP_CLIENT_IP&apos;])) &amp;&amp; (!empty($_SERVER[&apos;HTTP_CLIENT_IP&apos;] ) ) ) { &lt;br&gt;&amp;nbsp;&amp;nbsp;$ip = explode(&quot;.&quot;,$_SERVER[&apos;HTTP_CLIENT_IP&apos;]); &lt;br&gt;&amp;nbsp;&amp;nbsp;$ip = $ip[3].&quot;.&quot;.$ip[2].&quot;.&quot;.$ip[1].&quot;.&quot;.$ip[0]; &lt;br&gt;&amp;nbsp;&amp;nbsp;} elseif((!isset( $_SERVER[&apos;HTTP_X_FORWARDED_FOR&apos;])) || (empty($_SERVER[&apos;HTTP_X_FORWARDED_FOR&apos;]))) { &lt;br&gt;&amp;nbsp;&amp;nbsp;if ((!isset( $_SERVER[&apos;HTTP_CLIENT_IP&apos;])) &amp;&amp; (empty($_SERVER[&apos;HTTP_CLIENT_IP&apos;]))) { &lt;br&gt;&amp;nbsp;&amp;nbsp;$ip = $_SERVER[&apos;REMOTE_ADDR&apos;]; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;return $ip; &lt;br&gt; } &lt;br&gt;&lt;br&gt; // Получаем последние записи в гостевой книге &lt;br&gt; function getLastRecords($iLimit = 3) { &lt;br&gt;&amp;nbsp;&amp;nbsp;$sRecords = &apos;&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;$aRecords = $GLOBALS[&apos;MySQL&apos;]-&gt;getAll(&quot;SELECT * FROM `s178_guestbook` ORDER BY `id` DESC LIMIT {$iLimit}&quot;); &lt;br&gt;&amp;nbsp;&amp;nbsp;foreach ($aRecords as $i =&gt; $aInfo) { &lt;br&gt;&amp;nbsp;&amp;nbsp;$sWhen = date(&apos;F j, Y H:i&apos;, $aInfo[&apos;when&apos;]); &lt;br&gt;&amp;nbsp;&amp;nbsp;$sRecords .= &lt;&lt;&lt;EOF &lt;br&gt; &lt;div class=&quot;record&quot; id=&quot;{$aInfo[&apos;id&apos;]}&quot;&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;p&gt;Автор {$aInfo[&apos;name&apos;]} &lt;span&gt;({$sWhen})&lt;/span&gt;:&lt;/p&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;p&gt;{$aInfo[&apos;description&apos;]}&lt;/p&gt; &lt;br&gt; &lt;/div&gt; &lt;br&gt; EOF; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;return $sRecords; &lt;br&gt; } &lt;br&gt;&lt;br&gt; if ($_POST) { // Принимаем новые записи &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;$sIp = getVisitorIP(); &lt;br&gt;&amp;nbsp;&amp;nbsp;$sName = $GLOBALS[&apos;MySQL&apos;]-&gt;escape(strip_tags($_POST[&apos;name&apos;])); &lt;br&gt;&amp;nbsp;&amp;nbsp;$sEmail = $GLOBALS[&apos;MySQL&apos;]-&gt;escape(strip_tags($_POST[&apos;name&apos;])); &lt;br&gt;&amp;nbsp;&amp;nbsp;$sDesc = $GLOBALS[&apos;MySQL&apos;]-&gt;escape(strip_tags($_POST[&apos;text&apos;])); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;if ($sName &amp;&amp; $sEmail &amp;&amp; $sDesc &amp;&amp; $sIp) { &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// Защита от спами &lt;br&gt;&amp;nbsp;&amp;nbsp;$iOldId = $GLOBALS[&apos;MySQL&apos;]-&gt;getOne(&quot;SELECT `id` FROM `s178_guestbook` WHERE `ip` = &apos;{$sIp}&apos; AND `when` &gt;= UNIX_TIMESTAMP() - 600 LIMIT 1&quot;); &lt;br&gt;&amp;nbsp;&amp;nbsp;if (! $iOldId) { &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// Можно добавлять комментарий &lt;br&gt;&amp;nbsp;&amp;nbsp;$GLOBALS[&apos;MySQL&apos;]-&gt;res(&quot;INSERT INTO `s178_guestbook` SET `name` = &apos;{$sName}&apos;, `email` = &apos;{$sEmail}&apos;, `description` = &apos;{$sDesc}&apos;, `when` = UNIX_TIMESTAMP(), `ip` = &apos;{$sIp}&apos;&quot;); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// Выводим последние 10 записей &lt;br&gt;&amp;nbsp;&amp;nbsp;$sOut = getLastRecords(); &lt;br&gt;&amp;nbsp;&amp;nbsp;echo $sOut; &lt;br&gt;&amp;nbsp;&amp;nbsp;exit; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;echo 1; &lt;br&gt;&amp;nbsp;&amp;nbsp;exit; &lt;br&gt; } &lt;br&gt;&lt;br&gt; // Выводим последние 10 записей &lt;br&gt; $sRecords = getLastRecords(); &lt;br&gt;&lt;br&gt; ob_start(); &lt;br&gt; ?&gt; &lt;br&gt; &lt;div class=&quot;container&quot; id=&quot;records&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;div id=&quot;col1&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;h2&amp;gt;Гостевая книга&lt;/h2&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;div id=&quot;records_list&quot;&amp;gt;&lt;?= $sRecords ?&gt;&lt;/div&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/div&amp;gt; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;div id=&quot;col2&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;h2&amp;gt;Добавьте ваш отзыв здесь&lt;/h2&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;script type=&quot;text/javascript&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;function submitComment(e) { &lt;br&gt;&amp;nbsp;&amp;nbsp;var name = $(&apos;#name&apos;).val(); &lt;br&gt;&amp;nbsp;&amp;nbsp;var email = $(&apos;#email&apos;).val(); &lt;br&gt;&amp;nbsp;&amp;nbsp;var text = $(&apos;#text&apos;).val(); &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;if (name &amp;amp;&amp;amp; email &amp;amp;&amp;amp; text) { &lt;br&gt;&amp;nbsp;&amp;nbsp;$.post(&apos;guestbook.php&apos;, { &apos;name&apos;: name, &apos;email&apos;: email, &apos;text&apos;: text },&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;function(data){&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;if (data != &apos;1&apos;) { &lt;br&gt;&amp;nbsp;&amp;nbsp;$(&apos;#records_list&apos;).fadeOut(1000, function () {&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;$(this).html(data); &lt;br&gt;&amp;nbsp;&amp;nbsp;$(this).fadeIn(1000);&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;} else { &lt;br&gt;&amp;nbsp;&amp;nbsp;$(&apos;#warning2&apos;).fadeIn(2000, function () {&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;$(this).fadeOut(2000);&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;); &lt;br&gt;&amp;nbsp;&amp;nbsp;} else { &lt;br&gt;&amp;nbsp;&amp;nbsp;$(&apos;#warning1&apos;).fadeIn(2000, function () {&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;$(this).fadeOut(2000);&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;}; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/script&amp;gt; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;form onsubmit=&quot;submitComment(this); return false;&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;table&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;tr&amp;gt;&lt;td class=&quot;label&quot;&amp;gt;&lt;label&amp;gt;Ваше имя: &lt;/label&amp;gt;&lt;/td&amp;gt;&lt;td class=&quot;field&quot;&amp;gt;&lt;input type=&quot;text&quot; value=&quot;&quot; title=&quot;Введите ваше имя&quot; id=&quot;name&quot; /&amp;gt;&lt;/td&amp;gt;&lt;/tr&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;tr&amp;gt;&lt;td class=&quot;label&quot;&amp;gt;&lt;label&amp;gt;Ваш email: &lt;/label&amp;gt;&lt;/td&amp;gt;&lt;td class=&quot;field&quot;&amp;gt;&lt;input type=&quot;text&quot; value=&quot;&quot; title=&quot;Введите ваш адрес email&quot; id=&quot;email&quot; /&amp;gt;&lt;/td&amp;gt;&lt;/tr&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;tr&amp;gt;&lt;td class=&quot;label&quot;&amp;gt;&lt;label&amp;gt;Отзыв: &lt;/label&amp;gt;&lt;/td&amp;gt;&lt;td class=&quot;field&quot;&amp;gt;&lt;textarea name=&quot;text&quot; id=&quot;text&quot; maxlength=&quot;255&quot;&amp;gt;&lt;/textarea&amp;gt;&lt;/td&amp;gt;&lt;/tr&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;tr&amp;gt;&lt;td class=&quot;label&quot;&amp;gt;&amp;nbsp;&lt;/td&amp;gt;&lt;td class=&quot;field&quot;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;div id=&quot;warning1&quot; style=&quot;display:none&quot;&amp;gt;Заполните все обязательные поля&lt;/div&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;div id=&quot;warning2&quot; style=&quot;display:none&quot;&amp;gt;Вы не можете размещать более одного отзыва в течении 10 минут (защита от спама)&lt;/div&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;input type=&quot;submit&quot; value=&quot;Отправить&quot; /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/td&amp;gt;&lt;/tr&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/table&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/form&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/div&amp;gt; &lt;br&gt; &lt;/div&amp;gt; &lt;br&gt; &lt;? &lt;br&gt; $sGuestbookBlock = ob_get_clean(); &lt;br&gt;&lt;br&gt; ?&gt; &lt;br&gt; &lt;!DOCTYPE html&amp;gt; &lt;br&gt; &lt;html lang=&quot;ru&quot; &amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;head&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;meta charset=&quot;utf-8&quot; /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;title&amp;gt;Гостевая книга на PHP | Материалы сайта RUSELLER.COM&lt;/title&amp;gt; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;link href=&quot;css/main.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;!--[if lt IE 9]&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;script src=&quot;http://html5shiv.googlecode.com/svn/trunk/html5.js&quot;&amp;gt;&lt;/script&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;![endif]--&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;script src=&quot;http://code.jquery.com/jquery-latest.min.js&quot;&amp;gt;&lt;/script&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/head&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;body&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;?= $sGuestbookBlock ?&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;footer&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;h2&amp;gt;Гостевая книга на PHP&lt;/h2&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://www.ruseller.com&quot; class=&quot;stuts&quot; target=&quot;_blank&quot;&amp;gt;Материалы сайта &lt;span&amp;gt;RUSELLER.COM&lt;/span&amp;gt;&lt;/a&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/footer&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/body&amp;gt; &lt;br&gt; &lt;/html&amp;gt; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; При открытии страницы вы увидите записную книжку. На левой стороне выводится последние три записи, а справа - форма для размещения нового отзыва. Когда отправляется форма, скрипт посылает данные POST (той же PHP странице), затем сохраняет полученные данные в базе и возвращает три последние записи. С использованием эффекта проявления записи выводятся на левой стороне книги. &lt;br&gt;&lt;br&gt; Также используется файл PHP &lt;br&gt;&lt;br&gt; &lt;b&gt;classes/CMySQL.php&lt;/b&gt; &lt;br&gt;&lt;br&gt; Данный файл содержит код класса для работы с базой данных. В нем требуется настроить три переменных для подключения к серверу. &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; $this-&amp;gt;sDbName = &apos;ИМЯ_БАЗЫ_ДАННЫХ&apos;; &lt;br&gt; $this-&amp;gt;sDbUser = &apos;ИМЯ ПОЛЬЗОВАТЕЛЯ&apos;; &lt;br&gt; $this-&amp;gt;sDbPass = &apos;ПАРОЛЬ&apos;;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
			<link>https://my-programm.ucoz.net/news/gostevaja_kniga_na_php_chast_1/2012-01-09-21</link>
			<category>PHP</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/gostevaja_kniga_na_php_chast_1/2012-01-09-21</guid>
			<pubDate>Mon, 09 Jan 2012 15:46:49 GMT</pubDate>
		</item>
		<item>
			<title>Отправка писем с помощью SMPT-Сервера</title>
			<description>вы можете воспользоваться нашим примером, в котором реализована отправка писем с использованием smtp-сервера, для которого требуется авторизация. Поэтому не забудьте добавить в скрипт соответствующие реквизиты доступа &lt;br /&gt;&lt;br /&gt; Например: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; function authSendEmail($from, $namefrom, $to, $nameto,&amp;nbsp;&amp;nbsp;&lt;br /&gt; $subject, $message&amp;#41;&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpServer = &quot;smtp.domain.tld&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $port = &quot;25&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $timeout = &quot;30&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $username = &quot;postmaster@domain.tld&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $password = &quot;YouPassword&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $localhost = &quot;localhost&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $newLine = &quot;&amp;#092;r&amp;#092;n&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Connect to the host on the specified port&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpConnect = fsockopen($smtpServer, $port, $errno,&amp;nbsp;&amp;nbsp;&lt;br /&gt; $errstr, $timeout&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; if(empty($smtpConnect&amp;#41;&amp;#41;&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; $output = &quot;Failed to connect: $smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; return $output;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt; else&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;connection&apos;] = &quot;Connected: $smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Request Auth Login&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect,&quot;AUTH LOGIN&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;authrequest&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Send username&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, base64_encode($username&amp;#41; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;authusername&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Send password&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, base64_encode($password&amp;#41; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;authpassword&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Say Hello to SMTP&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, &quot;HELO $localhost&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;heloresponse&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Email From&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, &quot;MAIL FROM: $from&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;mailfromresponse&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Email To&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, &quot;RCPT TO: $to&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;mailtoresponse&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //The Email&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, &quot;DATA&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;data1response&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Construct Headers&amp;nbsp;&amp;nbsp;&lt;br /&gt; $headers = &quot;MIME-Version: 1.0&quot; . $newLine;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $headers .= &quot;Content-type: text/html;&amp;nbsp;&amp;nbsp;&lt;br /&gt; charset=windows-1251&quot; . $newLine;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $headers .= &quot;To: $nameto &lt;$to&gt;&quot; . $newLine;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $headers .= &quot;From: $namefrom &lt;$from&gt;&quot; . $newLine;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; fputs($smtpConnect, &quot;To: $to&amp;#092;nFrom: $from&amp;#092;nSubject:&amp;nbsp;&amp;nbsp;&lt;br /&gt; $subject&amp;#092;n$headers&amp;#092;n&amp;#092;n$message&amp;#092;n.&amp;#092;n&quot;&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;data2response&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; // Say Bye to SMTP&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect,&quot;QUIT&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;quitresponse&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //new function&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; $to = &quot;postmaster@domain.tld&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $nameto = &quot;Demo User&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $from = &quot;postmaster@domain.tld&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $namefrom = &quot;Postmaster&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $subject = &quot;Hello World Again!&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $message = &quot;World, Hello!&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; authSendEmail($from, $namefrom, $to, $nameto,&amp;nbsp;&amp;nbsp;&lt;br /&gt; $subject, $message&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</description>
			<content:encoded>вы можете воспользоваться нашим примером, в котором реализована отправка писем с использованием smtp-сервера, для которого требуется авторизация. Поэтому не забудьте добавить в скрипт соответствующие реквизиты доступа &lt;br /&gt;&lt;br /&gt; Например: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; function authSendEmail($from, $namefrom, $to, $nameto,&amp;nbsp;&amp;nbsp;&lt;br /&gt; $subject, $message&amp;#41;&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpServer = &quot;smtp.domain.tld&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $port = &quot;25&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $timeout = &quot;30&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $username = &quot;postmaster@domain.tld&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $password = &quot;YouPassword&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $localhost = &quot;localhost&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $newLine = &quot;&amp;#092;r&amp;#092;n&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Connect to the host on the specified port&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpConnect = fsockopen($smtpServer, $port, $errno,&amp;nbsp;&amp;nbsp;&lt;br /&gt; $errstr, $timeout&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; if(empty($smtpConnect&amp;#41;&amp;#41;&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; $output = &quot;Failed to connect: $smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; return $output;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt; else&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;connection&apos;] = &quot;Connected: $smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Request Auth Login&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect,&quot;AUTH LOGIN&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;authrequest&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Send username&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, base64_encode($username&amp;#41; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;authusername&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Send password&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, base64_encode($password&amp;#41; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;authpassword&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Say Hello to SMTP&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, &quot;HELO $localhost&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;heloresponse&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Email From&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, &quot;MAIL FROM: $from&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;mailfromresponse&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Email To&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, &quot;RCPT TO: $to&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;mailtoresponse&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //The Email&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect, &quot;DATA&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;data1response&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //Construct Headers&amp;nbsp;&amp;nbsp;&lt;br /&gt; $headers = &quot;MIME-Version: 1.0&quot; . $newLine;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $headers .= &quot;Content-type: text/html;&amp;nbsp;&amp;nbsp;&lt;br /&gt; charset=windows-1251&quot; . $newLine;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $headers .= &quot;To: $nameto &lt;$to&gt;&quot; . $newLine;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $headers .= &quot;From: $namefrom &lt;$from&gt;&quot; . $newLine;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; fputs($smtpConnect, &quot;To: $to&amp;#092;nFrom: $from&amp;#092;nSubject:&amp;nbsp;&amp;nbsp;&lt;br /&gt; $subject&amp;#092;n$headers&amp;#092;n&amp;#092;n$message&amp;#092;n.&amp;#092;n&quot;&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;data2response&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; // Say Bye to SMTP&amp;nbsp;&amp;nbsp;&lt;br /&gt; fputs($smtpConnect,&quot;QUIT&quot; . $newLine&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $smtpResponse = fgets($smtpConnect, 515&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $logArray&amp;#91;&apos;quitresponse&apos;] = &quot;$smtpResponse&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; //new function&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; $to = &quot;postmaster@domain.tld&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $nameto = &quot;Demo User&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $from = &quot;postmaster@domain.tld&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $namefrom = &quot;Postmaster&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $subject = &quot;Hello World Again!&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; $message = &quot;World, Hello!&quot;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; authSendEmail($from, $namefrom, $to, $nameto,&amp;nbsp;&amp;nbsp;&lt;br /&gt; $subject, $message&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
			<link>https://my-programm.ucoz.net/news/otpravka_pisem_s_pomoshhju_smpt_servera/2012-01-09-20</link>
			<category>PHP</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/otpravka_pisem_s_pomoshhju_smpt_servera/2012-01-09-20</guid>
			<pubDate>Mon, 09 Jan 2012 12:37:02 GMT</pubDate>
		</item>
		<item>
			<title>Создание архива на PHP</title>
			<description>&lt;b&gt;Добрый день &lt;/b&gt;&lt;br&gt;&lt;b&gt; Задача&lt;/b&gt;: создать архив в PHP и упаковать в него файл. &lt;br&gt; Когда мне нужно было написать скрипт- архиватор, первым делом я открыл мануал по классу &lt;b&gt;Pclzip&lt;/b&gt;, но он &lt;b&gt;очень тяжел для сервера&lt;/b&gt;, при большой посещаемости, и этот вариант отпал. &lt;br&gt; Потом достаточно долго кавырял мануалы, статьи, пока не увидел один очень хороший класс для работы с архивами. &lt;br&gt; Итак, ближе к делу. &lt;br&gt; Качаем класс: &lt;a class=&quot;link&quot; href=&quot;http://maxmessage.ru/r/1038&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;CreateZipFile.txt&lt;/b&gt;&lt;/a&gt; &lt;br&gt; Как же его применять? &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px; max-width:575px; overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); border-image: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(249, 249, 249); padding-top: 10px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; margin-top: 0px; margin-bottom: 0px; overflow-x: visible; overflow-y: visible; width: auto; clear: none; font-size: 12px; line-height: 1.333; color: rgb(17, 0, 0); &quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold; &quot;&gt;&lt;?php&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(0, 153, 51); font-style: italic; &quot;&gt;/** &lt;br /&gt; * @date 15.7 &lt;br /&gt; * @author iceman12 &lt;br /&gt; * @copyright 2010 &lt;br /&gt; */&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$file&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;my_file.doc&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// наш файл. Если использовать при Upload-e,то применять можно переменную $_FILES[&apos;file&apos;][&apos;tmp_name&apos;] ...</description>
			<content:encoded>&lt;b&gt;Добрый день &lt;/b&gt;&lt;br&gt;&lt;b&gt; Задача&lt;/b&gt;: создать архив в PHP и упаковать в него файл. &lt;br&gt; Когда мне нужно было написать скрипт- архиватор, первым делом я открыл мануал по классу &lt;b&gt;Pclzip&lt;/b&gt;, но он &lt;b&gt;очень тяжел для сервера&lt;/b&gt;, при большой посещаемости, и этот вариант отпал. &lt;br&gt; Потом достаточно долго кавырял мануалы, статьи, пока не увидел один очень хороший класс для работы с архивами. &lt;br&gt; Итак, ближе к делу. &lt;br&gt; Качаем класс: &lt;a class=&quot;link&quot; href=&quot;http://maxmessage.ru/r/1038&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;CreateZipFile.txt&lt;/b&gt;&lt;/a&gt; &lt;br&gt; Как же его применять? &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px; max-width:575px; overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); border-image: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(249, 249, 249); padding-top: 10px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; margin-top: 0px; margin-bottom: 0px; overflow-x: visible; overflow-y: visible; width: auto; clear: none; font-size: 12px; line-height: 1.333; color: rgb(17, 0, 0); &quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold; &quot;&gt;&lt;?php&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(0, 153, 51); font-style: italic; &quot;&gt;/** &lt;br /&gt; * @date 15.7 &lt;br /&gt; * @author iceman12 &lt;br /&gt; * @copyright 2010 &lt;br /&gt; */&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$file&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;my_file.doc&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// наш файл. Если использовать при Upload-e,то применять можно переменную $_FILES[&apos;file&apos;][&apos;tmp_name&apos;] $CUT$&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$archive&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold; &quot;&gt;new&lt;/span&gt; CreateZipFile&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// Создаем экземпляр класса. &lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$archive&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0); &quot;&gt;addFile&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;file_get_contents&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$file&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;new_name_file.doc&apos;&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// читаем содержимое файла и указываем как файл будет называться в архиве&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$fd&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;fopen&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;files/archive.zip&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;wb&apos;&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// открываем файл в бинарном режиме. &lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$out&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;fwrite&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$fd&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$archive&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 64, 0); &quot;&gt;getZippedfile&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// записываем файл. Метод getZippedfile() возвращает данные архива &lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;fclose&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$fd&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// закрываем. &lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(177, 177, 0); &quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$out&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(177, 177, 0); &quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;Файл успешно записан&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold; &quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; Конечно это только часть возможности этого класса, но с задачей мы справились.</content:encoded>
			<link>https://my-programm.ucoz.net/news/sozdanie_arkhiva_na_php/2011-12-29-19</link>
			<category>PHP</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/sozdanie_arkhiva_na_php/2011-12-29-19</guid>
			<pubDate>Thu, 29 Dec 2011 19:18:48 GMT</pubDate>
		</item>
		<item>
			<title>Добавляем водяной знак на PHP</title>
			<description>Давай те напишем код, который будет накладывать одну картинку на другую. В данном случае водяной знак(копирайт). &lt;br&gt;&lt;br&gt; Сам код: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px; max-width:575px; overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); border-image: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(249, 249, 249); padding-top: 10px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; margin-top: 0px; margin-bottom: 0px; overflow-x: visible; overflow-y: visible; width: auto; clear: none; font-size: 12px; line-height: 1.333; color: rgb(17, 0, 0); &quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;ini_set&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;display_errors&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;1&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;error_reporting&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); font-weight: bold; &quot;&gt;E_ALL&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &amp;nbsp; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image_img&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;image.jpg&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// картинка на которую ставим копирайт&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_img&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;copy.gif&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// сам копирайт &lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$opacity&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(204, 102, 204); &quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// прозрачность&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$padding&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(204, 102, 204); &quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// отступ от краев изображения ...</description>
			<content:encoded>Давай те напишем код, который будет накладывать одну картинку на другую. В данном случае водяной знак(копирайт). &lt;br&gt;&lt;br&gt; Сам код: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px; max-width:575px; overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); border-image: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(249, 249, 249); padding-top: 10px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; margin-top: 0px; margin-bottom: 0px; overflow-x: visible; overflow-y: visible; width: auto; clear: none; font-size: 12px; line-height: 1.333; color: rgb(17, 0, 0); &quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;ini_set&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;display_errors&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;1&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;error_reporting&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); font-weight: bold; &quot;&gt;E_ALL&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &amp;nbsp; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image_img&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;image.jpg&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// картинка на которую ставим копирайт&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_img&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;copy.gif&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// сам копирайт &lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$opacity&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(204, 102, 204); &quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// прозрачность&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$padding&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(204, 102, 204); &quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// отступ от краев изображения $CUT$&lt;/span&gt; &lt;br&gt; &amp;nbsp; &lt;br&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// получаем &quot;сорсы&quot; изображений&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;imagecreatefromjpeg&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image_img&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;imagecreatefromgif&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_img&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &amp;nbsp; &lt;br&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;//получаем размеры изображений&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;list&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image_width&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image_height&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;getimagesize&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image_img&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;list&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_width&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_height&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;getimagesize&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_img&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &amp;nbsp; &lt;br&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;// определяем окончательные координаты &lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$final_x&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image_width&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_width&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$padding&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$final_y&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image_height&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_height&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$padding&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &amp;nbsp; &lt;br&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;//Скопируем наш водный знак на оригинальное изображение&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;imagecopymerge&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$final_x&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$final_y&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(204, 102, 204); &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(204, 102, 204); &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_width&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark_height&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$opacity&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &amp;nbsp; &lt;br&gt; &lt;span style=&quot;color: rgb(102, 102, 102); font-style: italic; &quot;&gt;//Настраиваем элемент header, выводим изображение, очищаем память&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;header&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;&apos;Content-type: image/jpeg&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;imagejpeg&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 153, 0); font-weight: bold; &quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(204, 102, 204); &quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;imagedestroy&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$image&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt; &lt;br&gt; &lt;span style=&quot;color: rgb(153, 0, 0); &quot;&gt;imagedestroy&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 136); &quot;&gt;$copymark&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 153, 0); &quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 153, 51); &quot;&gt;;&lt;/span&gt;&lt;/pre&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; Вот так. Теперь вам нужно настроить свои параметры в строках 4-7. Можно посмотреть пример, где копирайт устанавливается &apos;на лету&apos;. &lt;br&gt;&lt;br&gt; Все вполне просто и код хорошо прокомментировал &lt;br&gt;&lt;br&gt; Спасибо за внимание, с вами был iceman12 .</content:encoded>
			<link>https://my-programm.ucoz.net/news/dobavljaem_vodjanoj_znak_na_php/2011-12-29-18</link>
			<category>PHP</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/dobavljaem_vodjanoj_znak_na_php/2011-12-29-18</guid>
			<pubDate>Thu, 29 Dec 2011 19:09:40 GMT</pubDate>
		</item>
		<item>
			<title>Создание Mail.ru агента на Delphi</title>
			<description>&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.delphisources.ru/pages/articles/2011-year/art-20-02-2011/mail-ru-agent.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;&gt;&lt;/div&gt; &lt;br&gt;&lt;br&gt; В последнее время вижу многие хотя написать свой Mail агент на Delphi 7. Но не у всех это получается, потому что они что-то не понимают. &lt;br&gt;&lt;br&gt; Итак, приступим. Для начала нам нужно скомпилировать сам компонент MailClient. Качаем архив: &lt;a class=&quot;link&quot; href=&quot;http://www.delphisources.ru/pages/articles/2011-year/art-20-02-2011/mail-client-src.zip&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;mail-client-src.zip &lt;/a&gt;(27 Кб) (компонент работает только в Delphi 7). &lt;br&gt;&lt;br&gt; Затем в Delphi в меню Component / Install Component указываем путь к файлу client.pas, жмем ОК. ...</description>
			<content:encoded>&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.delphisources.ru/pages/articles/2011-year/art-20-02-2011/mail-ru-agent.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;&gt;&lt;/div&gt; &lt;br&gt;&lt;br&gt; В последнее время вижу многие хотя написать свой Mail агент на Delphi 7. Но не у всех это получается, потому что они что-то не понимают. &lt;br&gt;&lt;br&gt; Итак, приступим. Для начала нам нужно скомпилировать сам компонент MailClient. Качаем архив: &lt;a class=&quot;link&quot; href=&quot;http://www.delphisources.ru/pages/articles/2011-year/art-20-02-2011/mail-client-src.zip&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;mail-client-src.zip &lt;/a&gt;(27 Кб) (компонент работает только в Delphi 7). &lt;br&gt;&lt;br&gt; Затем в Delphi в меню Component / Install Component указываем путь к файлу client.pas, жмем ОК. $CUT$&lt;br&gt;&lt;br&gt; Компонент установится автоматически в закладку Sample под названием MailClient. Кидаем его на форму. &lt;br&gt;&lt;br&gt; Также кидаем TCPClient – он нам будет нужен чтобы узнавать адрес на который в последующем будет коннектиться клиент! &lt;br&gt;&lt;br&gt; Можно кинуть на форму пару Edit и Button, но мы будет делать все напрямую. &lt;br&gt;&lt;br&gt; Настраиваем пару свойств для TCPClient: &lt;br&gt; – в RemoteHost пишем mrim.mail.ru; &lt;br&gt; – в RemotePort пишем 443 или 2042. &lt;br&gt;&lt;br&gt; Настраиваем свойства для MailClient: &lt;br&gt; – в Mail пишем вам мыло в формате Маил@домен .ru например delphi7.borland@mail.ru; &lt;br&gt; – в PassWord пишем ваш пароль **********; &lt;br&gt; – в MRIMHost пишем mrim.mail.ru; &lt;br&gt; – в MRIMPort пишем 443 или 2042. &lt;br&gt;&lt;br&gt; Далее создаем процедуру Form1.Create и узнаём IP адрес на который должен обратиться наш компонент. &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt;&lt;b&gt; procedure &lt;/b&gt;TForm1.FormCreate(Sender: TObject); &lt;br&gt;&lt;b&gt; var &lt;/b&gt;&lt;br&gt; i: Integer; &lt;br&gt; MrimS: &lt;b&gt;string&lt;/b&gt;; &lt;br&gt;&lt;b&gt; begin &lt;/b&gt;&lt;br&gt; TCPClient.Active:=True; &lt;br&gt;&lt;b&gt; if &lt;/b&gt;TCPClient.Connected &lt;b&gt;then &lt;/b&gt;&lt;br&gt; MrimS:=TCPClient.Receiveln(#$A); {Получили адрес и порт} &lt;br&gt; TCPClient.Disconnect; &lt;br&gt;&lt;b&gt; if&lt;/b&gt; MrimS &lt;&amp;gt; &apos;&apos; &lt;b&gt;then &lt;/b&gt;&lt;br&gt;&lt;b&gt; for &lt;/b&gt;i:=1 to Length(MrimS) do &lt;br&gt;&lt;b&gt; if &lt;/b&gt;MrimS[i] = &apos;:&apos; &lt;b&gt;then &lt;/b&gt;&lt;br&gt;&lt;b&gt; begin &lt;/b&gt;&lt;br&gt; MailClient.Host:=Copy(MrimS, 0, i-1); &lt;br&gt; MailClient.Port:=StrToInt(Copy(MrimS, i+1, Length(MrimS)-i)); &lt;br&gt; form1.StatusBar1.Panels[0].Text:=&apos;Host &apos;+ Mailclient.host+&apos; Port &apos;+IntToStr(MailClient.Port); &lt;br&gt;&lt;b&gt; break&lt;/b&gt;; &lt;br&gt;&lt;b&gt; end&lt;/b&gt;; &lt;br&gt;&lt;br&gt;&lt;b&gt; if&lt;/b&gt; MailClient.HostInit &lt;b&gt;then begin &lt;/b&gt;&lt;br&gt; MailClient.Connect; {Соеденяемься} &lt;br&gt;&lt;b&gt; end &lt;/b&gt;&lt;br&gt; else &lt;br&gt; MailClient.RequestHost; &lt;br&gt;&lt;b&gt; end&lt;/b&gt;; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; Далее мы устанавливаем соединение: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;procedure &lt;/b&gt;TForm1.MailClientConnect(Sender: TObject); &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;begin &lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;MailClient.Hello; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;end&lt;/b&gt;; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; И авторизуемся если соединение прошло успешно: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;procedure &lt;/b&gt;TForm1.MailClientHello(Sender: TObject); &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;begin &lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;MailClient.Authorize; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;end&lt;/b&gt;; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; И если соединении пропало, то мы подключаемся автоматически: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;procedure &lt;/b&gt;TForm1.MailClientRequestHost(Sender: TObject); &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;begin &lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;mailclient.Status:=OnLine; &lt;br&gt;&amp;nbsp;&amp;nbsp;MailClient.Connect; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;end&lt;/b&gt;; &lt;br&gt;&lt;br&gt; И не забудьте обязательно прописать эту строчку: &lt;br&gt;&amp;nbsp;&amp;nbsp;mailclient.Status:=OnLine; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt; иначе вы не сможете работать с компонентом. &lt;br&gt;&lt;br&gt; Вот и все, если сделали все правильно то должно произойти подключение )) &lt;br&gt;&lt;br&gt; Все остальные функции я не буду расписывать, некоторые вы можете посмотреть в моей программе, она конечно не безупречна, но работает более-менее стабильно. &lt;br&gt;&lt;br&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a class=&quot;link&quot; href=&quot;http://my-programm.ucoz.net/load/delphi/iskhodnik_mail_ru_agenta/1-1-0-5&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;Скачать исходник&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;</content:encoded>
			<link>https://my-programm.ucoz.net/news/sozdanie_mail_ru_agenta_na_delphi/2011-12-26-17</link>
			<category>Delphi</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/sozdanie_mail_ru_agenta_na_delphi/2011-12-26-17</guid>
			<pubDate>Mon, 26 Dec 2011 10:10:57 GMT</pubDate>
		</item>
		<item>
			<title>Простые примерны php</title>
			<description>&lt;b&gt;&lt;div align=&quot;center&quot;&gt;Какая версия php у меня установленах&lt;/div&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt; Прежде чем работать с php было бы неплохо узнать установлин ли у вас php и узнать какая именно версия. Выполнять поставленную задачу будем с помощью встроенной функции &lt;span style=&quot;color:blue&quot;&gt;phpinfo()&lt;/span&gt;, которая кроме версии php покажет нам детальный отчёт о всех его настройках. &lt;br /&gt; Посмотрите пример вывода информации данной функции, чтобы вывести подобное на своём сайте, создайте страницу с расширением .php и вставьте туда следующий код: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; phpinfo(&amp;#41;; &lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;&lt;div align=&quot;center&quot;&gt;Время на сервере&lt;/div&gt;&lt;/b&gt; &lt;br /&gt; С помощью php легко узнать текущее время на сервере, например, во время загрузки на сервере было 20:21:33 25.12.2011, но в отличии от javascript это время не меняется онлайн, т.е. отображается то время, которое было на сервере в момент загрузки данной страницы. &lt;br /&gt; Чтобы вывести дату на сайте нужно воспользоваться функцией &lt;span style=&quot;color:blue&quot;&gt;date()&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; echo date(&apos;H:i:s d.m.Y&apos;&amp;#41;; &lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Маленькая хитрость: обычно в конце страницы ставят копирайт так Copyright © Computerlessons.ru, 2007 - 2011. Обратите внимание на вторую дату, она выводится с помощью php и в этом случае не нужно каждый год вручную подправлять число. &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Как определить IP-посетителя&lt;/b&gt;&lt;/div&gt; &lt;br /&gt;&lt;br /&gt; При написании скрипта для добавления комментариев неплохо бы кроме вводимых пользователем данных писать в базу данных ещё и его IP-адрес, мало ли пригодится. Узнать IP адрес пользователя можно с помощью функции &lt;b&gt;etenv(&apos;REMOTE_ADDR&apos;)&lt;/b&gt; &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; echo getenv(&apos;REMOTE_ADDR&apos;&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Вычисляем время выполения php-скрипта (загрузки страницы)&lt;/b&gt;&lt;/div&gt; &lt;br /&gt;&lt;br /&gt; При программировании на php немаловажно уделить внимание скорости загрузки срипта. Слишком долго выполняющиеся скрипты могут сильно грузить сервер, при высокой посещаемости ресурса будут происходить сбои всего сайта из-за таких скриптов. Чтобы узнать сколько времени работает скрипт (грузится страница), воспользуйтесь таким примером php-кода: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; define(&apos;ST_T&apos;, microtime(&amp;#41;&amp;#41;;//начало &lt;br /&gt;&lt;br /&gt; echo &apos;&lt;p&gt;Контент страницы, скрипты и т.п.&lt;/p&gt;&apos;; &lt;br /&gt;&lt;br /&gt; printf(&apos;Страница сгенерирована за %.5f сек.&apos;, microtime(&amp;#41;-ST_T&amp;#41;;//конец &lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;&lt;div align=&quot;center&quot;&gt;Подсветка php-кода&lt;/div&gt;&lt;/b&gt; &lt;br /&gt; Вы наверное уже обратили внимание, что на этой странице я привожу примеры php-кодов в цветном варианте. Цветной код удобно читать, нежели чёрно-белый. Например, я мог бы показывать вам коды так: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; echo highlight_file(&apos;color_code.php&apos;, true&amp;#41;; &lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Но всё же согласитесь, цветной код лучше! Выше я привожу вам пример функции &lt;b&gt;highlight_file()&lt;/b&gt;, с её помощью можно выводить на страницу php-код из другого файла. Ниже посмотрите функцию &lt;b&gt;highlight_string()&lt;/b&gt;, где можно раскрашивать код непосредственно на странице. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; echo highlight_string(&quot;#тут вводим код, который станет цветным#&quot;&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Маленькая поправочка: следите за ковычками внутри этих функций, если используете двойную ковычку &quot;, то внутри используйте только одинарные &apos;, если нужно использовать двойную ковычку, то её необходимо экранировать обратным слешем &amp;#92;&quot;. То же касается и одинарыных ковычек. &lt;br /&gt;&lt;br /&gt; http://computerlessons.ru/lessons/php/14.html</description>
			<content:encoded>&lt;b&gt;&lt;div align=&quot;center&quot;&gt;Какая версия php у меня установленах&lt;/div&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt; Прежде чем работать с php было бы неплохо узнать установлин ли у вас php и узнать какая именно версия. Выполнять поставленную задачу будем с помощью встроенной функции &lt;span style=&quot;color:blue&quot;&gt;phpinfo()&lt;/span&gt;, которая кроме версии php покажет нам детальный отчёт о всех его настройках. &lt;br /&gt; Посмотрите пример вывода информации данной функции, чтобы вывести подобное на своём сайте, создайте страницу с расширением .php и вставьте туда следующий код: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; phpinfo(&amp;#41;; &lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;&lt;div align=&quot;center&quot;&gt;Время на сервере&lt;/div&gt;&lt;/b&gt; &lt;br /&gt; С помощью php легко узнать текущее время на сервере, например, во время загрузки на сервере было 20:21:33 25.12.2011, но в отличии от javascript это время не меняется онлайн, т.е. отображается то время, которое было на сервере в момент загрузки данной страницы. &lt;br /&gt; Чтобы вывести дату на сайте нужно воспользоваться функцией &lt;span style=&quot;color:blue&quot;&gt;date()&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; echo date(&apos;H:i:s d.m.Y&apos;&amp;#41;; &lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Маленькая хитрость: обычно в конце страницы ставят копирайт так Copyright © Computerlessons.ru, 2007 - 2011. Обратите внимание на вторую дату, она выводится с помощью php и в этом случае не нужно каждый год вручную подправлять число. &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Как определить IP-посетителя&lt;/b&gt;&lt;/div&gt; &lt;br /&gt;&lt;br /&gt; При написании скрипта для добавления комментариев неплохо бы кроме вводимых пользователем данных писать в базу данных ещё и его IP-адрес, мало ли пригодится. Узнать IP адрес пользователя можно с помощью функции &lt;b&gt;etenv(&apos;REMOTE_ADDR&apos;)&lt;/b&gt; &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; echo getenv(&apos;REMOTE_ADDR&apos;&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Вычисляем время выполения php-скрипта (загрузки страницы)&lt;/b&gt;&lt;/div&gt; &lt;br /&gt;&lt;br /&gt; При программировании на php немаловажно уделить внимание скорости загрузки срипта. Слишком долго выполняющиеся скрипты могут сильно грузить сервер, при высокой посещаемости ресурса будут происходить сбои всего сайта из-за таких скриптов. Чтобы узнать сколько времени работает скрипт (грузится страница), воспользуйтесь таким примером php-кода: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; define(&apos;ST_T&apos;, microtime(&amp;#41;&amp;#41;;//начало &lt;br /&gt;&lt;br /&gt; echo &apos;&lt;p&gt;Контент страницы, скрипты и т.п.&lt;/p&gt;&apos;; &lt;br /&gt;&lt;br /&gt; printf(&apos;Страница сгенерирована за %.5f сек.&apos;, microtime(&amp;#41;-ST_T&amp;#41;;//конец &lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;&lt;div align=&quot;center&quot;&gt;Подсветка php-кода&lt;/div&gt;&lt;/b&gt; &lt;br /&gt; Вы наверное уже обратили внимание, что на этой странице я привожу примеры php-кодов в цветном варианте. Цветной код удобно читать, нежели чёрно-белый. Например, я мог бы показывать вам коды так: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; echo highlight_file(&apos;color_code.php&apos;, true&amp;#41;; &lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Но всё же согласитесь, цветной код лучше! Выше я привожу вам пример функции &lt;b&gt;highlight_file()&lt;/b&gt;, с её помощью можно выводить на страницу php-код из другого файла. Ниже посмотрите функцию &lt;b&gt;highlight_string()&lt;/b&gt;, где можно раскрашивать код непосредственно на странице. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &lt;?php &lt;br /&gt; echo highlight_string(&quot;#тут вводим код, который станет цветным#&quot;&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt; ?&gt; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Маленькая поправочка: следите за ковычками внутри этих функций, если используете двойную ковычку &quot;, то внутри используйте только одинарные &apos;, если нужно использовать двойную ковычку, то её необходимо экранировать обратным слешем &amp;#92;&quot;. То же касается и одинарыных ковычек. &lt;br /&gt;&lt;br /&gt; http://computerlessons.ru/lessons/php/14.html</content:encoded>
			<link>https://my-programm.ucoz.net/news/prostye_primerny_php/2011-12-25-16</link>
			<category>PHP</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/prostye_primerny_php/2011-12-25-16</guid>
			<pubDate>Sun, 25 Dec 2011 16:28:14 GMT</pubDate>
		</item>
		<item>
			<title>Пишем скрипт регистрации php</title>
			<description>Скрипт написан на PHP, для хранения информации о пользователях мы использовали базу данных &lt;b&gt;MySQL&lt;/b&gt;. &lt;br&gt;&lt;br&gt; Для удобства создадим файл, в котором будет осуществляться подключение к БД. Этот файл мы будем инклудить ко всем остальным скриптам, где требуется связь с БД. &lt;br&gt;&lt;br&gt; Содержимое файла &lt;b&gt;«connectdb.php»&lt;/b&gt;: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt; &lt; ? &lt;br&gt; //данные о хосте, пользователе и базе данных &lt;br&gt; $host = &apos;localhost&apos;; &lt;br&gt; $user = &apos;root&apos;;&amp;nbsp;&amp;nbsp;&lt;br&gt; $pass = &apos;pass&apos;;&amp;nbsp;&amp;nbsp;&lt;br&gt; $dbname = &apos;test&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; // подключаемся и выбираем бд, которую указали выше &lt;br&gt; if(!mysql_connect($host,$user,$pass)) &lt;br&gt;&amp;nbsp;&amp;nbsp;die(&apos;Не удалось подключиться к серверу MySql!&apos;); &lt;br&gt; elseif(!mysql_select_db($dbname)) &lt;br&gt;&amp;nbsp;&amp;nbsp;die(&apos;Не удалось выбрать БД!&apos;); &lt;br&gt; ?&amp;gt; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;...</description>
			<content:encoded>Скрипт написан на PHP, для хранения информации о пользователях мы использовали базу данных &lt;b&gt;MySQL&lt;/b&gt;. &lt;br&gt;&lt;br&gt; Для удобства создадим файл, в котором будет осуществляться подключение к БД. Этот файл мы будем инклудить ко всем остальным скриптам, где требуется связь с БД. &lt;br&gt;&lt;br&gt; Содержимое файла &lt;b&gt;«connectdb.php»&lt;/b&gt;: &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt; &lt; ? &lt;br&gt; //данные о хосте, пользователе и базе данных &lt;br&gt; $host = &apos;localhost&apos;; &lt;br&gt; $user = &apos;root&apos;;&amp;nbsp;&amp;nbsp;&lt;br&gt; $pass = &apos;pass&apos;;&amp;nbsp;&amp;nbsp;&lt;br&gt; $dbname = &apos;test&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; // подключаемся и выбираем бд, которую указали выше &lt;br&gt; if(!mysql_connect($host,$user,$pass)) &lt;br&gt;&amp;nbsp;&amp;nbsp;die(&apos;Не удалось подключиться к серверу MySql!&apos;); &lt;br&gt; elseif(!mysql_select_db($dbname)) &lt;br&gt;&amp;nbsp;&amp;nbsp;die(&apos;Не удалось выбрать БД!&apos;); &lt;br&gt; ?&amp;gt; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;$CUT$&lt;br&gt; Теперь напишем скрипт инсталяции, который будет создавать таблицу необходимую для хранения информации о пользователях. &lt;br&gt;&lt;br&gt; Содержимое файла со скриптом инсталяции &lt;b&gt;«install.php»&lt;/b&gt;: &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt; &lt; ? &lt;br&gt; include(&apos;connectdb.php&apos;);// подключение к серверу MySql и выбор БД &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; // sql-скрипт для создания таблицы &lt;br&gt; $sql=&apos;CREATE TABLE users( &lt;br&gt;&amp;nbsp;&amp;nbsp;id INT NOT NULL AUTO_INCREMENT, &lt;br&gt;&amp;nbsp;&amp;nbsp;login VARCHAR(15), &lt;br&gt;&amp;nbsp;&amp;nbsp;pass TEXT, &lt;br&gt;&amp;nbsp;&amp;nbsp;email VARCHAR(150), &lt;br&gt;&amp;nbsp;&amp;nbsp;PRIMARY KEY(id) &lt;br&gt; );&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; //выполняем sql-запрос &lt;br&gt; if(!mysql_query($sql)){ &lt;br&gt;&amp;nbsp;&amp;nbsp;echo &apos;Ошибка при создании таблицы в БД!&apos;; &lt;br&gt; } else { &lt;br&gt;&amp;nbsp;&amp;nbsp;echo &apos;Всё прошло отлично, таблица создана!&apos;; &lt;br&gt; } &lt;br&gt; ?&amp;gt; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; Пользователей нужно регистрировать — напишем для этого скрипт! &lt;br&gt; Сразу скажу, &lt;span style=&quot;color:red&quot;&gt;что все вводимые данные не проверяются на правильность и скрипт уязвим для взломов&lt;/span&gt;, поэтому вам придётся самим доработать его как нужно. &lt;br&gt;&lt;br&gt; Регистрация заключается в добавлении информации о пользователе (Логин, пароль…) в базу данных. &lt;br&gt;&lt;br&gt; Создадим файл &lt;b&gt;«register.php»&lt;/b&gt; и добавим в него следующее: &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt; &lt; ? &lt;br&gt; include(&apos;connectdb.php&apos;);// подключение к серверу MySql и выбор БД &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt; if (($_POST[&apos;login&apos;]!=&apos;&apos;) ||&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;($_POST[&apos;pass1&apos;]!=&apos;&apos;) ||&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;($_POST[&apos;pass2&apos;]!=&apos;&apos;) ||&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;($_POST[&apos;email&apos;]!=&apos;&apos;)) { // если все данные для регистрации введены, то продолжаем &lt;br&gt;&amp;nbsp;&amp;nbsp;$pass1 = $_POST[&apos;pass1&apos;]; &lt;br&gt;&amp;nbsp;&amp;nbsp;$pass2 = $_POST[&apos;pass2&apos;]; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;if (strcmp($pass1, $pass2) == 0) {// если пароли совпадают, то продолжаем &lt;br&gt;&amp;nbsp;&amp;nbsp;$login = $_POST[&apos;login&apos;]; &lt;br&gt;&amp;nbsp;&amp;nbsp;$email = $_POST[&apos;email&apos;]; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;//проверяем наличие в БД пользователя с логином $login &lt;br&gt;&amp;nbsp;&amp;nbsp;$sql=&apos;SELECT * FROM users WHERE login=&apos;.$login; // скрипт для поиска по логину в таблице users &lt;br&gt;&amp;nbsp;&amp;nbsp;if (!($res=mysql_query($sql)) || (mysql_num_rows($res) == 0)) { // если количество найденых записей ноль, то продолжаем &lt;br&gt;&amp;nbsp;&amp;nbsp;// sql-скрипт для добавления даных в таблицу &lt;br&gt;&amp;nbsp;&amp;nbsp;$sql = &apos;INSERT INTO users(login, pass, email)&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;VALUES(&quot;&apos;.$login.&apos;&quot;, &quot;&apos;.$pass1.&apos;&quot;, &quot;&apos;.$email.&apos;&quot;)&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;if(mysql_query($sql)) {// выполняем скрипт &lt;br&gt;&amp;nbsp;&amp;nbsp;echo &apos;Пользователь &apos;.$_POST[&apos;login&apos;].&apos; успешно зарегистрирован! &lt;a href=&quot;https://my-programm.ucoz.net/index.php&quot;&amp;gt;Форма для входа.&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;} else { &lt;br&gt;&amp;nbsp;&amp;nbsp;echo &apos;При регистрации произошла ошибка, &lt;a href=&quot;https://my-programm.ucoz.net/register.php&quot;&amp;gt;повторите попытку&lt;/a&amp;gt;.&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} else echo &apos;Пользователь с таким логином уже зарегистрирован!&apos;; &lt;br&gt;&amp;nbsp;&amp;nbsp;} else echo &apos;Введенные пароли не совпадают, &lt;a href=&quot;https://my-programm.ucoz.net/register.php&quot;&amp;gt;повторите попытку&lt;/a&amp;gt;.&apos;; &lt;br&gt; } else { &lt;br&gt; ?&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;form method=&apos;post&apos; action=&apos;/register.php&apos;&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;Введите Логин: &lt;input type=&apos;text&apos; size=&apos;30&apos; name=&apos;login&apos; /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;Введите e-mail: &lt;input type=text size=30 name=&apos;email&apos; /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;Пароль: &lt;input type=&apos;password&apos; name=&apos;pass1&apos; size=&apos;30&apos; /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;Повторите пароль: &lt;input type=&apos;password&apos; name=&apos;pass2&apos; size=&apos;30&apos; /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;input type=&apos;submit&apos; value=&apos;Регистрация&apos; /&amp;gt; &lt;br&gt; &lt; ?&amp;nbsp;&amp;nbsp;&lt;br&gt; } &lt;br&gt; ?&amp;gt; &lt;br&gt; &lt;/form&amp;gt; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; Далее нам нужно создать форму для авторизации и скрипт управления авторизацией. &lt;br&gt;&lt;br&gt; Всё это будет находиться в файле &lt;b&gt;«index.php»&lt;/b&gt;: &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt; &lt; ? &lt;br&gt; /*!!!Чтобы не повредить работоспособности&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;скрипта выше этого комментария&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;не размещайте вообще ничего!!!*/ &lt;br&gt; include(&apos;connectdb.php&apos;);// подключение к серверу MySql и выбор БД &lt;br&gt; $userinfo=&apos;&apos;; &lt;br&gt; $state=&apos;0&apos;; &lt;br&gt; if( (isset($_COOKIE[&apos;login&apos;])) &amp;amp; (isset($_COOKIE[&apos;pass&apos;])) ) {// если в куках лежит логин и зашифрованый пароля &lt;br&gt;&amp;nbsp;&amp;nbsp;if (!isset($_GET[&apos;exit&apos;])) {// если кнопка выход не была нажата &lt;br&gt;&amp;nbsp;&amp;nbsp;$login=$_COOKIE[&apos;login&apos;]; &lt;br&gt;&amp;nbsp;&amp;nbsp;$pass=$_COOKIE[&apos;pass&apos;]; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;// проверяем наличие пользователя в БД и достаём оттуда пароль &lt;br&gt;&amp;nbsp;&amp;nbsp;$sql=&quot;SELECT id, pass FROM users WHERE login=&apos;$login&apos;&quot;; &lt;br&gt;&amp;nbsp;&amp;nbsp;$res=mysql_query($sql); &lt;br&gt;&amp;nbsp;&amp;nbsp;if(mysql_num_rows($res)&amp;gt;0){// если пользователь есть в БД &lt;br&gt;&amp;nbsp;&amp;nbsp;$userinfo = mysql_fetch_array($res);// в этой переменной лежит пароль из БД &lt;br&gt;&amp;nbsp;&amp;nbsp;if(strcmp($pass,md5($userinfo[&apos;pass&apos;])) == 0) { //проверяем схожесть пароля из БД с паролем из куков &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;// достаём все данные из БД &lt;br&gt;&amp;nbsp;&amp;nbsp;$sql=&quot;SELECT * FROM users WHERE login=&apos;$login&apos;&quot;; &lt;br&gt;&amp;nbsp;&amp;nbsp;$res=mysql_query($sql); &lt;br&gt;&amp;nbsp;&amp;nbsp;$userinfo=mysql_fetch_array($res); // в этой переменной будет лежать вся информация о пользователе из БД &lt;br&gt;&amp;nbsp;&amp;nbsp;$time=time(); &lt;br&gt;&amp;nbsp;&amp;nbsp;// устанавливаем куки для запоминания статуса пользователя &lt;br&gt;&amp;nbsp;&amp;nbsp;setcookie(&quot;login&quot;,$login,$time+1800); &lt;br&gt;&amp;nbsp;&amp;nbsp;setcookie(&quot;pass&quot;,$pass,$time+1800); &lt;br&gt;&amp;nbsp;&amp;nbsp;$state = 1;// статус, если 1, тогда пользователь авторизован &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} else { &lt;br&gt;&amp;nbsp;&amp;nbsp;//обнуляем куки, если была нажата кнопка выход &lt;br&gt;&amp;nbsp;&amp;nbsp;setcookie(&quot;login&quot;); &lt;br&gt;&amp;nbsp;&amp;nbsp;setcookie(&quot;pass&quot;); &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt; } &lt;br&gt; if($state != 1) {// если после проверки куков, оказалось, что пользователь не авторизован, то идем дальше &lt;br&gt;&amp;nbsp;&amp;nbsp;if( (isset($_POST[&apos;login&apos;])) &amp;amp; (isset($_POST[&apos;pass&apos;])) ){ // если пользователь ввёл логин и пароль &lt;br&gt;&amp;nbsp;&amp;nbsp;$login = $_POST[&apos;login&apos;];&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;// проверяем наличие пользователя в БД и достаём оттуда пароль &lt;br&gt;&amp;nbsp;&amp;nbsp;$sql = &quot;SELECT id, pass FROM users WHERE login=&apos;$login&apos;&quot;; &lt;br&gt;&amp;nbsp;&amp;nbsp;$res = mysql_query($sql); &lt;br&gt;&amp;nbsp;&amp;nbsp;if(mysql_num_rows($res)&amp;gt;0) {// если пользователь есть в БД &lt;br&gt;&amp;nbsp;&amp;nbsp;$userinfo = mysql_fetch_array($res);// в этой переменной лежит пароль из БД и номер пользователя &lt;br&gt;&amp;nbsp;&amp;nbsp;$pass = $_POST[&apos;pass&apos;]; &lt;br&gt;&amp;nbsp;&amp;nbsp;if(strcmp($pass,$userinfo[&apos;pass&apos;])==0){ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;// достаём все данные из БД &lt;br&gt;&amp;nbsp;&amp;nbsp;$sql=&quot;SELECT * FROM users WHERE login=&apos;$login&apos;&quot;; &lt;br&gt;&amp;nbsp;&amp;nbsp;$res=mysql_query($sql); &lt;br&gt;&amp;nbsp;&amp;nbsp;$userinfo=mysql_fetch_array($res);// в этой переменной будет лежать вся информация о пользователе из БД &lt;br&gt;&amp;nbsp;&amp;nbsp;$time=time(); &lt;br&gt;&amp;nbsp;&amp;nbsp;// устанавливаем куки для запоминания статуса пользователя, пароль шифруем &lt;br&gt;&amp;nbsp;&amp;nbsp;setcookie(&quot;login&quot;, $login, $time+1800); &lt;br&gt;&amp;nbsp;&amp;nbsp;setcookie(&quot;pass&quot;, md5($pass), $time+1800); &lt;br&gt;&amp;nbsp;&amp;nbsp;$state = 1;// статус, если 1, тогда пользователь авторизован &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt;&amp;nbsp;&amp;nbsp;} &lt;br&gt; } &lt;br&gt; if($state != 1) { &lt;br&gt; ?&amp;gt; &lt;br&gt; &lt;form method=&quot;post&quot; action=&quot;/index.php&quot;&amp;gt; &lt;br&gt; Логин: &lt;input type=&quot;text&quot; size=&quot;30&quot; name=&quot;login&quot;/&amp;gt; &lt;br&gt; Пароль: &lt;input type=&quot;password&quot; name=&quot;pass&quot; size=&quot;30&quot;/&amp;gt; &lt;br&gt; &lt;input type=&quot;submit&quot; value=&quot;Войти&quot;/&amp;gt; &lt;br&gt; &lt;/form&amp;gt; &lt;br&gt; &lt;a href=&quot;https://my-programm.ucoz.net/register.php&quot;&amp;gt;Регистрация&lt;/a&amp;gt; &lt;br&gt; &lt; ? &lt;br&gt; } else { &lt;br&gt;&amp;nbsp;&amp;nbsp;echo &apos;Вы вошли на сайт! Ваш Логин: &apos;.$userinfo[&quot;login&quot;].&apos;Выш E-mail: &apos;.$userinfo[&quot;email&quot;].&apos; &lt;a href=&quot;https://my-programm.ucoz.net/index.php?exit=y&quot;&amp;gt;Выход&lt;/a&amp;gt;&apos;; &lt;br&gt; } &lt;br&gt; ?&amp;gt; &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; Если нужно проверить авторизован пользователь или нет, то проверяем переменную $state, она должна быть равна 1. &lt;br&gt; В массиве $userinfo содержится вся информация из БД об авторизованном пользователе. &lt;br&gt;&lt;br&gt; Теперь проверим как это всё работает. В файле &lt;b&gt;«connectdb.php»&lt;/b&gt; укажите свои настройки БД. &lt;br&gt;&lt;br&gt; После этого нужно создать таблицу, для этого следуем в браузере «http://вашсайт.com/install.php» и смотрим результат выполнения скрипта. &lt;br&gt;&lt;br&gt; &lt;img src=&quot;http://it-guest.net.ru/wp-content/uploads/2010/02/webauth1.png&quot; border=&quot;0&quot; alt=&quot;&quot;&gt; &lt;br&gt; Далее отправляемся на стартовую страницу &lt;b&gt;«index.php»&lt;/b&gt;. &lt;br&gt; &lt;img src=&quot;http://it-guest.net.ru/wp-content/uploads/2010/02/webauth2.png&quot; border=&quot;0&quot; alt=&quot;&quot;&gt; &lt;br&gt; Идём по ссылке «Регистрация», заполняем форму и жмём на кнопку &lt;b&gt;«Регистрация»&lt;/b&gt;. &lt;br&gt; &lt;img src=&quot;http://it-guest.net.ru/wp-content/uploads/2010/02/webauth3.png&quot; border=&quot;0&quot; alt=&quot;&quot;&gt; &lt;br&gt; &lt;img src=&quot;http://it-guest.net.ru/wp-content/uploads/2010/02/webauth4.png&quot; border=&quot;0&quot; alt=&quot;&quot;&gt; &lt;br&gt; Наконец идём по ссылке &lt;b&gt;«Форма для входа»&lt;/b&gt;, вводим логин и пароль и наслаждаемся=) &lt;br&gt; &lt;img src=&quot;http://it-guest.net.ru/wp-content/uploads/2010/02/webauth5.png&quot; border=&quot;0&quot; alt=&quot;&quot;&gt; &lt;br&gt;&lt;br&gt; Ну а теперь берите эти коды и прикручивайте куда вам надо.</content:encoded>
			<link>https://my-programm.ucoz.net/news/php_register/2011-12-21-15</link>
			<category>PHP</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/php_register/2011-12-21-15</guid>
			<pubDate>Wed, 21 Dec 2011 09:52:05 GMT</pubDate>
		</item>
		<item>
			<title>Простые функции на C#</title>
			<description>&lt;span style=&quot;font-size:10pt;&quot;&gt;1 Работа с текстом&lt;/span&gt; &lt;br&gt; &lt;b&gt;1. Вывод текста с помощью MessageBox &lt;/b&gt; &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; MessageBox.Show(&quot;текст&quot;, &quot;название&quot;); &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; [b]2. Вывод текста с помощью Label [/b] &lt;br&gt; label.Text = &quot;текст&quot;;&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; &lt;span style=&quot;font-size:10pt;&quot;&gt;§2 Работа с файлами&lt;/span&gt; &lt;br&gt; &lt;b&gt;1. Чтение текста с файла в строку &lt;/b&gt; &lt;br&gt;...</description>
			<content:encoded>&lt;span style=&quot;font-size:10pt;&quot;&gt;1 Работа с текстом&lt;/span&gt; &lt;br&gt; &lt;b&gt;1. Вывод текста с помощью MessageBox &lt;/b&gt; &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; MessageBox.Show(&quot;текст&quot;, &quot;название&quot;); &lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; [b]2. Вывод текста с помощью Label [/b] &lt;br&gt; label.Text = &quot;текст&quot;;&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; &lt;span style=&quot;font-size:10pt;&quot;&gt;§2 Работа с файлами&lt;/span&gt; &lt;br&gt; &lt;b&gt;1. Чтение текста с файла в строку &lt;/b&gt; &lt;br&gt;$CUT$&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; using System.IO;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt; string line, Text;&amp;nbsp;&amp;nbsp;&lt;br&gt; FileStream filestr = new FileStream(@&quot;путь к файлу с форматом&quot;, FileMode.Open);&amp;nbsp;&amp;nbsp;&lt;br&gt; StreamReader file = new StreamReader(filestr, Encoding.UTF8);&amp;nbsp;&amp;nbsp;&lt;br&gt; while ((line = file.ReadLine()) != null)&amp;nbsp;&amp;nbsp;&lt;br&gt; {&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;Text = Text + line + &quot;&amp;#92;n&quot;;&amp;nbsp;&amp;nbsp;&lt;br&gt; }&amp;nbsp;&amp;nbsp;&lt;br&gt; Файл находится в одной папке с приложением.&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; &lt;b&gt;2. Запись с строки в файл &lt;/b&gt; &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; using System.IO;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt; string Text;&amp;nbsp;&amp;nbsp;&lt;br&gt; FileStream filestr = new FileStream(@&quot;путь к файлу с форматом&quot;, FileMode.Create);&amp;nbsp;&amp;nbsp;&lt;br&gt; StreamWriter file = new StreamReader(filestr, Encoding.UTF8);&amp;nbsp;&amp;nbsp;&lt;br&gt; file.WriteLine(Text);&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; &lt;span style=&quot;font-size:10pt;&quot;&gt;3 Работа с сетью&lt;/span&gt; &lt;br&gt; &lt;b&gt;1. Отправка Email &lt;/b&gt; &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br&gt; using System.Net;&amp;nbsp;&amp;nbsp;&lt;br&gt; using System.Net.Mail;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt; SmtpClient Smtp = new SmtpClient(&quot;адрес smtp сервера с которого отправляете&quot;, порт сервера);&amp;nbsp;&amp;nbsp;&lt;br&gt; Smtp.EnableSsl = true;&amp;nbsp;&amp;nbsp;&lt;br&gt; Smtp.Credentials = new NetworkCredential(&quot;логин&quot;, &quot;пароль&quot;);&amp;nbsp;&amp;nbsp;&lt;br&gt; MailMessage Message = new MailMessage(&quot;адрес отправителя&quot;,&quot;адрес получателя&quot;,&quot;тема&quot;,&quot;сообщение&quot;);&amp;nbsp;&amp;nbsp;&lt;br&gt; Message.Attachments.Add(new Attachment(@&quot;путь к файлу с форматом&quot;));&amp;nbsp;&amp;nbsp;&lt;br&gt; Smtp.SendAsync(Message, &quot;t&quot;);&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt;&lt;br&gt; &lt;b&gt;3. Скачивание с ftp сервера &lt;/b&gt; &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; using System.Net;&amp;nbsp;&amp;nbsp;&lt;br&gt; using System.IO;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt; WebClient request = new WebClient();&amp;nbsp;&amp;nbsp;&lt;br&gt; request.Credentials = new NetworkCredential(&quot;логин&quot;, &quot;пароль&quot;);&amp;nbsp;&amp;nbsp;&lt;br&gt; request.DownloadFile(&quot;ftp://адрес сервера/файл.формат&quot;, @&quot;директория сохранения файла с названием файла и форматом&quot;);&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt; &lt;span style=&quot;font-size:10pt;&quot;&gt;4 Работа с графикой&lt;/span&gt; &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; Graphics gr = e.Graphics;&amp;nbsp;&amp;nbsp;&lt;br&gt; Rectangle rec = new Rectangle(x положение, y положение, x размер, y размер);&amp;nbsp;&amp;nbsp;&lt;br&gt; gr.FillRectangle(rec);&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt; Код писать в событии Form_Paint. &lt;br&gt;&lt;br&gt; &lt;b&gt;2. Рисование круга &lt;/b&gt; &lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; Graphics gr = e.Graphics;&amp;nbsp;&amp;nbsp;&lt;br&gt; Rectangle ball = new Rectangle(x положение, y положение, x размер, y размер);&amp;nbsp;&amp;nbsp;&lt;br&gt; gr.FillEllipse(ball);&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt; Код писать в событии Form_Paint. &lt;br&gt;&lt;br&gt; &lt;span style=&quot;font-size:10pt;&quot;&gt;5 Работа с мультимедиа&lt;/span&gt; &lt;br&gt; &lt;b&gt;1. Воспроизведение видео&lt;/b&gt; &lt;br&gt;&lt;br&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&amp;gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt; using Microsoft.DirectX.AudioVideoPlayback;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt; Video vid = new Video(@&quot;путь к видео&quot;);&amp;nbsp;&amp;nbsp;&lt;br&gt; vid.Owner = this;&amp;nbsp;&amp;nbsp;&lt;br&gt; vid.Play();&amp;nbsp;&amp;nbsp;&lt;br&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br&gt; Необходимо добавить в ссылки Microsoft.DirectX.AudioVideoPlayback который находится в C:&amp;#92;Windows&amp;#92;Microsoft.NET&amp;#92;DirectX for Managed Code&amp;#92;. &lt;br&gt;&lt;br&gt; &lt;b&gt;2. Воспроизведение аудио &lt;/b&gt; &lt;br&gt;&lt;br&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left: 5px; font-weight: bold; font-size: 7pt; &quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: inset; border-right-style: inset; border-bottom-style: inset; border-left-style: inset; border-color: initial; max-height: 200px; overflow-x: auto; overflow-y: auto; &quot;&gt;using Microsoft.DirectX.AudioVideoPlayback;&amp;nbsp;&lt;br&gt;&lt;br&gt;Audio aud = new Audio(@&quot;путь к аудио&quot;);&amp;nbsp;&lt;br&gt;aud.Play();&lt;/div&gt;&lt;/div&gt;</content:encoded>
			<link>https://my-programm.ucoz.net/news/prostye_funkcii_na_c/2011-11-07-12</link>
			<category>С#</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/prostye_funkcii_na_c/2011-11-07-12</guid>
			<pubDate>Mon, 07 Nov 2011 09:32:21 GMT</pubDate>
		</item>
		<item>
			<title>Проверка обновления delphi</title>
			<description>Если кому будет нужна реализация обновления ПО через Интернет — привожу код простого класса для обновления. Как всегда рекомендации и ругань — приветсвуются . &lt;br /&gt; В принципе ничего не мешает оформить этот класс как компонент или сделать классу обвязку. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; unit BDSInetUpdater; &lt;br /&gt;&lt;br /&gt; interface &lt;br /&gt; Uses Classes,UrlMon,Windows,IniFiles; &lt;br /&gt;&lt;br /&gt; type &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие, сигнализирующее о том, что есть обновленная версия &lt;br /&gt;&amp;nbsp;&amp;nbsp;TOnStartUpdate=procedure (Sender:TObject; var StartUpdate:boolean&amp;#41; of object; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при проверке обновленнной версии &lt;br /&gt;&amp;nbsp;&amp;nbsp;TOnAddUpdateInfoCheck=procedure (Sender:TObject; Inf:TIniFile; var CheckResult,ContinueCheck:boolean; &lt;br /&gt;&amp;nbsp;&amp;nbsp;var DownloadURL:string&amp;#41; of object; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при проверке версии &lt;br /&gt;&amp;nbsp;&amp;nbsp;TOnUpdateVersionInfo=procedure (Sender:TObject; Version:string&amp;#41; of object; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;TInetUpdater=class &lt;br /&gt;&amp;nbsp;&amp;nbsp;private &lt;br /&gt;&amp;nbsp;&amp;nbsp;FUpdateInfoFile: string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FUpdateResultFile: string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateComplete: TNotifyEvent; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FProductVersion:string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FProductName: string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateExists: TNotifyEvent; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnStartUpdate: TOnStartUpdate; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnAddUpInfoCheck: TOnAddUpdateInfoCheck; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateVersionInfo: TOnUpdateVersionInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FInetResult:HRESULT; &lt;br /&gt;&amp;nbsp;&amp;nbsp;public &lt;br /&gt;&amp;nbsp;&amp;nbsp;Constructor Create; virtual; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Destructor Destroy; override; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// проверить обнвления и обновится при возможности &lt;br /&gt;&amp;nbsp;&amp;nbsp;function UpdateFile:boolean; virtual; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// только проверить обновления &lt;br /&gt;&amp;nbsp;&amp;nbsp;function CheckUpdate(var DownloadURL:string&amp;#41;:boolean; virtual; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// получение кода при операциях с Инетом для разбора полетов &lt;br /&gt;&amp;nbsp;&amp;nbsp;property InetResult:HRESULT read FInetResult; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// ссылка на файл с информацией об обновлениях &lt;br /&gt;&amp;nbsp;&amp;nbsp;property UpdateInfoFileURL:string read FUpdateInfoFile write FUpdateInfoFile; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// временный файл для записи загруженного обновленного файла &lt;br /&gt;&amp;nbsp;&amp;nbsp;property UpdateResultFile:string read FUpdateResultFile write FUpdateResultFile; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// наименование продукта &lt;br /&gt;&amp;nbsp;&amp;nbsp;property ProductName:string read FProductName write FProductName; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// версия &lt;br /&gt;&amp;nbsp;&amp;nbsp;property ProductVersion:string read FProductVersion write FProductVersion; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие, которое позволяет проверить дополнительныую информацию, используется для пользовательской проверки &lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnAddUpdateInfoCheck:TOnAddUpdateInfoCheck read FOnAddUpInfoCheck write FOnAddUpInfoCheck; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при старте обновлений &lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnUpdateStart:TOnStartUpdate read FOnStartUpdate write FOnStartUpdate; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при завершении обновления &lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnUpdateComplete:TNotifyEvent read FOnUpdateComplete write FOnUpdateComplete; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие о существовании обновления (т.е. информация об обновлениях загружена и новая версия найдена&amp;#41;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnUpdateExists:TNotifyEvent read FOnUpdateExists write FOnUpdateExists; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при проверке версии &lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnUpdateVersionInfo:TOnUpdateVersionInfo read FOnUpdateVersionInfo write FOnUpdateVersionInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt; implementation &lt;br /&gt; Uses SysUtils; &lt;br /&gt;&lt;br /&gt; // получить временное имя файла (тут возможна оптимизация, вместо времени можно например использовать GetTickCount(&amp;#41;&amp;#41; &lt;br /&gt; Function GetTmpFileName:String; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=FormatDateTime(&apos;ddmmyyyyhhmmss&apos;,Now&amp;#41;+&apos;.tmp&apos;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; { TInetUpdater } &lt;br /&gt;&lt;br /&gt; function TInetUpdater.CheckUpdate(var DownloadURL:string&amp;#41;: boolean; &lt;br /&gt; var S1,TmpFileName:string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Res:HRESULT; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Inf:TIniFile; &lt;br /&gt;&amp;nbsp;&amp;nbsp;CheckResult,ContinueCheck:boolean; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=False; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// проверим, есть ли адрес для файла с информацией об обновлениях &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Trim(FUpdateInfoFile&amp;#41;=&apos;&apos; then exit; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// будем файл с информацией сохранять во временный файл &lt;br /&gt;&amp;nbsp;&amp;nbsp;TmpFileName:=ExtractFilePath(ParamStr(0&amp;#41;&amp;#41;+ChangeFileExt(GetTmpFileName,&apos;.ini&apos;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// пытаемся получить информацию об обновлениях&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FInetResult:=UrlDownloadToFile(nil,PChar(FUpdateInfoFile&amp;#41;,PChar(TmpFileName&amp;#41;,0,nil&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;if FInetResult=S_OK then &lt;br /&gt;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;// ОК, файл с информацией получили, пробуем проверить новую версию &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Assigned(FOnUpdateExists&amp;#41; then FOnUpdateExists(Self&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// предполагается, что файл с информацией об обновлениях представляет собой обычный INI файл &lt;br /&gt;&amp;nbsp;&amp;nbsp;Inf:=TIniFile.Create(TmpFileName&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;try &lt;br /&gt;&amp;nbsp;&amp;nbsp;CheckResult:=False; ContinueCheck:=True; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// здесь мы должны проверить информацию о версии, вызывая обработчик для OnAddUpInfoCheck(&amp;#41;. &lt;br /&gt;&amp;nbsp;&amp;nbsp;// если ContinueCheck TRUE мы должны проверить версию сами в этом классе&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//(в ином случае получим результат в переменной CheckResult и не будем проверять версию самостоятельно&amp;#41;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// Если файл с информацией НЕ INI файл - можем использовать свойство Inf.FileName&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// для получения имени временного файла и попробовать получить данные другим методом&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// в обработчике OnAddUpInfoCheck(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Assigned(FOnAddUpInfoCheck&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnAddUpInfoCheck(Self,Inf,CheckResult,ContinueCheck,DownloadURL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// Проверяем версию самостоятельно &lt;br /&gt;&amp;nbsp;&amp;nbsp;if ContinueCheck and Inf.SectionExists(FProductName&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;// Читаем версию &lt;br /&gt;&amp;nbsp;&amp;nbsp;S1:=Trim(Inf.ReadString(FProductName,&apos;Version&apos;,FProductVersion&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие о получении информации о версии &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Assigned(FOnUpdateVersionInfo&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateVersionInfo(Self,S1&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// Если версия не такая, как у нас =&gt; есть обновления &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=(S1&lt;&gt;Trim(FProductVersion&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// соответсвенно, получим URL для обновленного файла&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if Result then DownloadURL:=Inf.ReadString(FProductName,&apos;File&apos;,DownloadURL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end &lt;br /&gt;&amp;nbsp;&amp;nbsp;else Result:=CheckResult; &lt;br /&gt;&amp;nbsp;&amp;nbsp;finally Inf.Free; end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// временный файл нам уже не нужен - удаляем его &lt;br /&gt;&amp;nbsp;&amp;nbsp;if FileExists(TmpFileName&amp;#41; then SysUtils.DeleteFile(TmpFileName&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; // первоначальная инициализация &lt;br /&gt; constructor TInetUpdater.Create; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;FUpdateInfoFile:=&apos;http&amp;#58;//www.websitename.com/updates/verinfo.ini&apos;; // URL к файлу с данными об обвлениях &lt;br /&gt;&amp;nbsp;&amp;nbsp;FUpdateResultFile:=&apos;&apos;; // результирующий файл&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FProductName:=&apos;&apos;; // имя продукта &lt;br /&gt;&amp;nbsp;&amp;nbsp;FProductVersion:=&apos;1.0.0.0&apos;; // версия &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateComplete:=nil;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnStartUpdate:=nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateExists:=nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnAddUpInfoCheck:=nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateVersionInfo:=nil;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FInetResult:=S_OK; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; destructor TInetUpdater.Destroy; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;inherited; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; // собственно обновление&amp;nbsp;&amp;nbsp;&lt;br /&gt; function TInetUpdater.UpdateFile; &lt;br /&gt; var Flag:boolean; &lt;br /&gt;&amp;nbsp;&amp;nbsp;DownloadURL:string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Res:HRESULT; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=False; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// если мы не знаем, в какой файл сохранять обновления - они нам не нужны, уходим &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Trim(FUpdateResultFile&amp;#41;=&apos;&apos; then exit; &lt;br /&gt;&amp;nbsp;&amp;nbsp;DownloadURL:=&apos;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// пробуем проверить обновления и получить URL для скачивания &lt;br /&gt;&amp;nbsp;&amp;nbsp;if CheckUpdate(DownloadURL&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Trim(DownloadURL&amp;#41;=&apos;&apos; then exit; // обновления есть, но вот URL для скачивания не получили - уходим &lt;br /&gt;&amp;nbsp;&amp;nbsp;Flag:=True; &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Assigned(FOnStartUpdate&amp;#41; then FOnStartUpdate(Self,Flag&amp;#41;; // сигнализируем, что начали процесс обновления &lt;br /&gt;&amp;nbsp;&amp;nbsp;// в переменной Flag - согласие на закачку ответ пользователя&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if Flag then // если закачка разрешена - качаем&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;begin&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FInetResult:=UrlDownloadToFile(nil,PChar(DownloadURL&amp;#41;,PChar(FUpdateResultFile&amp;#41;,0,nil&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=FInetResult=S_OK; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// если закачка обновления прошла нормально - сигнализируем, что все прошло удачно &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Result and Assigned(FOnUpdateComplete&amp;#41; then FOnUpdateComplete(Self&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; end. &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Пример использования: &lt;br /&gt;&lt;br /&gt; 1) размещаем на своем сайте обычный Ini файл updates.ini со следующей информацией: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCo...</description>
			<content:encoded>Если кому будет нужна реализация обновления ПО через Интернет — привожу код простого класса для обновления. Как всегда рекомендации и ругань — приветсвуются . &lt;br /&gt; В принципе ничего не мешает оформить этот класс как компонент или сделать классу обвязку. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; unit BDSInetUpdater; &lt;br /&gt;&lt;br /&gt; interface &lt;br /&gt; Uses Classes,UrlMon,Windows,IniFiles; &lt;br /&gt;&lt;br /&gt; type &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие, сигнализирующее о том, что есть обновленная версия &lt;br /&gt;&amp;nbsp;&amp;nbsp;TOnStartUpdate=procedure (Sender:TObject; var StartUpdate:boolean&amp;#41; of object; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при проверке обновленнной версии &lt;br /&gt;&amp;nbsp;&amp;nbsp;TOnAddUpdateInfoCheck=procedure (Sender:TObject; Inf:TIniFile; var CheckResult,ContinueCheck:boolean; &lt;br /&gt;&amp;nbsp;&amp;nbsp;var DownloadURL:string&amp;#41; of object; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при проверке версии &lt;br /&gt;&amp;nbsp;&amp;nbsp;TOnUpdateVersionInfo=procedure (Sender:TObject; Version:string&amp;#41; of object; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;TInetUpdater=class &lt;br /&gt;&amp;nbsp;&amp;nbsp;private &lt;br /&gt;&amp;nbsp;&amp;nbsp;FUpdateInfoFile: string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FUpdateResultFile: string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateComplete: TNotifyEvent; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FProductVersion:string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FProductName: string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateExists: TNotifyEvent; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnStartUpdate: TOnStartUpdate; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnAddUpInfoCheck: TOnAddUpdateInfoCheck; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateVersionInfo: TOnUpdateVersionInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FInetResult:HRESULT; &lt;br /&gt;&amp;nbsp;&amp;nbsp;public &lt;br /&gt;&amp;nbsp;&amp;nbsp;Constructor Create; virtual; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Destructor Destroy; override; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// проверить обнвления и обновится при возможности &lt;br /&gt;&amp;nbsp;&amp;nbsp;function UpdateFile:boolean; virtual; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// только проверить обновления &lt;br /&gt;&amp;nbsp;&amp;nbsp;function CheckUpdate(var DownloadURL:string&amp;#41;:boolean; virtual; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// получение кода при операциях с Инетом для разбора полетов &lt;br /&gt;&amp;nbsp;&amp;nbsp;property InetResult:HRESULT read FInetResult; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// ссылка на файл с информацией об обновлениях &lt;br /&gt;&amp;nbsp;&amp;nbsp;property UpdateInfoFileURL:string read FUpdateInfoFile write FUpdateInfoFile; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// временный файл для записи загруженного обновленного файла &lt;br /&gt;&amp;nbsp;&amp;nbsp;property UpdateResultFile:string read FUpdateResultFile write FUpdateResultFile; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// наименование продукта &lt;br /&gt;&amp;nbsp;&amp;nbsp;property ProductName:string read FProductName write FProductName; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// версия &lt;br /&gt;&amp;nbsp;&amp;nbsp;property ProductVersion:string read FProductVersion write FProductVersion; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие, которое позволяет проверить дополнительныую информацию, используется для пользовательской проверки &lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnAddUpdateInfoCheck:TOnAddUpdateInfoCheck read FOnAddUpInfoCheck write FOnAddUpInfoCheck; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при старте обновлений &lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnUpdateStart:TOnStartUpdate read FOnStartUpdate write FOnStartUpdate; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при завершении обновления &lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnUpdateComplete:TNotifyEvent read FOnUpdateComplete write FOnUpdateComplete; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие о существовании обновления (т.е. информация об обновлениях загружена и новая версия найдена&amp;#41;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnUpdateExists:TNotifyEvent read FOnUpdateExists write FOnUpdateExists; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие при проверке версии &lt;br /&gt;&amp;nbsp;&amp;nbsp;property OnUpdateVersionInfo:TOnUpdateVersionInfo read FOnUpdateVersionInfo write FOnUpdateVersionInfo; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&lt;br /&gt; implementation &lt;br /&gt; Uses SysUtils; &lt;br /&gt;&lt;br /&gt; // получить временное имя файла (тут возможна оптимизация, вместо времени можно например использовать GetTickCount(&amp;#41;&amp;#41; &lt;br /&gt; Function GetTmpFileName:String; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=FormatDateTime(&apos;ddmmyyyyhhmmss&apos;,Now&amp;#41;+&apos;.tmp&apos;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; { TInetUpdater } &lt;br /&gt;&lt;br /&gt; function TInetUpdater.CheckUpdate(var DownloadURL:string&amp;#41;: boolean; &lt;br /&gt; var S1,TmpFileName:string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Res:HRESULT; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Inf:TIniFile; &lt;br /&gt;&amp;nbsp;&amp;nbsp;CheckResult,ContinueCheck:boolean; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=False; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// проверим, есть ли адрес для файла с информацией об обновлениях &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Trim(FUpdateInfoFile&amp;#41;=&apos;&apos; then exit; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// будем файл с информацией сохранять во временный файл &lt;br /&gt;&amp;nbsp;&amp;nbsp;TmpFileName:=ExtractFilePath(ParamStr(0&amp;#41;&amp;#41;+ChangeFileExt(GetTmpFileName,&apos;.ini&apos;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// пытаемся получить информацию об обновлениях&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FInetResult:=UrlDownloadToFile(nil,PChar(FUpdateInfoFile&amp;#41;,PChar(TmpFileName&amp;#41;,0,nil&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;if FInetResult=S_OK then &lt;br /&gt;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;// ОК, файл с информацией получили, пробуем проверить новую версию &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Assigned(FOnUpdateExists&amp;#41; then FOnUpdateExists(Self&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// предполагается, что файл с информацией об обновлениях представляет собой обычный INI файл &lt;br /&gt;&amp;nbsp;&amp;nbsp;Inf:=TIniFile.Create(TmpFileName&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;try &lt;br /&gt;&amp;nbsp;&amp;nbsp;CheckResult:=False; ContinueCheck:=True; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// здесь мы должны проверить информацию о версии, вызывая обработчик для OnAddUpInfoCheck(&amp;#41;. &lt;br /&gt;&amp;nbsp;&amp;nbsp;// если ContinueCheck TRUE мы должны проверить версию сами в этом классе&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//(в ином случае получим результат в переменной CheckResult и не будем проверять версию самостоятельно&amp;#41;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// Если файл с информацией НЕ INI файл - можем использовать свойство Inf.FileName&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// для получения имени временного файла и попробовать получить данные другим методом&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// в обработчике OnAddUpInfoCheck(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Assigned(FOnAddUpInfoCheck&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnAddUpInfoCheck(Self,Inf,CheckResult,ContinueCheck,DownloadURL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// Проверяем версию самостоятельно &lt;br /&gt;&amp;nbsp;&amp;nbsp;if ContinueCheck and Inf.SectionExists(FProductName&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;// Читаем версию &lt;br /&gt;&amp;nbsp;&amp;nbsp;S1:=Trim(Inf.ReadString(FProductName,&apos;Version&apos;,FProductVersion&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// событие о получении информации о версии &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Assigned(FOnUpdateVersionInfo&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateVersionInfo(Self,S1&amp;#41;;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;// Если версия не такая, как у нас =&gt; есть обновления &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=(S1&lt;&gt;Trim(FProductVersion&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// соответсвенно, получим URL для обновленного файла&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if Result then DownloadURL:=Inf.ReadString(FProductName,&apos;File&apos;,DownloadURL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end &lt;br /&gt;&amp;nbsp;&amp;nbsp;else Result:=CheckResult; &lt;br /&gt;&amp;nbsp;&amp;nbsp;finally Inf.Free; end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// временный файл нам уже не нужен - удаляем его &lt;br /&gt;&amp;nbsp;&amp;nbsp;if FileExists(TmpFileName&amp;#41; then SysUtils.DeleteFile(TmpFileName&amp;#41;; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; // первоначальная инициализация &lt;br /&gt; constructor TInetUpdater.Create; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;FUpdateInfoFile:=&apos;http&amp;#58;//www.websitename.com/updates/verinfo.ini&apos;; // URL к файлу с данными об обвлениях &lt;br /&gt;&amp;nbsp;&amp;nbsp;FUpdateResultFile:=&apos;&apos;; // результирующий файл&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FProductName:=&apos;&apos;; // имя продукта &lt;br /&gt;&amp;nbsp;&amp;nbsp;FProductVersion:=&apos;1.0.0.0&apos;; // версия &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateComplete:=nil;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnStartUpdate:=nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateExists:=nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnAddUpInfoCheck:=nil; &lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnUpdateVersionInfo:=nil;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FInetResult:=S_OK; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; destructor TInetUpdater.Destroy; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;inherited; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; // собственно обновление&amp;nbsp;&amp;nbsp;&lt;br /&gt; function TInetUpdater.UpdateFile; &lt;br /&gt; var Flag:boolean; &lt;br /&gt;&amp;nbsp;&amp;nbsp;DownloadURL:string; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Res:HRESULT; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=False; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// если мы не знаем, в какой файл сохранять обновления - они нам не нужны, уходим &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Trim(FUpdateResultFile&amp;#41;=&apos;&apos; then exit; &lt;br /&gt;&amp;nbsp;&amp;nbsp;DownloadURL:=&apos;&apos;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// пробуем проверить обновления и получить URL для скачивания &lt;br /&gt;&amp;nbsp;&amp;nbsp;if CheckUpdate(DownloadURL&amp;#41; then &lt;br /&gt;&amp;nbsp;&amp;nbsp;begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Trim(DownloadURL&amp;#41;=&apos;&apos; then exit; // обновления есть, но вот URL для скачивания не получили - уходим &lt;br /&gt;&amp;nbsp;&amp;nbsp;Flag:=True; &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Assigned(FOnStartUpdate&amp;#41; then FOnStartUpdate(Self,Flag&amp;#41;; // сигнализируем, что начали процесс обновления &lt;br /&gt;&amp;nbsp;&amp;nbsp;// в переменной Flag - согласие на закачку ответ пользователя&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if Flag then // если закачка разрешена - качаем&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;begin&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FInetResult:=UrlDownloadToFile(nil,PChar(DownloadURL&amp;#41;,PChar(FUpdateResultFile&amp;#41;,0,nil&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;Result:=FInetResult=S_OK; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// если закачка обновления прошла нормально - сигнализируем, что все прошло удачно &lt;br /&gt;&amp;nbsp;&amp;nbsp;if Result and Assigned(FOnUpdateComplete&amp;#41; then FOnUpdateComplete(Self&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt; end; &lt;br /&gt;&lt;br /&gt; end. &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Пример использования: &lt;br /&gt;&lt;br /&gt; 1) размещаем на своем сайте обычный Ini файл updates.ini со следующей информацией: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; &amp;#91;MyProgram] &lt;br /&gt;&amp;nbsp;&amp;nbsp;Version=1.2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;File=http&amp;#58;//www.myhomesite.com/updates/MyProgram_12_setup.exe &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; 2) пишем примерно такой код &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; Procedure MainForm.DoSelfInetUpdate; &lt;br /&gt; var IU:TInetUpdater; &lt;br /&gt; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;IU:=TInetUpdater.Create; &lt;br /&gt;&amp;nbsp;&amp;nbsp;try &lt;br /&gt;&amp;nbsp;&amp;nbsp;IU.UpdateInfoFileULR := &apos;http&amp;#58;//www.myhomesite.com/updates/updates.ini&apos;; // где лежит информация об обновлениях &lt;br /&gt;&amp;nbsp;&amp;nbsp;IU.UpdateResultFile := ChangeFileExt(ParamStr(0&amp;#41;,&apos;.new&apos;&amp;#41;; // куда ложить обновленную версию &lt;br /&gt;&amp;nbsp;&amp;nbsp;IU.ProductName := &apos;MyProgram&apos;; // имя продукта&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;IU.ProductVersion := &apos;1.0.0 beta 123&apos;; // текущая версия &lt;br /&gt;&amp;nbsp;&amp;nbsp;if IU.UpdateFile then // пробуем обновится&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;begin&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;RenameFile(ParamStr(0&amp;#41;,ChangeFileExt(ParamStr(0&amp;#41;,&apos;.old&apos;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;RenameFile(IU.UpdateResultFile,ParamStr(0&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;ShowMessage(&apos;Обновление прошло удачно!&apos;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;// перезапускаемся или что-то еще &lt;br /&gt;&amp;nbsp;&amp;nbsp;// ..................................................... &lt;br /&gt;&amp;nbsp;&amp;nbsp;end; &lt;br /&gt;&amp;nbsp;&amp;nbsp;finally IU.Free; end; &lt;br /&gt; end; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
			<link>https://my-programm.ucoz.net/news/proverka_obnovlenija_delphi/2011-11-07-11</link>
			<category>Delphi</category>
			<dc:creator>vavilov8</dc:creator>
			<guid>https://my-programm.ucoz.net/news/proverka_obnovlenija_delphi/2011-11-07-11</guid>
			<pubDate>Mon, 07 Nov 2011 09:20:39 GMT</pubDate>
		</item>
	</channel>
</rss>