<?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>Yggdrasil server - drzewo światów &#187; php</title>
	<atom:link href="http://yggdrasil.pl/index.php/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://yggdrasil.pl</link>
	<description>Blog serwera yggdrasil.pl</description>
	<lastBuildDate>Sat, 31 Jul 2010 12:04:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Generowanie sygnaturek w PHP z użyciem GD</title>
		<link>http://yggdrasil.pl/index.php/2010/03/20/generowanie-sygnaturek-w-php-z-uzyciem-gd/</link>
		<comments>http://yggdrasil.pl/index.php/2010/03/20/generowanie-sygnaturek-w-php-z-uzyciem-gd/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 12:38:39 +0000</pubDate>
		<dc:creator>Thoran</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[grafika]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sygnaturka]]></category>

		<guid isPermaLink="false">http://yggdrasil.pl/?p=148</guid>
		<description><![CDATA[Pewnie nie raz chcielibyście pochwalić się znajomym swoimi osiągnięciami w jakiejś grze przez przeglądarkę. Wasza grafika chwały mogłoby wyglądać np. tak:

Takie efektowne odznaczenie można zrobić przy użyciu kodu PHP. Oczywiście może ono wyglądać totalnie inaczej, ale to już zależy od waszej fantazji. Poniżej możecie zobaczyć kod, który generuje podobne sygnaturki:


$id = 1; // Tutaj podajecie [...]]]></description>
			<content:encoded><![CDATA[<p>Pewnie nie raz chcielibyście pochwalić się znajomym swoimi osiągnięciami w jakiejś grze przez przeglądarkę. Wasza grafika chwały mogłoby wyglądać np. tak:</p>
<p><a href="http://yggdrasil.pl/wp-content/uploads/2010/03/666.png" rel="lightbox[148]"><img class="aligncenter size-full wp-image-149" title="666" src="http://yggdrasil.pl/wp-content/uploads/2010/03/666.png" alt="" width="343" height="250" /></a></p>
<p>Takie efektowne odznaczenie można zrobić przy użyciu kodu PHP. Oczywiście może ono wyglądać totalnie inaczej, ale to już zależy od waszej fantazji. Poniżej możecie zobaczyć kod, który generuje podobne sygnaturki:</p>
<p><span id="more-148"></span></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Tutaj podajecie ID dla którego chcecie wygenerować obrazek</span>
&nbsp;
<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Y-m-d&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$poziom</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$db</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">EXECUTE</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT id, user, rasa, klasa, level, avatar FROM players WHERE  id=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; LIMIT 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'adres/avatara/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'avatar'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$ext</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'avatar'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// u mnie avatar ma postać ID.ext więc takie rozwiązanie zadziała w innym wypadku trzeba użyć innej metody ^^</span>
<span style="color: #b1b100;">switch</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ext</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'png'</span><span style="color: #339933;">:</span>
<span style="color: #000088;">$avek</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefrompng</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'gif'</span><span style="color: #339933;">:</span>
<span style="color: #000088;">$avek</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'jpeg'</span><span style="color: #339933;">:</span>
<span style="color: #000088;">$avek</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromjpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'jpg'</span><span style="color: #339933;">:</span>
<span style="color: #000088;">$avek</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromjpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">default</span><span style="color: #339933;">:</span>
<span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$avek_width</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagesx</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$avek</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// sprawdzamy wymiary avatara</span>
<span style="color: #000088;">$avek_height</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagesy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$avek</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$img</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">343</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">250</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// tworzymy grafikę główną</span>
<span style="color: #000088;">$color1</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">244</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">250</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">251</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$color2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">255</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'user'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'user'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// wycinam pierwszą część imienia</span>
&nbsp;
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">18</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">30</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ISO-8859-2&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Kroniki Fallathanu'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// nanoszę na obrazek nazwę gry</span>
&nbsp;
<span style="color: #990000;">imagecopy</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #000088;">$avek</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">13</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">40</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$avek_width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$avek_height</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// nanoszę na obrazek avatar</span>
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">170</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">55</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color2</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'user'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' - '</span><span style="color: #339933;">.</span><span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// nanoszę na obrazek ID</span>
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">170</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">80</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ISO-8859-2&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Rasa: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'rasa'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// nanoszę na obrazek rasę</span>
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">170</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ISO-8859-2&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Klasa: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'klasa'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// nanoszę na obrazek klasę</span>
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">170</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">120</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ISO-8859-2&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Poziom: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'level'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// nanoszę na obrazek poziom</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Na opis koniecznie 15 znaków linijka</span>
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">170</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">160</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ISO-8859-2&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Najlepszy w grze'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">170</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">180</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ISO-8859-2&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'xxxxxxx'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">170</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">200</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ISO-8859-2&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'(xxxxxx)'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">240</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ISO-8859-2&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Oficjalne odznaczenie'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">imagettftext</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">222</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">240</span><span style="color: #339933;">,</span> <span style="color: #000088;">$color1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fonts/Maszyna.ttf'</span><span style="color: #339933;">,</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ISO-8859-2&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Data: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">imagepng</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/folder/zapisu/grafiki/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.png'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// zapisujemy plik na serwerze</span>
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">'&lt;img src=&quot;http://adres/obrazka/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.png&quot; alt=&quot;&quot; /&gt;'</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$poziom</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">Close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>W ten oto prosty sposób możemy stworzyć sygnaturki, odznaczenia dla graczy. Czcionkę użytą w przykładzie ściągniecie z załącznika.<br />
Jeśli chcemy użyć wszystkich możliwości biblioteki GD zapraszam do zapoznania się z tym artykułem:<br />
<a href="http://wortal.php.pl/wortal/artykuly/php/biblioteki/generowanie_grafiki_w_php" target="_blank">http://wortal.php.pl/wortal/artykuly/php/biblioteki/generowanie_grafiki_w_php</a></p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://yggdrasil.pl/index.php/2010/03/20/generowanie-sygnaturek-w-php-z-uzyciem-gd/' layout='button_count' show_faces='false' width='400' action='like' colorscheme='light' /></div>]]></content:encoded>
			<wfw:commentRss>http://yggdrasil.pl/index.php/2010/03/20/generowanie-sygnaturek-w-php-z-uzyciem-gd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jak pozwolić graczowi wybrać ID</title>
		<link>http://yggdrasil.pl/index.php/2010/03/18/jak-pozwolic-graczowi-wybrac-id/</link>
		<comments>http://yggdrasil.pl/index.php/2010/03/18/jak-pozwolic-graczowi-wybrac-id/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 11:08:44 +0000</pubDate>
		<dc:creator>Thoran</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[gildwars]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[skrypt]]></category>
		<category><![CDATA[vallheru]]></category>

		<guid isPermaLink="false">http://yggdrasil.pl/?p=140</guid>
		<description><![CDATA[Dodałem dzisiaj w Kronikach Fallathanu opcję, której nie widziałem w żadnej innej grze ;) Polega ona na tym, iż nowy (lub stary) gracz, który się rejestruje w grze, może sobie wybrać ID (oczywiście z tych, które mu gra umożliwia wybrać).
Zaletą takiego rozwiązania jest to, iż nie trzeba się martwić o potworne luki w numeracji, minusem [...]]]></description>
			<content:encoded><![CDATA[<p>Dodałem dzisiaj w Kronikach Fallathanu opcję, której nie widziałem w żadnej innej grze ;) Polega ona na tym, iż nowy (lub stary) gracz, który się rejestruje w grze, może sobie wybrać ID (oczywiście z tych, które mu gra umożliwia wybrać).</p>
<p>Zaletą takiego rozwiązania jest to, iż nie trzeba się martwić o potworne luki w numeracji, minusem jest to, że nowi gracze wymieszają się ze starymi. Oczywiście jeśli nie zwracamy uwagi na numerki to minus nie będzie dla nas żadnym minusem.</p>
<p><span id="more-140"></span>Aby dać graczom możliwość wyboru ID wystarczy prosty skrypt:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Wybieram wolne ID</span>
<span style="color: #000088;">$objPl</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$db</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">EXECUTE</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT id FROM players ORDER BY id ASC LIMIT 1000&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// pobieram istniejące id</span>
<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$arrList</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$objPl</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">EOF</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// istniejące ID ładuję do ładnie ponumerowanej tablicy</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$arrList</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$objPl</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$objPl</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">MoveNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$objPl</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">Close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// sprawdzam pola na których nie ma ID i zapisuje do tablicy</span>
<span style="color: #000088;">$z</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Wybieram oczywiście id, od którego ma zliczać, ja przyjąłem, że zależy mi na ID większych od 10</span>
<span style="color: #000088;">$arrId</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$z</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// Sprawdzamy 1000 pierwszych numerów (można dać inne wartości np. 5000)</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$z</span><span style="color: #339933;">,</span><span style="color: #000088;">$arrList</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// jeśli numerka nie ma w tablicy z istniejącymi ID to dopisujemy numerek do tablicy z wolnymi ID</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$arrId</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$z</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$z</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$z</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$z</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">// wyswietlam wolne ID</span>
<span style="color: #000088;">$strId</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$arrId</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$intId</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$strId</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$strId</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;option value=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$intId</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$intId</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/option&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">'&lt;select id=&quot;ident&quot; name=&quot;ident&quot;&gt;
'</span><span style="color: #339933;">.</span> <span style="color: #000088;">$strId</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">'
&lt;/select&gt;'</span><span style="color: #339933;">;</span></pre></div></div>

<p>Wrzucamy to do formularza rejestracji, dodajemy odpowiednie pole w tabeli rejestracyjnej (np. nowe_id), dopisujemy też kilka linijek w skrypcie rejestracyjnym i gotowe.</p>
<p>Jeśli są jakieś pytania proszę o komentarze.</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://yggdrasil.pl/index.php/2010/03/18/jak-pozwolic-graczowi-wybrac-id/' layout='button_count' show_faces='false' width='400' action='like' colorscheme='light' /></div>]]></content:encoded>
			<wfw:commentRss>http://yggdrasil.pl/index.php/2010/03/18/jak-pozwolic-graczowi-wybrac-id/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Połączenie FCKEditor i AJAX (jquery)</title>
		<link>http://yggdrasil.pl/index.php/2010/03/17/polaczenie-fckeditor-i-ajax/</link>
		<comments>http://yggdrasil.pl/index.php/2010/03/17/polaczenie-fckeditor-i-ajax/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 15:19:04 +0000</pubDate>
		<dc:creator>Thoran</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[fckeditr]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Radiation]]></category>

		<guid isPermaLink="false">http://yggdrasil.pl/?p=135</guid>
		<description><![CDATA[Ostatnio natrafiłem na problem, w jaki sposób wyciągnąć dane z formularza FCKEditora i przesłać je za pomocą AJAX.  Sprawa wygląda tak, że formularz edytora wrzucam do warstwy generowanej przez JQuery, a następnie wysyłam go za pomocą JQuery dalej. Nie mogłem się przez to przegryźć. Rozwiązaniem okazało się API edytora, wystarczy tylko jedna linijka kodu by [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio natrafiłem na problem, w jaki sposób wyciągnąć dane z formularza FCKEditora i przesłać je za pomocą AJAX.  Sprawa wygląda tak, że formularz edytora wrzucam do warstwy generowanej przez JQuery, a następnie wysyłam go za pomocą JQuery dalej. Nie mogłem się przez to przegryźć. Rozwiązaniem okazało się API edytora, wystarczy tylko jedna linijka kodu by problem przeskoczyć:</p>
<p><span id="more-135"></span></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> tresc <span style="color: #339933;">=</span>  FCKeditorAPI.<span style="color: #660066;">GetInstance</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'NazwaPolaInput'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">GetXHTML</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><span>NazwaPolaInput określamy podczas inicjalizacji klasy edytora</span></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$oFCKeditor</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> FCKeditor<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'NazwaPolaInput'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span>
<span style="color: #000088;">$oFCKeditor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">BasePath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'patch/to/editor/'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$oFCKeditor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Value</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$oFCKeditor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Width</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">'100%'</span> <span style="color: #339933;">;</span>
<span style="color: #000088;">$oFCKeditor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Height</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'400'</span> <span style="color: #339933;">;</span>
<span style="color: #000088;">$oFCKeditor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Create</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span></pre></div></div>

<p>Następnie w kodzie jquery wystarczy tylko dodać naszą magiczna linijkę:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> link<span style="color: #339933;">;</span> <span style="color: #003366; font-weight: bold;">var</span> widok<span style="color: #339933;">;</span>
&nbsp;
ajaxManager.<span style="color: #660066;">add</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
contentType<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;application/x-www-form-urlencoded;charset=ISO-8859-2&quot;</span><span style="color: #339933;">,</span>
type<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;POST&quot;</span><span style="color: #339933;">,</span>
url<span style="color: #339933;">:</span> link<span style="color: #339933;">,</span>
data<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
view<span style="color: #339933;">:</span> widok<span style="color: #339933;">,</span>
tresc<span style="color: #339933;">:</span> FCKeditorAPI.<span style="color: #660066;">GetInstance</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'NazwaPolaInput'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">GetXHTML</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
dataType<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;html&quot;</span><span style="color: #339933;">,</span>
timeout<span style="color: #339933;">:</span> <span style="color: #CC0000;">5000</span><span style="color: #339933;">,</span>
success<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;sukces&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
error<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>request<span style="color: #339933;">,</span>error<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Problem&quot;</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: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I to wszystko ;)</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://yggdrasil.pl/index.php/2010/03/17/polaczenie-fckeditor-i-ajax/' layout='button_count' show_faces='false' width='400' action='like' colorscheme='light' /></div>]]></content:encoded>
			<wfw:commentRss>http://yggdrasil.pl/index.php/2010/03/17/polaczenie-fckeditor-i-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nowy serwer</title>
		<link>http://yggdrasil.pl/index.php/2009/03/24/nowy-serwer/</link>
		<comments>http://yggdrasil.pl/index.php/2009/03/24/nowy-serwer/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 22:34:31 +0000</pubDate>
		<dc:creator>Thoran</dc:creator>
				<category><![CDATA[Serwer]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[fresno114]]></category>
		<category><![CDATA[lenwe]]></category>
		<category><![CDATA[lighttp]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[power panel]]></category>
		<category><![CDATA[thoran]]></category>

		<guid isPermaLink="false">http://yggdrasil.pl/?p=26</guid>
		<description><![CDATA[Od 6 marca jesteśmy w posiadaniu nowego serwera, który jak każdy nowy serwer sprawia trochę kłopotów  (kochane kłopoty). Wszystko zaczęło się od tego że po wykupieniu root serwera nie otrzymałem do niego dostępu, czekałem na email dobry tydzień. W międzyczasie posłałem kilka rozpaczliwych emaili do serwerowni ale bez odzewu, dopiero email przesłany przez stronę [...]]]></description>
			<content:encoded><![CDATA[<p>Od 6 marca jesteśmy w posiadaniu nowego serwera, który jak każdy nowy serwer sprawia trochę kłopotów <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_smile.gif" alt=":)" /> (kochane kłopoty). Wszystko zaczęło się od tego że po wykupieniu root serwera nie otrzymałem do niego dostępu, czekałem na email dobry tydzień. W międzyczasie posłałem kilka rozpaczliwych emaili do serwerowni ale bez odzewu, dopiero email przesłany przez stronę www dał rezultat w postaci odpowiedzi, która zawierała informację, że na razie serwer nie zostanie udostępniony ponieważ są kłopoty z podpięciem go do power panelu (taki webowy system zarządzania). W końcu wpadłem na podstępny pomysł by wyłudzić hasło do serwera z zastrzeżeniem że Power Panel nie jest mi potrzebny. Udało się to dopiero po przefaksowaniu ksera dowodu osobistego <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" /></p>
<p><span id="more-26"></span><br />
Po otrzymaniu danych do konta roota na serwerze zabraliśmy się z Lenwem do pracy (w sumie to on wszystko zrobił, ja zaś stanowiłem wsparcie umysłowo-techniczne). Przepięcie domen przebiegło bez problemu jednak rozgłoszenie zmiany zajęło trochę czasu DNSom przez co część kraju nie miała dostępu do strony a część miała. Było to trochę frustrujące zapewne, jednak nie tak bardzo jak to co wydarzyło się kilka dni później. Mianowicie zauważyłem że ktoś próbuje lub wbił się na serwer (hackerski atak), znając IP atakujących postanowiłem je zbanować w firewallu, co okazało się niezbyt mądre ze względu na to iż nie wiedziałem że firewall nie został skonfigurowany. Po jego uruchomieniu odciął zupełnie dostęp do serwera, tak samo przez SSH jak i HTTP, kompletnie wszystko. Przez kilka godzin mało nie nabawiłem się wrzodów przez walkę z pomocą techniczną serwerowni, która mimo iż nie mam Power Panelu, z ich winy,policzyła sobie za restart maszyny (39 Euro :/). No ale ostatecznie wszystko się udało i śmiga póki co dobrze.</p>
<p>W związku z tym firewallem przypomniała mi się historia testowania zabezpieczeń windows XP kiedy to postawiono winxp z SP2 i bez by przetestować ile czasu upłynie do momentu aż któryś coś złapie. Oczywiście XP bez SP2 złapał coś w ciągu 2 min jednak potem wydarzyło się coś dziwnego. Złapał robala który jak się okazało zabezpieczył go lepiej niż najlepszy antywirus, po prostu zablokował wszystkie porty i odciął system od sieci <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_smile.gif" alt=":)" /></p>
<p>Oczywiście to nie koniec użerania się z serwerem. Postanowiłem oczywiście być zajebisty i postawić apache wraz z lighttpd jako serwer treści dynamicznych i statycznych. Długo nie mogłem dojść dlaczego to nie działa <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" /> Jednak w końcu udało mi się (po 2 godzinach walki). Jeśli chodzi o wydajność to nie dziwię, że taki układ jest stosowany przez wszystkie większe serwisy typu wikipedia czy youtube.<br />
Jak to działa? To dość prosta konstrukcja. Serwer apache stoi jako front serwer przyjmując na siebie wszelkie zapytania, zaś lighttpd odbiera wszelkie zapytania o pliki statyczne. W efekcie lighttpd nawet się nie spoci wykonując swoją część pracy a apache znacznie został odciążony.</p>
<p>Tak to właśnie było <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_smile.gif" alt=":)" /> Mam nadzieję że serwer będzie dobrze nam służył.</p>
<p>T.</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://yggdrasil.pl/index.php/2009/03/24/nowy-serwer/' layout='button_count' show_faces='false' width='400' action='like' colorscheme='light' /></div>]]></content:encoded>
			<wfw:commentRss>http://yggdrasil.pl/index.php/2009/03/24/nowy-serwer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zwiększ popularność strony w toplistach</title>
		<link>http://yggdrasil.pl/index.php/2009/03/08/23/</link>
		<comments>http://yggdrasil.pl/index.php/2009/03/08/23/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 22:32:50 +0000</pubDate>
		<dc:creator>Thoran</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Fallathan]]></category>
		<category><![CDATA[głosowanie]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[toplisty]]></category>

		<guid isPermaLink="false">http://yggdrasil.pl/2009/04/25/23/</guid>
		<description><![CDATA[Jeśli posiadacie grę www możecie w łatwy sposób zwiększyć jej popularność w toplistach dzięki prostemu skryptowi. Skrypt ten umożliwia wypłacanie graczom ekwiwalentów za klikanie w topki.
Jeśli w grze mamy coś co graczom potrzebne jest do szczęścia: energia, ptk ruchu itd., możemy dać śladowe ilości tego graczom w zamian za kliknięcie w topkę.
W Kronikach Fallathanu rozdaję [...]]]></description>
			<content:encoded><![CDATA[<p>Jeśli posiadacie grę www możecie w łatwy sposób zwiększyć jej popularność w toplistach dzięki prostemu skryptowi. Skrypt ten umożliwia wypłacanie graczom ekwiwalentów za klikanie w topki.</p>
<p>Jeśli w grze mamy coś co graczom potrzebne jest do szczęścia: energia, ptk ruchu itd., możemy dać śladowe ilości tego graczom w zamian za kliknięcie w topkę.</p>
<p>W Kronikach Fallathanu rozdaję za kliknięcie energię, przy czym mam to powiązane jeszcze z linkami referencyjnymi, dzięki którym można ilość zdobywanej energii podnieść.</p>
<p><span id="more-23"></span></p>
<p>Aby zacząć podnosić swoją pozycję w topkach potrzebny jest nam plik glosuj.php w którym umieścimy nasze skrypty. Do tego pliku wklejamy kod Javascript:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'voter'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'voter'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tajny_hash'</span><span style="color: #339933;">.</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;
&lt;script type=<span style="color: #000099; font-weight: bold;">\&quot;</span>text/javascript<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;
function control_click(click_, url, vote) {
 childW = window.open(url,'childW','width=980, heigth=1000, status=no, scrollbars=yes, resizable=yes, location=yes, dependent=yes');
&nbsp;
 cur_click = click_;
&nbsp;
 if(vote==1 || vote==2 || vote==3) {
 frm = 0;
 setTimeout(<span style="color: #000099; font-weight: bold;">\&quot;</span>while_loading();<span style="color: #000099; font-weight: bold;">\&quot;</span>,100);
 }
}
&nbsp;
function while_loading() {
 var bocik = '123456789012345678901234567890';
 if(!childW.closed) {//window.closed
 frm =frm+1;
 setTimeout('while_loading();',100);
 } else {
 if(frm&lt;40) {
 alert('Musisz zagłosować i zaczekać aż strona ci się załaduje.');
 } else {
 var bocik =  '&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'voter'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;';
 document.location = <span style="color: #000099; font-weight: bold;">\&quot;</span>vote.php?glos=<span style="color: #000099; font-weight: bold;">\&quot;</span>+cur_click+<span style="color: #000099; font-weight: bold;">\&quot;</span>&amp;bot=<span style="color: #000099; font-weight: bold;">\&quot;</span>+bocik;
 }
 }
}
&lt;/script&gt;
&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Następnie trzeba będzie wyświetlić nasze linki do klikania:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
 <span style="color: #000088;">$topka</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$db</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">EXECUTE</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT * FROM votes WHERE owner=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$player</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; AND vote_id=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$i</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; LIMIT 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$topka</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;&lt;p&gt;&lt;/p&gt;&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$topka</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;&lt;p&gt;&lt;/p&gt;&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$topka</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;&lt;p&gt;&lt;/p&gt;&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$topka</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">Close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Do tego dodajemy kod, który odpowiada za dodanie graczowi bonusów oraz oznaczenie jego głosu:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'glos'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">ereg</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;^[1-9][0-9]*$&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'glos'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> error<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Wpisz cyfrę&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bot'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> error<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Nie oszukuj&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bot'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bot'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bot'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span> error<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Nie oszukuj&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'bot'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'voter'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> error<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Nie oszukuj&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$arrvotes</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">7</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">11</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'glos'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$arrvotes</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> error<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Nie ma takiej toplisty&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
 <span style="color: #000088;">$vote</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$db</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">EXECUTE</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT id FROM votes WHERE owner=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$player</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; AND vote_id=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'glos'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; LIMIT 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$vote</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
 <span style="color: #009900;">&#123;</span>
 <span style="color: #000088;">$db</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">EXECUTE</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE players SET energy=energy+&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$gain_energy</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; WHERE id=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$player</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; LIMIT 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$db</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">EXECUTE</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INSERT INTO votes (owner,vote_id) VALUES (&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$player</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'glos'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">print</span> <span style="color: #0000ff;">'Głosowale¶, otrzymujesz '</span><span style="color: #339933;">.</span><span style="color: #000088;">$gain_energy</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' energii. Dziękujemy!&lt;a href=vote.php&gt;Wróć&lt;/a&gt;'</span><span style="color: #339933;">;</span>
 <span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'voter'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;LOCATION:vote.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">print</span> <span style="color: #0000ff;">'Już głosowałe¶ na tę toplistę dziękujemy za promocję gry mimo wszystko :) &lt;a href=vote.php&gt;Wróć&lt;/a&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
 <span style="color: #000088;">$vote</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">Close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'voter'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;LOCATION:vote.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ostatnim krokiem jest dodanie do bazy danych tabeli, która przetrzymuje informacje o tym czy ktoś głosował:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> <span style="color: #008000;">`votes`</span> <span style="color: #FF00FF;">&#40;</span>
<span style="color: #008000;">`id`</span> <span style="color: #999900; font-weight: bold;">int</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #FF9900; font-weight: bold;">auto_increment</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`owner`</span> <span style="color: #999900; font-weight: bold;">int</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #990099; font-weight: bold;">default</span> <span style="color: #008000;">'0'</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`vote<span style="color: #008080; font-weight: bold;">_</span>id`</span> <span style="color: #999900; font-weight: bold;">int</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #990099; font-weight: bold;">default</span> <span style="color: #008000;">'0'</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">PRIMARY KEY</span>  <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`id`</span><span style="color: #FF00FF;">&#41;</span>
<span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">ENGINE</span><span style="color: #CC0099;">=</span>MyISAM <span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #CC0099;">=</span><span style="color: #008080;">1</span><span style="color: #000033;">;</span></pre></div></div>

<p>To wszystko, możemy cieszyć się z rosnącej pozycji w topkach.</p>
<p><a href="http://pliki.gildwars.pl/vote.txt" target="_blank">Plik ze skryptem.</a></p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://yggdrasil.pl/index.php/2009/03/08/23/' layout='button_count' show_faces='false' width='400' action='like' colorscheme='light' /></div>]]></content:encoded>
			<wfw:commentRss>http://yggdrasil.pl/index.php/2009/03/08/23/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebServ instalacja</title>
		<link>http://yggdrasil.pl/index.php/2009/02/18/webserv-instalacja/</link>
		<comments>http://yggdrasil.pl/index.php/2009/02/18/webserv-instalacja/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 22:30:30 +0000</pubDate>
		<dc:creator>Thoran</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[webserv]]></category>

		<guid isPermaLink="false">http://yggdrasil.pl/?p=18</guid>
		<description><![CDATA[W poprzedniej części dowiedzieliśmy się, że do postawienia strony potrzebny jest nam serwer. Aby nie wydawać pieniędzy najlepiej postawić serwer na webserwie, którego konfigurację opiszę poniżej.
Do rozpoczęcia pracy potrzebna jest nam instalka Webserva i trochę czasu. Webserva instalujemy w domyślnej konfiguracji, jedyne co musimy wybrać to wersja PHP oraz MySQL. Robimy to tak jak przedstawiono [...]]]></description>
			<content:encoded><![CDATA[<p>W poprzedniej części dowiedzieliśmy się, że do postawienia strony potrzebny jest nam serwer. Aby nie wydawać pieniędzy najlepiej postawić serwer na webserwie, którego konfigurację opiszę poniżej.</p>
<p>Do rozpoczęcia pracy potrzebna jest nam instalka Webserva i trochę czasu. Webserva instalujemy w domyślnej konfiguracji, jedyne co musimy wybrać to wersja PHP oraz MySQL. Robimy to tak jak przedstawiono na obrazku:</p>
<p><img class="alignnone size-full wp-image-19" src="http://blog.yggdrasil.pl/wp-content/uploads/2009/04/webserv1-300x233.jpg" alt="webserv1-300x233" width="300" height="233" /><br />
<span id="more-18"></span><br />
Po ustawieniu powyższych opcji lecimy dalej i po chwili mamy zainstalowaną maszynę. Jeśli wszystko poszło dobrze zobaczymy komunikat.</p>
<p>Obok zegarka pojawi nam się obrazek serwera. Aby skorzystać z jego opcji wystarczy kliknąć w ikonkę prawym przyciskiem myszy.</p>
<p>Oto opis opcji:<br />
* <strong>START/STOP</strong> &#8211; Uruchamia lub zatrzymuję prace serwera (nie wyłacza programu)</p>
<p>* <strong>RESTART</strong> &#8211; Wyłacza cały serwer (nie komputer) i uruchamia ponownie.</p>
<p>* <strong>MySQL Control</strong> &#8211; To jest program do kontrolowania Bazy Danych MySQL, można tu tworzyć tabele, bazy itp. Czasem jest lepszy od PhpMyAdmina (o nim poniżej), lecz nie zawsze.</p>
<p>* <strong>PhpMyAdmin</strong> &#8211; Najpopularniejszy skrypt urzywany dO zarządzania bazami danych MySQL. Mozna tworzyć w nim uprawnienia, urzytkowników itd. (o nim w innym tutku)</p>
<p>* <strong>Główna WWW</strong> &#8211; Według mnie bardzo przydatna funkcja, otwierająca twoją stronę internetową (umieszczoną w folderze /httpd/*.*)</p>
<p>* <strong>Konta WWW </strong>- Tak jak powyzsze otwiera stronę z folderu /httpd-users/www/*.* (pogrubione “www” może być inny, w zależności jaka ma nazwę konto)</p>
<p>* <strong>Folder Główny</strong> &#8211; Otwiera Folder /httpd/</p>
<p>* <strong>Folder Kont</strong> &#8211; Otwiera folder /httpd-users/</p>
<p>* <strong>FTP</strong> &#8211; Otwiera program/serwer FTP (CesarFTP)</p>
<p>* <strong>Domeny No-IP</strong> &#8211; Otwiera program No-IP (o nim w tutorialu o No-IP)</p>
<p>* <strong>Połaczenia </strong>- Tutaj są spisywane połaczenia, jeśli ktoś wchodzi na twoją stronę widzisz co otwiera, jaki jest jego IP itd.<br />
Jest pare kategorji w Połączeniach; Dopuszczone &#8211; Dopuszczone połaczenia <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_smile.gif" alt=":)" /> Błedy/Zablok. &#8211; Zablokowane połączenia i błedy Systemy &#8211; Pokazuje jakiej przegladarki i systemu urzywa przeglądający Odwołania &#8211; Definicja nie znana <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_sad.gif" alt=":(" /></p>
<p>* <strong>Ustawienia </strong>- Ustawienia serwera (o nim w innym tutorialu)</p>
<p>* <strong>WebPL.org</strong> &#8211; Przydatne linki, na bardzo przydatne strony i forum <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_smile.gif" alt=":)" /></p>
<p>* <strong>Informacje </strong>- Tutaj jest informacja o WebServ’ie, jednak nie tylko, można sprawdzić czy jest nowa wersja WebServ’a wydana lub sprawdzić zużycie procesora i pamięci RAM (UWAGA: Bardzo przydatną funkcją jest OPTYMIZACJA RAMU zmniejsza zyżycie pamięci nawet o 50mb!!; aby tam wejść należy w Zakładce Sprzęt wejść w RAM i Kliknąć tam OPTYMIZACJA)</p>
<p>* <strong>Zamknij </strong>- Zamyka całego WebServ’a</p>
<p>Warto przeklikać te opcje i popatrzyć do czego służą. Nas interesuje głównie PHPmyadmin oraz foldery kont.</p>
<p>Teraz musimy skonfigurować folder w którym będziemy trzymać naszą stronę. Wchodzimy w <strong>Ustawienia </strong>WebServa i wybieramy zakładkę <strong>Apache</strong>. Następnie wybieramy folder w którym będziemy trzymać stronę naszego projektu.</p>
<p>I to w sumie wszystko co powinniśmy zrobić by zacząć pracę nad naszą stroną. Następnym razem pokarzę jak “ugryźć” phpmyadmina.</p>
<p>Aby sprawdzić czy serwer na pewno działa wpisujemy w przeglądarce w pasku adresu : localhost. Jeśli wyskoczy nam strona powitalna apachea to jesteśmy w domu.</p>
<p>Jeśli Webserv nie będzie chciał wam ruszyć po instalacji (apache będzie się wywalał) należy zamknąć wszystkie programy, które mogą blokować port 80 (np. skype). Więcej informacji <a href="http://forum.webserv.pl/viewtopic.php?t=1758">tutaj</a></p>
<p>Pomocne linki:<br />
<a href="http://forum.webserv.pl/viewforum.php?f=3">http://forum.webserv.pl/viewforum.php?f=3</a></p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://yggdrasil.pl/index.php/2009/02/18/webserv-instalacja/' layout='button_count' show_faces='false' width='400' action='like' colorscheme='light' /></div>]]></content:encoded>
			<wfw:commentRss>http://yggdrasil.pl/index.php/2009/02/18/webserv-instalacja/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Piszemy własny silnik gry</title>
		<link>http://yggdrasil.pl/index.php/2009/02/09/piszemy-wlasny-silnik-gry/</link>
		<comments>http://yggdrasil.pl/index.php/2009/02/09/piszemy-wlasny-silnik-gry/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 22:27:15 +0000</pubDate>
		<dc:creator>Thoran</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Serwer]]></category>
		<category><![CDATA[silnik]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://yggdrasil.pl/?p=12</guid>
		<description><![CDATA[Jako iż mam zamiar rozpocząć pracę nad zupełnie nowym projektem silnika gry, portalu itd, chciałem przy okazji podzielić się z wami moimi doświadczeniami w produkcji tego typu skryptów.
Podstawowym pytaniem jest: co nam jest potrzebne by napisać grę?
Odpowiedź jest prosta: chęć napisania gry…
Wiele osób powie wam że chęci to nie wszystko, ale nie słuchajcie ich. Prawda [...]]]></description>
			<content:encoded><![CDATA[<p>Jako iż mam zamiar rozpocząć pracę nad zupełnie nowym projektem silnika gry, portalu itd, chciałem przy okazji podzielić się z wami moimi doświadczeniami w produkcji tego typu skryptów.</p>
<p>Podstawowym pytaniem jest: co nam jest potrzebne by napisać grę?<br />
Odpowiedź jest prosta: chęć napisania gry…</p>
<p>Wiele osób powie wam że chęci to nie wszystko, ale nie słuchajcie ich. Prawda tkwi w waszej silnej woli i zaangażowaniu oraz sercu jakie włożycie w projekt. Nie umiesz programować? Nie ma to znaczenia ponieważ dzięki wytrwałości możesz się tego nauczyć. Najważniejsze to chcieć, reszta jest wynikiem tej pierwszej decyzji.<br />
<span id="more-12"></span><br />
Oczywiście kiedy już zdecydujemy, że jesteśmy zdeterminowani by coś robić czas przejść do konkretów. Przedstawię wam kilka kursów, które pozwolą wam w łatwy sposób opanować podstawy i sprawią, że wasz apetyt na tworzenie wzrośnie.<br />
Zacznijmy oczywiście od rozwijania naszych umiejętności. Jest to podstawa by cokolwiek zbudować. Możemy chcieć wybudować dom ale nie zrobimy tego bez wiedzy potrzebnej nam do zmieszania wapna z cementem i piaskiem. Na początek musimy zainteresować się HTMLem.</p>
<p>Bardzo dobry kurs traktujący o HTMLu znajdziemy <a href="http://www.kurshtml.boo.pl/">tutaj</a>. Radziłbym się z nim dobrze zapoznać ponieważ HTML stanie się szkieletem naszej strony WWW, którą później uzupełnimy o kod PHP tworząc grę.<br />
Niech nie przeraża was ilość znaczników, w swoim projekcie będziecie stosować tylko niewielką ich część. Oczywiście wraz z waszym rozwojem ich liczba będzie rosła ale na początek wystarczy nam znajomość ogólnego schematu strony WWW <a href="http://www.kurshtml.boo.pl/html/ramy_dokumentu,zielony.html">Dokładnie opisane tutaj</a>. Warto też byłoby wnikliwie prześledzić wszystkie podstrony kursu <a href="http://www.kurshtml.boo.pl/html/zielony.html">HTML dla zielonych</a> (oczywiście nie chodzi tutaj o partię zielonych :)).</p>
<p>Jeśli już w jakimś stopniu opanujemy HTMLa przyjdzie czas na trudniejsze rzeczy. Bez obaw jednak nie są one tak trudne jak nam się wydaje.</p>
<p>Kod PHP tym różni się od HTML, że jest on interpretowany i wykonywany na serwerze a nie po stronie użytkownika. Aby napisać jakikolwiek kod w PHP będziemy zatem potrzebować serwera WWW, który owy kod nam sparsuje i wykona. Nie, nie bójcie się, nie musicie kupować żadnego serwera. Wystarczy ściągnąć i zainstalować środowisko zwane LAMP lub WAMP (zależnie od systemu operacyjnego &#8211; Windows, Linux).<br />
Najpopularniejszym Windows Apache Mysql PHP (WAMP) serwerem jest <a href="http://www.webserv.pl/?page=download">WebServ </a>. Można go pobrać bez problemu ze strony twórców. Jeśli napotkamy jakieś problemy z jego instalacją lub konfiguracją, pomoc uzyskamy w <a href="http://www.webserv.pl/?page=faq">FAQ</a> lub na <a href="http://forum.webserv.pl/">Forum</a>.</p>
<p>O tym jak skonfigurować WebServera i jak zacząć na nim pracę z PHP opiszę następnym razem <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_wink.gif" alt=";)" /></p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://yggdrasil.pl/index.php/2009/02/09/piszemy-wlasny-silnik-gry/' layout='button_count' show_faces='false' width='400' action='like' colorscheme='light' /></div>]]></content:encoded>
			<wfw:commentRss>http://yggdrasil.pl/index.php/2009/02/09/piszemy-wlasny-silnik-gry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lighttpd &#8211; testowy serwer www</title>
		<link>http://yggdrasil.pl/index.php/2009/02/08/lighttpd-testowy-serwer-www/</link>
		<comments>http://yggdrasil.pl/index.php/2009/02/08/lighttpd-testowy-serwer-www/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 22:25:51 +0000</pubDate>
		<dc:creator>Thoran</dc:creator>
				<category><![CDATA[Serwer]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://yggdrasil.pl/?p=9</guid>
		<description><![CDATA[Jak pewnie wiecie od rana dzisiaj serwer zamulał strasznie. Było to spowodowane wykorzystaniem przez apachea całej dostępnej pamięci RAM. Przyczyna problemu jest nieznana jednak podejrzewam że ma to związek z nieoptymalnym skryptem, który może zdestabilizować pracę całego serwera. Niestety jeśli chodzi o apachea takie problemy mogą się powtarzać dlatego postanowiłem zmienić serwer www. Ogólnie przetestowałem [...]]]></description>
			<content:encoded><![CDATA[<p>Jak pewnie wiecie od rana dzisiaj serwer zamulał strasznie. Było to spowodowane wykorzystaniem przez apachea całej dostępnej pamięci RAM. Przyczyna problemu jest nieznana jednak podejrzewam że ma to związek z nieoptymalnym skryptem, który może zdestabilizować pracę całego serwera. Niestety jeśli chodzi o apachea takie problemy mogą się powtarzać dlatego postanowiłem zmienić serwer www. Ogólnie przetestowałem kilka opcji (<a href="http://wiki.codemongers.com/Main">nginx</a> oraz <a href="http://www.lighttpd.net/">lighttpd</a>). Oba rozwiązania są szybkie i wydajne jednak lighttpd bardziej przypadł mi do gustu.<br />
<span id="more-9"></span><br />
Nginx jest szybkim serwerem jednak zdaje się, że nie jest zbyt dynamicznie rozwijany (lub wcale), dokumentacja jest po rosyjsku (i niekompletna po angielsku), przy czym jest bardzo łatwy w konfiguracji. W przeciwieństwie do niego lighttpd jest trochę trudniejszy w rozparcelowaniu i dostosowaniu do naszych potrzeb, jednak posiada bogatą dokumentację (prawie jak apache, jednak prawie robi różnicę ;)) i wiele modułów, które możemy bardzo łatwo uruchomić. Co więcej można ściągnąć paczkę od razu z modułem fastcgi dzięki czemu zaoszczędzimy czas na konfigurację PHP.</p>
<p>Oczywiście sama łatwość obsługi i dokumentacja nie decyduje o tym czy dany system jest dobry, ważniejsze jest mniejsze obciążenie jakie taki system generuje. Póki co lighttpd spisuje się wyśmienicie:<br />
- mała ilość procesów czyni go mniej podatnym na zawieszenie<br />
- mała pamięciożerność (choć tutaj porównywalny do apachea nie powoduje jednak nagłych skoków w zużyciu pamięci, stale trzyma poziom 30 %)<br />
- marginalne użycie procesora (w przeciwieństwie do apachea) oraz minimalne load average serwera.</p>
<p>Wszystko to sprawia że lighttpd jest serwerem, ktory w pełni spełni nasze niewygórowane oczekiwania. Póki co będziemy go testować aż do skutku <img class="wp-smiley" src="http://www.yggdrasil.pl/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" /></p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://yggdrasil.pl/index.php/2009/02/08/lighttpd-testowy-serwer-www/' layout='button_count' show_faces='false' width='400' action='like' colorscheme='light' /></div>]]></content:encoded>
			<wfw:commentRss>http://yggdrasil.pl/index.php/2009/02/08/lighttpd-testowy-serwer-www/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
