<?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>LoSoft Blog &#187; PHP</title>
	<atom:link href="http://www.losoft.org/blog/category/coding/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.losoft.org/blog</link>
	<description>Linux, Mac OS, programowanie ...</description>
	<lastBuildDate>Fri, 03 Dec 2010 20:29:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Password Generator</title>
		<link>http://www.losoft.org/blog/2009/11/password-generator/</link>
		<comments>http://www.losoft.org/blog/2009/11/password-generator/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 23:52:05 +0000</pubDate>
		<dc:creator>lookout</dc:creator>
				<category><![CDATA[Mixed]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.losoft.org/blog/?p=1746</guid>
		<description><![CDATA[Pojawilo sie nowe narzedzie w sekcji Tools. Password Generator umozliwia generowanie zarowno prostych hasel alfa-numerycznych, jak i bardziej zlozonych zawierajacych znaki specjalne. Ciekawa moze okazac sie mozliwosc definiowania wlasnego ciagu znakow, na podstawie ktorego zostanie wygenerowane haslo. Moga to byc limitowane znaki specjalne, badz znaki narodowe takie jak ĄĆĘŁŃÓŚŹ ąćęłńóśź ÄÖÜ äöü. Program umozliwia wygenerowanie [...]]]></description>
			<content:encoded><![CDATA[<p>Pojawilo sie nowe narzedzie w sekcji Tools. Password Generator umozliwia generowanie zarowno prostych hasel alfa-numerycznych, jak i bardziej zlozonych zawierajacych znaki specjalne. Ciekawa moze okazac sie mozliwosc definiowania wlasnego ciagu znakow, na podstawie ktorego zostanie wygenerowane haslo. Moga to byc limitowane znaki specjalne, badz znaki narodowe takie jak <span class="notranslate code">ĄĆĘŁŃÓŚŹ ąćęłńóśź ÄÖÜ äöü</span>. Program umozliwia wygenerowanie jednorazowo do 100 hasel o dlugosci do 32 znakow.</p>
<p><a rel="lightbox[p_1746]" href="http://www.losoft.org/blog/wp-content/uploads/2009/11/passwd-gen.png"><img src="http://www.losoft.org/blog/wp-content/uploads/2009/11/passwd-gen-300x287.png" alt="passwd-gen" title="passwd-gen" width="300" height="287" class="aligncenter size-medium wp-image-1751" /></a></p>
<p><a href="http://www.losoft.org/blog/tools/password-generator/" title="Password Generator">Zobacz jak to dziala</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.losoft.org/blog/2009/11/password-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Raportowanie bledow strony klienta</title>
		<link>http://www.losoft.org/blog/2009/11/raportowanie-bledow-strony-klienta/</link>
		<comments>http://www.losoft.org/blog/2009/11/raportowanie-bledow-strony-klienta/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 18:24:45 +0000</pubDate>
		<dc:creator>lookout</dc:creator>
				<category><![CDATA[JS/AJAX]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[programowanie]]></category>

		<guid isPermaLink="false">http://www.losoft.org/blog/?p=1585</guid>
		<description><![CDATA[Back-end aplikacji webowej, mozna kontrolowac przegladajac raporty i logi, lecz nijak ma sie to do front-endu wyswietlanego po stronie klienta. Nie dowiemy sie czy i kiedy wystapi blad, dopoki jakis nawiedzony klient nie zwymysla nam do sluchawki, chyba, ze mamy 105 srodowisk testowych, na ktorych mozemy sprawdzic kazda funkcjonalnosc aplikacji. I tutaj nasuwa sie pytanie, [...]]]></description>
			<content:encoded><![CDATA[<p>Back-end aplikacji webowej, mozna kontrolowac przegladajac raporty i logi, lecz nijak ma sie to do front-endu wyswietlanego po stronie klienta. Nie dowiemy sie czy i kiedy wystapi blad, dopoki jakis nawiedzony klient nie zwymysla nam do sluchawki, chyba, ze mamy 105 srodowisk testowych, na ktorych mozemy sprawdzic kazda funkcjonalnosc aplikacji.</p>
<p>I tutaj nasuwa sie pytanie, czy nie ma innej mozliwosci?<br />
Sa, a to jedna z nich, dzieki asynchronicznym zapytaniom, raport o bledzie klienta trafi do back-endu, i zapisany zostanie, do bazki czy pliku logow.</p>
<h3>Przechwytywanie bledow</h3>
<p>1. Dodajemy wymagane pliki bibliotek</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;http://www.losoft.org/blog/download/ajax/loajax_v1.1.js&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>plik mozna pobrac z dzialu <a href="http://www.losoft.org/blog/download-page/" title="Download page" target="_blank">Download</a>, albo zamiast klasy loAJAX, linkujemy wlasnego wrappera ajax.</p>
<p>2. Tworzymy metode akcyjna zdarzenia <span class="notranslate code">window.onerror</span></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// on/off powiadomienie klienta o bledzie</span>
<span style="color: #003366; font-weight: bold;">var</span> suppressErrors <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// nowy obiekt ajax</span>
<span style="color: #003366; font-weight: bold;">var</span> ajax <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> loAJAX<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;http://www.losoft.org/blog/examples/ajax/errorreport.php&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> AJAX_POST<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// akcja zdarzenia onerror</span>
<span style="color: #003366; font-weight: bold;">function</span> errorReport<span style="color: #009900;">&#40;</span>msg<span style="color: #339933;">,</span> url<span style="color: #339933;">,</span> lineNumber<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	ajax.<span style="color: #660066;">reset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ajax.<span style="color: #660066;">addParam</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;msg&quot;</span><span style="color: #339933;">,</span> msg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ajax.<span style="color: #660066;">addParam</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">,</span> url<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ajax.<span style="color: #660066;">addParam</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;lineNumber&quot;</span><span style="color: #339933;">,</span> lineNumber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ajax.<span style="color: #660066;">request</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>suppressErrors<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Error occurred: &quot;</span> <span style="color: #339933;">+</span> msg <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>URL: &quot;</span> <span style="color: #339933;">+</span> url <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>Line Number: &quot;</span> <span style="color: #339933;">+</span> lineNumber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>3. Podpiecie akcji</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #000066;">onerror</span> <span style="color: #339933;">=</span> errorReport<span style="color: #339933;">;</span></pre></div></div>

<p>Jak mamy juz gotowa metode, to teraz &#8230; <span id="more-1585"></span>zajmijmy sie odebraniem raportu po stronie serwera</p>
<p>4. Skrypt naslychujacy w PHP</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;msg&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;url&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$lineNumber</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;lineNumber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// tutaj zapis do pliku, bazki, lub ...</span>
<span style="color: #666666; font-style: italic;">// naprzyklad wysylamy sformatowana wiadomosc do klienta</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;AJAX Response.<span style="color: #000099; font-weight: bold;">\n</span>Error occurred: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$msg</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>URL: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$url</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>Line Number: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$lineNumber</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Aby wyswietlic wynik dzialania, mozemy podpiac listenera przed wywolaniem metody <span class="notranslate code">ajax.request();</span> w ten sposob</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">ajax.<span style="color: #660066;">setListener</span><span style="color: #009900;">&#40;</span>ajaxListener<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>tego wlasnie nasluchiwacza</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// funkcja listenera</span>
<span style="color: #003366; font-weight: bold;">function</span> ajaxListener<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>ajax.<span style="color: #660066;">xmlHttp</span>.<span style="color: #660066;">readyState</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>ajax.<span style="color: #660066;">xmlHttp</span>.<span style="color: #660066;">responseText</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Testujemy&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.losoft.org/blog/2009/11/raportowanie-bledow-strony-klienta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konfiguracja Apache, PHP, MySQL na Ubuntu</title>
		<link>http://www.losoft.org/blog/2009/10/konfiguracja-apache-php-mysql-na-ubuntu/</link>
		<comments>http://www.losoft.org/blog/2009/10/konfiguracja-apache-php-mysql-na-ubuntu/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 19:42:46 +0000</pubDate>
		<dc:creator>lookout</dc:creator>
				<category><![CDATA[Konfiguracja]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Programy]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.losoft.org/blog/?p=1034</guid>
		<description><![CDATA[Dzisiaj, wpisik na temat konfiguracji Apache do wspolpracy z interperterem PHP i bazka MySQL. Dla poczatkujacych koderow PHP jak znalazl. 1. Instalujemy Apache czlowiek@maszyna:~$ sudo apt-get install apache2 2. Testujemy Apache czlowiek@maszyna:~$ wget -q http://localhost -O /tmp/atest &#38;&#38; cat /tmp/atest jak dostaniemy cos podobnego: &#60;html&#62;&#60;body&#62;&#60;h1&#62;It works!&#60;/h1&#62;&#60;/body&#62;&#60;/html&#62; to serwer dziala. 3. Instalujemy PHP, moda do Apache [...]]]></description>
			<content:encoded><![CDATA[<p>Dzisiaj, wpisik na temat konfiguracji Apache do wspolpracy z interperterem PHP i bazka MySQL. Dla poczatkujacych koderow PHP jak znalazl. </p>
<p>1. Instalujemy Apache</p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">sudo apt-get install apache2</span>
</pre>
<p>2. Testujemy Apache</p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">wget -q http://localhost -O /tmp/atest &amp;&amp; cat /tmp/atest</span>
</pre>
<p>jak dostaniemy cos podobnego: <span class="notranslate code">&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</span> to serwer dziala.</p>
<p>3. Instalujemy PHP, moda do Apache i konektor do MySQL&#8217;a</p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">sudo apt-get install php5 libapache2-mod-php5 php5-mysql</span>
</pre>
<p>4. Testujemy PHP, na poczatek tworzymy index.php</p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">sudo nano /var/www/index.php</span>
</pre>
<p>wklepujemy to</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;It works!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>CTRL+O, CTRL+X, restartujemy Apache (w przeciwnym wypadku serwer poda nam ten plik, cale szczescie nie ma w nim hasel <img src='http://www.losoft.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">sudo /etc/init.d/apache2 restart</span>
</pre>
<p>pobieramy kontent</p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">wget -q http://localhost/index.php -O /tmp/atest &amp;&amp; cat /tmp/atest</span>
</pre>
<p>jak dostaniemy cos podobnego: <span class="notranslate code">It works!</span> to php dziala.</p>
<p>5. Teraz czas na MySQL &#8211; instalujemy bazke</p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">sudo apt-get install mysql-server-5.1</span>
</pre>
<p>kiedy instalator poprosi o haslo, podajemy unikalne <img src='http://www.losoft.org/blog/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </p>
<p>6. Testujemy MySQL&#8217;a</p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">sudo nano /var/www/dbtest.php</span>
</pre>
<p>wklejamy to</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'localhost'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'root'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'jakiessupertajnehaslo'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'  '</span><span style="color: #339933;">,</span> <span style="color: #990000;">mysql_stat</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>w wyniku powinnismy dostac status serwera.</p>
<p>7. I na koniec kompleksowy test <img src='http://www.losoft.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">sudo nano /var/www/phpinfo.php</span>
</pre>
<p>wklejamy to</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">phpinfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>i po wpisaniu w przegladarce <a href="http://localhost/phpinfo.php" title="phpinfo" target="_blank">http://localhost/phpinfo.php</a> dostaniemy pelny raport systemu.</p>
<p>Teraz mozemy juz zaczynac zabawe z PHP, na poczatek polecam <a href="http://pl.php.net/" title="php.net" target="_blank">manual</a> z php.net.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.losoft.org/blog/2009/10/konfiguracja-apache-php-mysql-na-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

