<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>siec.com.pl</title>
	<atom:link href="http://www.siec.com.pl/feed" rel="self" type="application/rss+xml" />
	<link>http://www.siec.com.pl</link>
	<description>skrypty, rozwiązania, pomysły...</description>
	<lastBuildDate>Fri, 20 Aug 2010 20:06:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Konfiguracja ProFTPd</title>
		<link>http://www.siec.com.pl/konfiguracja-proftpd.html</link>
		<comments>http://www.siec.com.pl/konfiguracja-proftpd.html#comments</comments>
		<pubDate>Fri, 20 Aug 2010 13:54:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.siec.com.pl/?p=108</guid>
		<description><![CDATA[Nie będę rozpisywał się tutaj nad szczegółową konfiguracja serwera ftp protpd, a jedynie zwrócę uwagę na kilka opcji, które wydają się użyteczne. Konfiguracja znajduję się w pliku: /etc/proftpd/proftpd.conf. 1. zmiana portu na inny niż stadardowy: Port                            21 2. możliwość logowania się na [...]]]></description>
			<content:encoded><![CDATA[<p>Nie będę rozpisywał się tutaj nad szczegółową konfiguracja serwera ftp protpd, a jedynie zwrócę uwagę na kilka opcji, które wydają się użyteczne.</p>
<p><span id="more-108"></span></p>
<p>Konfiguracja znajduję się w pliku: /etc/proftpd/proftpd.conf.</p>
<p>1. zmiana portu na inny niż stadardowy:</p>
<pre>Port                            21</pre>
<p>2. możliwość logowania się na konto ftp jeżeli w passwd użytkownik ma ustawioną powłokę /bin/false</p>
<pre>RequireValidShell              off</pre>
<p>lub dodanie do pliku /etc/shells odpowiedniego wpisu</p>
<p>3. opcja która nie zezwala na przechodzenie w inne katalogi niż katalog domowy</p>
<pre>DefaultRoot                    ~</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/konfiguracja-proftpd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Odzyskiwanie hasła root do bazy MySQL</title>
		<link>http://www.siec.com.pl/odzyskiwanie-hasla-root-do-bazy-mysql.html</link>
		<comments>http://www.siec.com.pl/odzyskiwanie-hasla-root-do-bazy-mysql.html#comments</comments>
		<pubDate>Wed, 18 Aug 2010 20:05:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.siec.com.pl/?p=104</guid>
		<description><![CDATA[Pewnie nie raz zdarzyło się zapomnieć hasła roota do bazy danych MySQL. Jednak istnieje prosta metoda odzyskania tego hasła. Oczywiście trzeba mieć dostęp do administratora systemu. Z linii poleceń wykonujemy następujące komendy: 1. zatrzymujemy serwer mysql root:/# /etc/init.d/mysql stop 2. startujemy serwer bez hasła root:/# mysqld_safe --skip-grant-tables &#38; 3. podłączamy się do serwer mysql jako [...]]]></description>
			<content:encoded><![CDATA[<p>Pewnie nie raz zdarzyło się zapomnieć hasła roota do bazy danych MySQL. Jednak istnieje prosta metoda odzyskania tego hasła. Oczywiście trzeba mieć dostęp do administratora systemu. Z linii poleceń wykonujemy następujące komendy:</p>
<p><span id="more-104"></span></p>
<p>1. zatrzymujemy serwer mysql</p>
<pre>root:/# /etc/init.d/mysql stop</pre>
<p>2. startujemy serwer bez hasła</p>
<pre>root:/# mysqld_safe --skip-grant-tables &amp;</pre>
<p>3. podłączamy się do serwer mysql jako root bez hasła</p>
<pre>root:/# mysql -u root</pre>
<p>4. i teraz wykonujemy polecenia w mysql&#8217;u które ustawią nam nowe hasło na roota</p>
<pre>mysql&gt; use mysql;
mysql&gt; update user set password=PASSWORD("haslo") where user='root';
mysql&gt; flush privileges;
mysql&gt; quit;</pre>
<p>5. po restarcie mysql&#8217;a możemy logować się na root&#8217;a z nowym hasłem</p>
<pre>root:/# /etc/init.d/mysql restart
root:/# mysql -u root -p</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/odzyskiwanie-hasla-root-do-bazy-mysql.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skrypt rejestrujący wejścia Googlebot&#8217;a</title>
		<link>http://www.siec.com.pl/skrypt-rejestrujacy-wejscia-googlebota.html</link>
		<comments>http://www.siec.com.pl/skrypt-rejestrujacy-wejscia-googlebota.html#comments</comments>
		<pubDate>Mon, 24 May 2010 16:10:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Skrypty]]></category>
		<category><![CDATA[GoogleBot]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=54</guid>
		<description><![CDATA[Prosty skrypt w PHP, który rejestruje i zapisuje wejścia botów: Googlebot&#8217;a, Yahoo czy innych w zależności od konfiguracji. Aby uruchomić skrypt należy utworzyć plik stats.php i wkleić do niego poniższy kod: stats.php &#60;?php // funkcja która sprawdza czy odwiedzający jest botem, jeżeli jest zwraca true function is_bot(){ $roboty = array('google','yahoo','msn'); $regex = '('.implode($roboty, ')&#124;(').')'; return [...]]]></description>
			<content:encoded><![CDATA[<p>Prosty skrypt w PHP, który rejestruje i zapisuje wejścia botów: Googlebot&#8217;a, Yahoo czy innych w zależności od konfiguracji. Aby uruchomić skrypt należy utworzyć plik stats.php i wkleić do niego poniższy kod:</p>
<p><span id="more-54"></span></p>
<p>stats.php</p>
<pre>&lt;?php
// funkcja która sprawdza czy odwiedzający jest botem, jeżeli jest zwraca true
function is_bot(){
 $roboty = array('google','yahoo','msn');
 $regex = '('.implode($roboty, ')|(').')';
 return eregi($regex, $_SERVER['HTTP_USER_AGENT']);
}
// jeżeli odwiedzający jest botem wykonywany jest poniższy kod
if (is_bot()){
 //zapisanie ip do zmiennej
 $ip = $_SERVER['REMOTE_ADDR'];
 //zapisanie hosta do zmiennej
 $host = gethostbyaddr($ip);
 //nazwa pliku na pdostawie daty
 $file_name=date("Y-m-d").".log";
 //pobranie agenta jakim sie przedstawia bot
 $user_agent=$_SERVER['HTTP_USER_AGENT'];
 //pobranie nazwy url którego odwiedził bot
 $url=$_SERVER["REQUEST_URI"];
 //stworzenie linijki wpisuj
 $wpis=date("Y-m-d H:i:s")." | ".$host." | ".$ip." | ".$url." | ".$user_agent."\n";
 //sciezka zapisu pliku logowania
 $nazwa_pliku = "logi/$file_name";
   //jeżeli plik istnieje dopisanie linijki wpisu, jezeli nie, stworzenie i dopisanie linijki wpisu
   if (file_exists($nazwa_pliku)) {
   $plik = fopen($nazwa_pliku, 'a');
   fputs($plik,$wpis);
   fclose($plik);
   } else {
    $pk = fopen($nazwa_pliku, 'w');
    fputs($pk,$wpis);
    fclose($pk);
   }
}
?&gt;</pre>
<p>Teraz wystarczy dodać skrypt na każdej stronie czy podstronie na której chcemy widzieć czy wchodził jakiś bot.</p>
<pre>&lt;php
include ('stats.php');
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/skrypt-rejestrujacy-wejscia-googlebota.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zaokrąglanie liczb &#8211; PHP</title>
		<link>http://www.siec.com.pl/zaokraglanie-liczb-php.html</link>
		<comments>http://www.siec.com.pl/zaokraglanie-liczb-php.html#comments</comments>
		<pubDate>Mon, 24 May 2010 09:51:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.siec.com.pl/?p=81</guid>
		<description><![CDATA[Wbudowane funkcje, które służą zaokrągleniu danej liczby: round(), ceil(), floor(), number_format(). round() &#8211; zaokrągla liczbę standardowym sposobem, w górę jak jest powyżej 0,5 a dół jak jest poniżej. Funkcja przyjmuje trzy wartości: round(float$wartosc, int $precyzja,  int $tryb) wartość &#8211; zmienna do zaokrąglenia, precyzja - ilość miejsc po przecinku do jakich zaokrąglamy, tryb &#8211; jeden z [...]]]></description>
			<content:encoded><![CDATA[<p>Wbudowane funkcje, które służą zaokrągleniu danej liczby: <strong>round</strong>(), <strong>ceil</strong>(), <strong>floor</strong>(), <strong>number_format</strong>().</p>
<p><span id="more-81"></span></p>
<p><strong>round</strong>() &#8211; zaokrągla liczbę standardowym sposobem, w górę jak jest powyżej 0,5 a dół jak jest poniżej. Funkcja przyjmuje trzy wartości: round(float$wartosc, int $precyzja,  int $tryb)</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">wartość</span> &#8211; zmienna do zaokrąglenia,</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">precyzja </span>- ilość miejsc po przecinku do jakich zaokrąglamy,</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">tryb</span> &#8211; jeden z trybów PHP_ROUND_HALF_UP, PHP_ROUND_HALF_DOWN, PHP_ROUND_HALF_EVEN, lub PHP_ROUND_HALF_ODD, <strong>uwaga ta opcja działa w wersji PHP &gt; 5.3.0</strong></p>
<p>Przykłady:</p>
<pre>&lt;?php
 echo round(1.3);        // 1
 echo round(1.5);        // 2
 echo round(1.7);        // 2
 echo round(1.6, 0);     // 2
 echo round(2.95551, 3); // 2.956
 echo round(32411, -3);  // 32000
 echo round(2.045, 2);   // 2.05
 echo round(2.055, 2);   // 2.06
 echo round(1.5, 0, PHP_ROUND_HALF_UP);   // 2
 echo round(1.5, 0, PHP_ROUND_HALF_DOWN); // 1
 echo round(1.5, 0, PHP_ROUND_HALF_EVEN); // 2
 echo round(1.5, 0, PHP_ROUND_HALF_ODD);  // 1
?&gt;</pre>
<p><strong>ceil()</strong> &#8211; zaokrąglenie liczby w górę</p>
<pre>&lt;?php
echo ceil(1.1);   // 2
echo ceil(1.99);  // 2
echo ceil(-1.14); // -1
?&gt;</pre>
<p><strong>floor()</strong> &#8211; zaokrąglenie liczny w dół</p>
<pre>&lt;?php
echo floor(1.1);    // 1
echo floor(1.99);   // 1
echo floor(-1.14);  // -2
?&gt;</pre>
<p><strong>number_format()</strong> &#8211; funkcja, która nadaje format liczby tysięcznej, przyjmuje wartości number_format(float $wartosc, int $po_przecinku, string $separator,  string $separator_tysiaca)</p>
<p style="padding-left: 30px;">$wartość &#8211; zmienna do formatowania,</p>
<p style="padding-left: 30px;">$po_przecinku &#8211; ile cyfr po przecinku wyświetlamy,</p>
<p style="padding-left: 30px;">$separator &#8211; separator oddzielający liczbę całkowita od ułamkowej, zazwyczaj kropka lub przecinek,</p>
<p style="padding-left: 30px;">$separator &#8211; separator liczby tysięcznych, zazwyczaj spacja</p>
<pre>&lt;?php
 $liczba = 1234.56789;
 // format angielski
 $format_angielski = number_format($liczba);
 // 1,235
 // format polski
 $format_polski = number_format($liczba, 2, ',', ' ');
 // 1 234,57
 // format angielski bez spacji pomiędzy tysiącami
 $format_angielski_a = number_format($liczba, 2, '.', '');
 // 1234.57
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/zaokraglanie-liczb-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ciekawe wtyczki WordPress&#8217;a</title>
		<link>http://www.siec.com.pl/ciekawe-wtyczki-wordpressa.html</link>
		<comments>http://www.siec.com.pl/ciekawe-wtyczki-wordpressa.html#comments</comments>
		<pubDate>Thu, 20 May 2010 12:52:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=55</guid>
		<description><![CDATA[Po zainstalowaniu WordPress&#8217;a, dwie rzeczy który powinniśmy zrobić to zamiana wyglądu (standardowy nie jest za ciekawy, a masa gotowych tematów dostępna jest w sieci) oraz powinniśmy zainstalować odpowiednie wtyczki (pluginy). Poniżej prezentuje wtyczki (pluginy) warte instalacji: Evermore &#8211; plugin który ucina artykuł na stronie głównej do akapitu lub ilości zadanych słów (można konfigurować) All in [...]]]></description>
			<content:encoded><![CDATA[<p>Po zainstalowaniu WordPress&#8217;a, dwie rzeczy który powinniśmy zrobić to zamiana wyglądu (standardowy nie jest za ciekawy, a masa gotowych tematów dostępna jest w sieci) oraz powinniśmy zainstalować odpowiednie wtyczki (pluginy).</p>
<p><span id="more-55"></span></p>
<p>Poniżej prezentuje wtyczki (pluginy) warte instalacji:</p>
<p><strong>Evermore</strong> &#8211; plugin który ucina artykuł na stronie głównej do akapitu lub ilości zadanych słów (można konfigurować)</p>
<p><strong>All in One SEO Pack</strong> &#8211; plugin umożliwiający konfigurowanie tytułów opisów stron &#8211; strona staje się przyjazna wyszukiwarkom</p>
<p><strong>Google XML Sitemap</strong> &#8211; plugin generujący mapę strony w formacie xml</p>
<p><strong>WP Page Numbers</strong> &#8211; pokazuje numeracje stron zamiast linków &#8222;następna&#8221;, &#8222;poprzednia&#8221;</p>
<p><strong>StatPress</strong> &#8211; rozbudowane statystyki wizyt na blogu &#8211; po polsku</p>
<p>Wtyczki te zostały przetestowane z WordPress&#8217;em 2.9.2</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/ciekawe-wtyczki-wordpressa.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zmiana MAC adresu karty sieciowej</title>
		<link>http://www.siec.com.pl/zmiana-mac-adresu-karty-sieciowej.html</link>
		<comments>http://www.siec.com.pl/zmiana-mac-adresu-karty-sieciowej.html#comments</comments>
		<pubDate>Sun, 28 Mar 2010 12:25:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=61</guid>
		<description><![CDATA[MAC adres czyli uniklany identyfikator sprzętowy karty sieciowej o długości 48 bitów. Przedstawiany jest on w zapisie heksadecymalnym, przykład: AB:12:34:45:1A:2B. Czasami potrzebujemy ten MAC adres zmienić na inny, a sposobów jest kilka. Pod Windowsem można zobaczyć w sterowniku karty sieciowej czy mamy taka możliwość, jeżeli tak w zakładce &#8222;Zaawansowane&#8221; powinna pojawić się opcja &#8222;Network Address&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p>MAC adres czyli uniklany identyfikator sprzętowy karty sieciowej o długości 48 bitów. Przedstawiany jest on w zapisie heksadecymalnym, przykład: AB:12:34:45:1A:2B.</p>
<p><span id="more-61"></span></p>
<p>Czasami potrzebujemy ten MAC adres zmienić na inny, a sposobów jest kilka. Pod Windowsem można zobaczyć w sterowniku karty sieciowej czy mamy taka możliwość, jeżeli tak w zakładce &#8222;Zaawansowane&#8221; powinna pojawić się opcja &#8222;Network Address&#8221;. Po wybraniu tej opcji, należy ustawić porawną wartość adresu fizycznego karty.</p>
<p>W karcie sieciowej Broadcom wygląda to tak:</p>
<p><a href="http://www.siec.com.pl/wp-content/uploads/2010/05/zamiana_maca.jpg"><img class="aligncenter size-full wp-image-65" title="Właściwości karty sieciowej" src="http://www.siec.com.pl/wp-content/uploads/2010/05/zamiana_maca.jpg" alt="Właściwości karty sieciowej" width="507" height="458" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">
<p>Pod Linuxem sprawa wygląda jeszcze prościej:</p>
<p><code>ifconfig eth0 down<br />
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX<br />
ifconfig eth0 up<br />
/etc/init.d/networking restart</code></p>
<p>eth0 jest to interfejs karty sieciowej której chcemy zmienić MAC adres.</p>
<p>Natomiast jeżeli chcemy aby zmiana była wykonywana za każdy startem systemy to dodajemy poniższy wpis do pliku /etc/network/interfaces:</p>
<p><code>iface eth0 inet static<br />
hwaddress ether XX:XX:XX:XX:XX:XX</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/zmiana-mac-adresu-karty-sieciowej.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Funkcja sprawdzająca poprawność NIP w PHP</title>
		<link>http://www.siec.com.pl/funkcja-sprawdzajaca-poprawnosc-nip-w-php.html</link>
		<comments>http://www.siec.com.pl/funkcja-sprawdzajaca-poprawnosc-nip-w-php.html#comments</comments>
		<pubDate>Mon, 15 Mar 2010 12:23:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Skrypty]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=58</guid>
		<description><![CDATA[NIP czyli Numer Identyfikacji Podatkowej, w Polsce każdy podatnik posiada taki właśnie numer. W wielu serwisach, przy rejestracji wymagane pole to właśnie taki numer, potrzebny on jest przeważnie w celu wystawienia faktury. Czy można napisać funkcję która sprawdzi porawność numeru NIP? Oczywiście, ponieważ numer NIP generowany jest na podstawie znanego algorytmu. NIP składa się z [...]]]></description>
			<content:encoded><![CDATA[<p>NIP czyli Numer Identyfikacji Podatkowej, w Polsce każdy podatnik posiada taki właśnie numer. W wielu serwisach, przy rejestracji wymagane pole to właśnie taki numer, potrzebny on jest przeważnie w celu wystawienia faktury.</p>
<p><span id="more-58"></span></p>
<p>Czy można napisać funkcję która sprawdzi porawność numeru NIP? Oczywiście, ponieważ numer NIP generowany jest na podstawie znanego algorytmu. NIP składa się z dziesięciu cyfr, ostatnia cyfra to suma kontrolna.</p>
<pre>function sprawdzNIP($nip)
{
//sprawdzamy czy $nip składa się z 10 cyfer
if (strlen($nip) != 10)
{
return false;
}
//wrzucamy wagi w tablicę
$wagi = array(6, 5, 7, 2, 3, 4, 5, 6, 7);
$suma=0;
//mnożymy każdą z cyfer po kolei przez kolejne wagi o sumujemy
for ($i = 0; $i &lt; 9; $i++)
{
$suma += $wagi[$i] * $nip[$i];
}
//obliczamy resztę z dzielenia przez 11
$reszta = $suma % 11;
//sprawdzamy czy suma kontrolna się zgadza
$sumakontrolna=($reszta == 10)?0:$reszta;
if ($sumakontrolna == $nip[9])
{
return true;
}
return false;
}
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/funkcja-sprawdzajaca-poprawnosc-nip-w-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Operacje na datach w PHP</title>
		<link>http://www.siec.com.pl/operacje-na-datach-w-php.html</link>
		<comments>http://www.siec.com.pl/operacje-na-datach-w-php.html#comments</comments>
		<pubDate>Mon, 15 Mar 2010 12:19:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=52</guid>
		<description><![CDATA[Operacje na datach w skryptach PHP najlepiej, naszybciej i najbezpieczniej wykonywać już po stronie MySQL&#8217;a, jednak jeżeli nie jest to możliwe, do pomocy przychodzą nam wbudowane w język PHP funkcje, które ułatwią nam te operacje: strtotime() i date(). &#60;?php $data = '2010-01-01'; $data = strtotime($data); $data = strtotime('+2 year, +1 days', $data); ?&#62; Chcemy do zmiennej $data [...]]]></description>
			<content:encoded><![CDATA[<p>Operacje na datach w skryptach PHP najlepiej, naszybciej i najbezpieczniej wykonywać już po stronie MySQL&#8217;a, jednak jeżeli nie jest to możliwe, do pomocy przychodzą nam wbudowane w język PHP funkcje, które ułatwią nam te operacje: <strong>strtotime()</strong> i <strong>date()</strong>.</p>
<p><span id="more-52"></span></p>
<p><code>&lt;?php<br />
$data = '2010-01-01';<br />
$data = strtotime($data);<br />
$data = strtotime('+2 year, +1 days', $data);<br />
?&gt;</code></p>
<p>Chcemy do zmiennej $data dodać 2 lata i 1 dzień. Najpierw zamieniamy zmienna $data na unixowy znacznik czasu, później wykonujemy operacje na unixowym znaczniku czasu dodawania (2 lata i jeden dzień). No i pod zmienną data mamy już właściwy wyniki, jednak zapisany w formacie unixowego znacznika czasu. Tutaj nam przychodzi z pomocą funkcja data(), która ma na celu przeformatowanie daty z unixowego znacznika czasu, na takie format jaki chcemy.</p>
<p><code>&lt;?php<br />
echo date('Y-m-d', $data);<br />
?&gt;</code></p>
<p>W funkcji tej podajemy format w jakim ma być wyświetlona data, jak również zmienną, którą chcemy przeformatować (czyli ta naszą data w formacie unixowego znacznika czasu. Wynikiem kodu wykonanego powyżej będzie: <strong>2012-01-02</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/operacje-na-datach-w-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jak przekierować stronę bez www na www</title>
		<link>http://www.siec.com.pl/jak-przekierowac-strone-bez-www-na-www.html</link>
		<comments>http://www.siec.com.pl/jak-przekierowac-strone-bez-www-na-www.html#comments</comments>
		<pubDate>Thu, 11 Mar 2010 12:03:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[htaccess]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=43</guid>
		<description><![CDATA[Adresy stron internetowych zazwyczaj zaczynają sie od liter www np.: www.siec.com.pl, jednak tak naprawdę jest to subdomena domeny siec.com.pl czyli taka sama subdomena jak test.siec.com.pl. W celu uniknięcia pomyłek przyjęło się, że adres z www jak i bez www to te same adresy. Co więc należy zrobić, aby automatycznie przekierować użytkownika na adres z www. [...]]]></description>
			<content:encoded><![CDATA[<p>Adresy stron internetowych zazwyczaj zaczynają sie od liter www np.: www.siec.com.pl, jednak tak naprawdę jest to subdomena domeny siec.com.pl czyli taka sama subdomena jak test.siec.com.pl.</p>
<p><span id="more-43"></span></p>
<p>W celu uniknięcia pomyłek przyjęło się, że adres z www jak i bez www to te same adresy. Co więc należy zrobić, aby automatycznie przekierować użytkownika na adres z www. Wszystko kryje się w magicznym pliku .htaccess, jeżeli mamy dostęp do tego pliku, a nie zawsze jest (wszystko zależy od usługodawcy hostingu), to wystarczy w katalogu głównym danej domeny dodać plik .htaccess z wpisem:</p>
<p><code>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteCond %{HTTP_HOST} !^www.<br />
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]<br />
&lt;/IfModule&gt;</code></p>
<p>Poniżej zamieszczę jeszcze jeden wpis jaki można dodać do katalogu w celu przekierowania danej domeny na inny katalog niż ustawiony jest w DocumentRoot:</p>
<p><code>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine on<br />
RewriteRule    ^$ strona_www/ [L]<br />
RewriteRule    (.*) strona_www/$1 [L]<br />
&lt;/IfModule&gt;</code></p>
<p>Wpis ten umieszczamy w katalogu domeny, natomiast cała strona umieszczona już jest w katalogu strona_www.</p>
<p>Przykładem zastosowania pierwszego wpisu i przekierowania strona na adres z www jest obecna strona: siec.com.pl.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/jak-przekierowac-strone-bez-www-na-www.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rsh, rlogin, rexec &#8211; konfiguracja</title>
		<link>http://www.siec.com.pl/rsh-rlogin-rexec-konfiguracja.html</link>
		<comments>http://www.siec.com.pl/rsh-rlogin-rexec-konfiguracja.html#comments</comments>
		<pubDate>Wed, 10 Mar 2010 12:00:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rsh]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=41</guid>
		<description><![CDATA[rsh &#8211; czyli remote shell, zdalny dostęp do powłoki shell, czyli krótko mówiąc zdalne wykonywanie poleceń, rsh używa portu 514, rlogin &#8211; umożliwia logowanie na zdalnym komputerze &#8211; niezalecany, gdyż hasło przesyłane jest otwartym tekstem. Poniżej prosty przykład konfiguracji rsh: rsh -l user ip_zdalej_maszyny "ls" Poniżej przestawiam konfigurację jaką należy wykonać na systemie RHEL Server [...]]]></description>
			<content:encoded><![CDATA[<p>rsh &#8211; czyli remote shell, zdalny dostęp do powłoki shell, czyli krótko mówiąc zdalne wykonywanie poleceń, rsh używa portu 514, rlogin &#8211; umożliwia logowanie na zdalnym komputerze &#8211; niezalecany, gdyż hasło przesyłane jest otwartym tekstem. Poniżej prosty przykład konfiguracji rsh:</p>
<p><span id="more-41"></span></p>
<p><code>rsh -l user ip_zdalej_maszyny "ls"</code></p>
<p>Poniżej przestawiam konfigurację jaką należy wykonać na systemie RHEL Server w celu uruchomienia rsh, rlogin i rexec:</p>
<p>1. Instalujemy pakiet rsh-server.x86_64:</p>
<p><code>yum install rsh-server.x86_64</code></p>
<p>2. Zmieniamy wpis w /etc/xinetd.d/rsh z disable yes na no</p>
<p><code>service shell<br />
{<br />
socket_type             = stream<br />
wait                    = no<br />
user                    = root<br />
log_on_success          += USERID<br />
log_on_failure          += USERID<br />
server                  = /usr/sbin/in.rshd<br />
disable                 = yes<br />
}</code></p>
<p>3. Restartujemy xinetd:</p>
<p><code>/etc/init.d/xinetd restart</code></p>
<p>4. W /etc/securetty dodajemy wpis rsh, plik ten zawiera liste bezpiecznych terminali, czyli takich na które, możemy logować się jako root. Błąd jaki pojawia się w logach /var/log/secure gdy nie dokonamy tego wpisu, będzie wyglądał tak:</p>
<p><code>Mar 10 13:34:49 example.host rshd[1958]: pam_rhosts_auth(rsh:auth): allowed to root@example.clinet.host as root<br />
Mar 10 13:37:09 example.host rshd[1964]: pam_securetty(rsh:auth): access denied: tty 'rsh' is not secure !</code></p>
<p>5. Dodajmy wpisy z hostami, którę będą miały dostęp do zdalnego wykonywania poleceń -<strong>~/.rhosts</strong></p>
<p>6. Należy jeszcze sprawdzić ustawienia firewalla, czy nie blokuje portów na której działa rsh</p>
<p>7. Można przetestować maszynę zdalną z której chcemy wykonywać polecenia</p>
<p>8. W razie problemów pomocne nam będą logi /var/log/secure i /var/log/messages</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/rsh-rlogin-rexec-konfiguracja.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
