<?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>ACCES INTERZIS &#187; PHP</title>
	<atom:link href="http://www.accesinterzis.ro/index.php/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.accesinterzis.ro</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 20 Apr 2010 12:08:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Cum implementez plugin-ul jQuery YoxView intr-o pagina web?</title>
		<link>http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-yoxview-intr-o-pagina-web-2/</link>
		<comments>http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-yoxview-intr-o-pagina-web-2/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 14:59:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programare]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=397</guid>
		<description><![CDATA[Descarc fisierele plugin-ului. Dezarhivez .zip-ul. Bag folderul yoxview in folderul js din root-ul site-ului. In folderul js se afla, de asemenea, si jquery1.4.2.js, fisierul cu libraria jQuery. Sterg yoxview-nojquery.js, jquery-1.4.2.min.js, jquery.jsonp-1.0.4.min.js, jquery.yoxview-1.1.min.js.
Modific yoxview-init.js in:

var _yoxviewPath = getYoxviewPath();

document.write('&#60;link rel=&#34;Stylesheet&#34; type=&#34;text/css&#34; href=&#34;' + _yoxviewPath + 'yoxview.css&#34; /&#62;');

function LoadScript( url )
{
	document.write( '&#60;scr' + 'ipt type=&#34;text/javascript&#34; src=&#34;' + url [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-lightbox-intr-o-pagina-web-2/' rel='bookmark' title='Permanent Link: Cum implementez plugin-ul jQuery LightBox intr-o pagina web?'>Cum implementez plugin-ul jQuery LightBox intr-o pagina web?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-slider-de-imagini-in-jquery-si-php/' rel='bookmark' title='Permanent Link: Cum fac un slider de imagini in jQuery si PHP?'>Cum fac un slider de imagini in jQuery si PHP?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-extrag-adrese-de-email-de-pe-o-pagina-web/' rel='bookmark' title='Permanent Link: Cum extrag adrese de email de pe o pagina web?'>Cum extrag adrese de email de pe o pagina web?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><a title="Cum implementez plugin-ul jQuery YoxView intr-o pagina web?" href="http://yoxigen.com/yoxview/Download.aspx" target="_blank">Descarc</a> fisierele plugin-ului. Dezarhivez .zip-ul. Bag folderul <strong>yoxview</strong> in folderul <strong>js</strong> din root-ul site-ului. In folderul <strong>js</strong> se afla, de asemenea, si <strong>jquery1.4.2.js</strong>, fisierul cu libraria jQuery. Sterg <strong>yoxview-nojquery.js</strong>, <strong>jquery-1.4.2.min.js</strong>, <strong>jquery.jsonp-1.0.4.min.js</strong>, <strong>jquery.yoxview-1.1.min.js</strong>.<br />
Modific <strong>yoxview-init.js</strong> in:</p>
<pre class="brush: jscript;">
var _yoxviewPath = getYoxviewPath();

document.write('&lt;link rel=&quot;Stylesheet&quot; type=&quot;text/css&quot; href=&quot;' + _yoxviewPath + 'yoxview.css&quot; /&gt;');

function LoadScript( url )
{
	document.write( '&lt;scr' + 'ipt type=&quot;text/javascript&quot; src=&quot;' + url + '&quot;&gt;&lt;\/scr' + 'ipt&gt;' ) ;
}
LoadScript(_yoxviewPath + &quot;jquery.timers-1.2.min.js&quot;);
LoadScript(_yoxviewPath + &quot;jquery.yoxview-1.1.js&quot;);

function getYoxviewPath()
{
    var scripts = document.getElementsByTagName(&quot;script&quot;);
    var regex = /(.*\/)yoxview.*/i;
    for(var i=0; i&lt;scripts.length; i++)
    {
        var currentScriptSrc = scripts[i].src;
        if (currentScriptSrc.match(regex))
        return currentScriptSrc.match(regex)[1];
    }

    return null;
}
</pre>
<p>Din folderul <strong>lang</strong> pot sterge toate fisierele in afara de <strong>en.js</strong>.<br />
Dupa toate astea, folderul <strong>yoxview</strong> (care asa cum am zis se afla in folderul <strong>js</strong> din root-ul site-ului) va arata asa:<br />
<img class="alignnone" title="Cum implementez plugin-ul jQuery YoxView intr-o pagina web?" src="http://img407.imageshack.us/img407/8160/cleanedyoxview.gif" alt="Cum implementez plugin-ul jQuery YoxView intr-o pagina web?" width="627" height="197" /><br />
In acest fel ma scap de fisiere inutile. Nu are sens sa ocup spatiu pe server aiurea.<br />
Acum nu imi mai ramane decat sa implementez plugin-ul in <a title="Cum implementez plugin-ul jQuery YoxView intr-o pagina web?" href="http://www.accesinterzis.ro/myfw/sliders/yoxview-1.0.php" target="_blank">pagina mea web</a>.</p>
<p><span id="more-397"></span></p>
<p><strong>index.php</strong></p>
<pre class="brush: xml;">
&lt;?php include('includes/functions.inc.php'); ?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt;Cum implementez YoxView intr-o pagina web?&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;Cum implementez YoxView intr-o pagina web?&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;Cum implementez YoxView intr-o pagina web?&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;Cum implementez YoxView intr-o pagina web?&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex,nofollow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;
&lt;meta http-equiv=&quot;cache-control&quot; content=&quot;no-cache&quot;&gt;

&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery1.4.2.js&quot;&gt;&lt;/script&gt;

&lt;!--**********Begin - jQuery YoxView**********--&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/yoxview/yoxview-init.js&quot;&gt;&lt;/script&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
    $(document).ready(function(){
        $(&quot;#gallery&quot;).yoxview();
	});
&lt;/script&gt;
&lt;!--**********End - jQuery YoxView**********--&gt;

&lt;style type=&quot;text/css&quot;&gt;
* {
	margin:0;
	padding:0;
	outline:none;
}

html {
	color:black;
	background-color:white;
	font: normal normal normal 12px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
}

img {
	border:none;
}

ul#gallery {
	overflow:hidden;
	list-style-type:none;
	width:1000px;
	margin:10px auto;
}

ul#gallery li {
	float:left;
	margin-right:5px;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;ul id=&quot;gallery&quot;&gt;
	&lt;?php
	$pictures = read_images('images/thumbs', array('.jpg', '.jpeg'), 120, 120, 120, 120, 0, 10000);
	for ($i = 0; $i &lt; 8; $i++) {
		echo '&lt;li&gt;';
		echo '&lt;a href=&quot;images/big-ones/'.$pictures[$i].'&quot;&gt;';
		echo '&lt;img src=&quot;images/thumbs/'.$pictures[$i].'&quot; alt=&quot;&quot; title=&quot;'.$pictures[$i].'&quot; /&gt;';
		echo '&lt;/a&gt;';
		echo '&lt;/li&gt;'.&quot;\r\n&quot;;
	}
	?&gt;
&lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Cu ajutorul functiei PHP <a title="Cum citesc dinamic imaginile dintr-un folder?" href="http://www.accesinterzis.ro/index.php/programare/functii-php-utile-in-orice-proiect/" target="_blank">read_images()</a> citesc dinamic thumbnail-urile de pe server.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Cum+implementez+plugin-ul+jQuery+YoxView+intr-o+pagina+web%3F+http://fd6sp.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Cum+implementez+plugin-ul+jQuery+YoxView+intr-o+pagina+web%3F+http://fd6sp.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-lightbox-intr-o-pagina-web-2/' rel='bookmark' title='Permanent Link: Cum implementez plugin-ul jQuery LightBox intr-o pagina web?'>Cum implementez plugin-ul jQuery LightBox intr-o pagina web?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-slider-de-imagini-in-jquery-si-php/' rel='bookmark' title='Permanent Link: Cum fac un slider de imagini in jQuery si PHP?'>Cum fac un slider de imagini in jQuery si PHP?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-extrag-adrese-de-email-de-pe-o-pagina-web/' rel='bookmark' title='Permanent Link: Cum extrag adrese de email de pe o pagina web?'>Cum extrag adrese de email de pe o pagina web?</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-yoxview-intr-o-pagina-web-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cum implementez plugin-ul jQuery LightBox intr-o pagina web?</title>
		<link>http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-lightbox-intr-o-pagina-web-2/</link>
		<comments>http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-lightbox-intr-o-pagina-web-2/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 14:59:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programare]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=398</guid>
		<description><![CDATA[Descarc fisierele plugin-ului. Dezarhivez .zip-ul. Iau jquery.lightbox-0.5.js si il bag in folderul js din root-ul site-ului. In folderul js se afla, de asemenea, si fisierul care contine libraria jQuery. jquery.lightbox-0.5.css il bag in folderul css din root-ul site-ului. In folderul images din root-ul site-ului creez un folder lb-btns in care voi baga imaginile cu butoanele [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-yoxview-intr-o-pagina-web-2/' rel='bookmark' title='Permanent Link: Cum implementez plugin-ul jQuery YoxView intr-o pagina web?'>Cum implementez plugin-ul jQuery YoxView intr-o pagina web?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-slider-de-imagini-in-jquery-si-php/' rel='bookmark' title='Permanent Link: Cum fac un slider de imagini in jQuery si PHP?'>Cum fac un slider de imagini in jQuery si PHP?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-extrag-adrese-de-email-de-pe-o-pagina-web/' rel='bookmark' title='Permanent Link: Cum extrag adrese de email de pe o pagina web?'>Cum extrag adrese de email de pe o pagina web?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><a title="Cum implementez plugin-ul jQuery LightBox intr-o pagina web?" href="http://leandrovieira.com/projects/jquery/lightbox/" target="_blank">Descarc</a> fisierele plugin-ului. Dezarhivez .zip-ul. Iau <strong>jquery.lightbox-0.5.js</strong> si il bag in folderul <strong>js</strong> din root-ul site-ului. In folderul <strong>js</strong> se afla, de asemenea, si fisierul care contine libraria jQuery. <strong>jquery.lightbox-0.5.css</strong> il bag in folderul <strong>css</strong> din root-ul site-ului. In folderul <strong>images</strong> din root-ul site-ului creez un folder <strong>lb-btns</strong> in care voi baga imaginile cu butoanele LightBox-ului din folderul <strong>images</strong>. Acum am grija sa modific chemarile butoanelor in fisierul <strong>jquery.lightbox-0.5.js</strong> de la linia 30 la 34.</p>
<p>Acum nu imi mai ramane decat sa implementez plugin-ul in <a title="Cum implementez plugin-ul jQuery LightBox intr-o pagina web?" href="http://www.accesinterzis.ro/myfw/sliders/lightbox-1.0.php" target="_blank">pagina mea web</a>.</p>
<p><span id="more-398"></span></p>
<p><strong>index.php</strong></p>
<pre class="brush: xml;">
&lt;?php include('includes/functions.inc.php'); ?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt;Cum implementez plugin-ul jQuery LightBox intr-o pagina web?&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;Cum implementez plugin-ul jQuery LightBox intr-o pagina web?&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;Cum implementez plugin-ul jQuery LightBox intr-o pagina web?&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;Cum implementez plugin-ul jQuery LightBox intr-o pagina web?&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex,nofollow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;
&lt;meta http-equiv=&quot;cache-control&quot; content=&quot;no-cache&quot;&gt;

&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery1.4.2.js&quot;&gt;&lt;/script&gt;

&lt;!--**********Begin - jQuery LightBox**********--&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/jquery.lightbox-0.5.css&quot; media=&quot;screen&quot; /&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.lightbox-0.5.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function() {
    $('#gallery a').lightBox();
});
&lt;/script&gt;
&lt;!--**********End - jQuery LightBox**********--&gt;

&lt;style type=&quot;text/css&quot;&gt;
* {
	margin:0;
	padding:0;
	outline:none;
}

html {
	color:black;
	background-color:white;
	font: normal normal normal 12px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
}

img {
	border:none;
}

ul#gallery {
	overflow:hidden;
	list-style-type:none;
	width:1000px;
	margin:10px auto;
}

ul#gallery li {
	float:left;
	margin-right:5px;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;ul id=&quot;gallery&quot;&gt;
	&lt;?php
	$pictures = read_images('images/thumbs', array('.jpg', '.jpeg'), 120, 120, 120, 120);
	for ($i = 0; $i &lt; 8; $i++) {
		echo '&lt;li&gt;';
		echo '&lt;a href=&quot;images/big-ones/'.$pictures[$i].'&quot;&gt;';
		echo '&lt;img src=&quot;images/thumbs/'.$pictures[$i].'&quot; alt=&quot;&quot; /&gt;';
		echo '&lt;/a&gt;';
		echo '&lt;/li&gt;'.&quot;\r\n&quot;;
	}
	?&gt;
&lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Cu ajutorul functiei PHP <a title="Cum citesc dinamic imaginile dintr-un folder?" href="http://www.accesinterzis.ro/index.php/programare/functii-php-utile-in-orice-proiect/" target="_blank">read_images()</a> citesc dinamic thumbnail-urile de pe server.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Cum+implementez+plugin-ul+jQuery+LightBox+intr-o+pagina+web%3F+http://xhke3.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Cum+implementez+plugin-ul+jQuery+LightBox+intr-o+pagina+web%3F+http://xhke3.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-yoxview-intr-o-pagina-web-2/' rel='bookmark' title='Permanent Link: Cum implementez plugin-ul jQuery YoxView intr-o pagina web?'>Cum implementez plugin-ul jQuery YoxView intr-o pagina web?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-slider-de-imagini-in-jquery-si-php/' rel='bookmark' title='Permanent Link: Cum fac un slider de imagini in jQuery si PHP?'>Cum fac un slider de imagini in jQuery si PHP?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-extrag-adrese-de-email-de-pe-o-pagina-web/' rel='bookmark' title='Permanent Link: Cum extrag adrese de email de pe o pagina web?'>Cum extrag adrese de email de pe o pagina web?</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-lightbox-intr-o-pagina-web-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Functii PHP utile in orice proiect</title>
		<link>http://www.accesinterzis.ro/index.php/programare/functii-php-utile-in-orice-proiect/</link>
		<comments>http://www.accesinterzis.ro/index.php/programare/functii-php-utile-in-orice-proiect/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 14:53:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programare]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=396</guid>
		<description><![CDATA[Ca tot am inceput sa vorbesc despre cod procedural reutilizabil am sa prezint cateva functii PHP foarte utile in orice proiect.
read_images() &#8211; citeste imaginile dintr-un folder de pe server si le incarca intr-un array

function read_images($folder, $allowed_extensions = NULL, $min_width = NULL, $max_width = NULL, $min_height = NULL, $max_height = NULL, $min_size = NULL, $max_size = [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-upload-in-php/' rel='bookmark' title='Permanent Link: Cum fac un formular de upload in PHP?'>Cum fac un formular de upload in PHP?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Ca tot am inceput sa vorbesc despre <strong>cod procedural reutilizabil</strong> am sa prezint cateva functii PHP foarte utile in orice proiect.</p>
<p><strong>read_images()</strong> &#8211; citeste imaginile dintr-un folder de pe server si le incarca intr-un array</p>
<pre class="brush: php;">
function read_images($folder, $allowed_extensions = NULL, $min_width = NULL, $max_width = NULL, $min_height = NULL, $max_height = NULL, $min_size = NULL, $max_size = NULL) {
	//-----specific valorile default
	$allowed_extensions = (isset($allowed_extensions)) ? $allowed_extensions : array('.jpg', '.jpeg', '.gif', '.png');
	$min_width          = (isset($min_width))          ? $min_width          : 1;
	$max_width          = (isset($max_width))          ? $max_width          : 10000;
	$min_height         = (isset($min_height))         ? $min_height         : 1;
	$max_height         = (isset($max_height))         ? $max_height         : 10000;
	$min_size           = (isset($min_size))           ? $min_size           : 1;
	$max_size           = (isset($max_size))           ? $max_size           : 10000;

	//-----initializez array-ul in care voi strange numele imaginilor de pe server
	$images = array();

	if (is_dir($folder)) {
		//-----deschid folderul de imagini pentru a-l citi
		if($handle = opendir ($folder)) {
			//-----citesc folderul
			while ($image_name = readdir($handle)) {
				//-----&quot;.&quot; reprezinta folderul curent iar &quot;..&quot; reprezinta folderul anterior
				if ($image_name != '.' &amp;&amp; $image_name != '..') {
					$image_extension = substr($image_name, strrpos($image_name,'.'),100);
					$image_extension = strtolower($image_extension);

					if (in_array($image_extension,$allowed_extensions)) {
						$properties = @getimagesize($folder.'/'.$image_name);
						$size = round(filesize($folder.'/'.$image_name) / 1024);

						if ($properties[0] &gt;= $min_width  &amp;&amp; $properties[0] &lt;= $max_width &amp;&amp;
							$properties[1] &gt;= $min_height &amp;&amp; $properties[1] &lt;= $max_height &amp;&amp;
							$size          &gt;= $min_size   &amp;&amp; $size          &lt;= $max_size) {

							$images[] = $image_name;
						}
					}
				}
			}

			closedir($handle);
		}
	}

	return ($images);
}
</pre>
<p><span id="more-396"></span><br />
<i>Exemplu</i></p>
<pre class="brush: php;">
&lt;?php $slides = read_images('images/slides', array('.jpg', '.jpeg'), 600, 600, 270, 270); ?&gt;
&lt;pre&gt;&lt;?php print_r($slides); ?&gt;&lt;/pre&gt;
</pre>
<p>In acest exemplu am folosit functia pentru a incarca dinamic imaginile prezentate intr-un slider jQuery. Numai imaginile care au extensia .jpg sau .jpeg si care au EXACT 600px latime si EXACT 270px inaltime vor fi incarcate in sliderul jQuery.</p>
<p>Aceasta functie o mai pot folosi pentru a afla cate imagini se afla intr-un folder.</p>
<pre class="brush: php;">
&lt;?php echo count($slides); ?&gt;
</pre>
<p><strong>read_files()</strong> &#8211; citeste fisierele dintr-un folder de pe server si le incarca intr-un array</p>
<pre class="brush: php;">
function read_files($folder, $allowed_extensions = NULL, $min_size = NULL, $max_size = NULL) {
	//-----specific valorile default
	$allowed_extensions = (isset($allowed_extensions)) ? $allowed_extensions : array('.php', '.css', '.js', '.html', '.htm');
	$min_size           = (isset($min_size))           ? $min_size           : 1;
	$max_size           = (isset($max_size))           ? $max_size           : 10000;

	//-----initializez array-ul in care voi strange numele fisierelor de pe server
	$files = array();

	if (is_dir($folder)) {
		//-----deschid folderul de fisiere pentru a-l citi
		if($handle = opendir ($folder)) {

			//-----citesc folderul
			while ($image_name = readdir($handle)) {
				//-----&quot;.&quot; reprezinta folderul curent iar &quot;..&quot; reprezinta folderul anterior
				if ($image_name != '.' &amp;&amp; $image_name != '..') {
					$image_extension = substr($image_name, strrpos($image_name,'.'),100);
					$image_extension = strtolower($image_extension);

					if (in_array($image_extension, $allowed_extensions)) {
						$size = filesize($folder.'/'.$image_name) / 1024;

						if ($size &gt;= $min_size &amp;&amp; $size &lt;= $max_size) {
							$files[] = $image_name;
						}
					}
				}
			}

			closedir($handle);
		}
	}

	return ($files);
}
</pre>
<p><strong>filter_this()</strong> &#8211; aplica filtre (<strong>trim</strong>, <strong>stripslashes</strong>, <strong>strip_tags</strong>, <strong>htmlentities</strong>, <strong>nl2br</strong>, <strong>mysql_real_escape_string</strong> etc.) pe date (array sau string)</p>
<pre class="brush: php;">
function filter_this($data, $filters = array()) {
	if (is_array($data)) {
		$wrapped_data = array();

		foreach ($data as $k =&gt; $v) {
			foreach ($filters as $filter) {
				switch ($filter) {
					case 'htmlentities':
						$v = htmlentities($v, ENT_QUOTES, 'utf-8');
						break;

					default:
						$v = $filter($v);
				}
			}

			$wrapped_data[$k] = $v;
		}
	} else {
		foreach ($filters as $filter) {
			switch ($filter) {
				case 'htmlentities':
					$data = htmlentities($data, ENT_QUOTES, 'utf-8');
					break;

				default:
					$data = $filter($data);
			}
		}

		$wrapped_data = $data;
	}

	return ($wrapped_data);
}
</pre>
<p><i>Exemplu</i></p>
<pre class="brush: php;">
$cookie = (isset($_COOKIE)) ? filter_this($_COOKIE, array('strip_tags', 'htmlentities')) : NULL;
</pre>
<p>In acest exemplu am aplicat filtrele <strong>strip_tags</strong> si <strong>htmlentities</strong> pe datele stocate in array-ul superglobal $_COOKIE ca sa ma asigur ca nu contin cod malitios. Se stie ca toate datele stocate de cookie-urile create de server pe PC-ul vizitatorilor pot fi manipulate si folosite malitios.</p>
<p><strong>get_random_string()</strong> &#8211; genereaza aleatoriu un sir de caractere. Functia imi permite sa aleg numarul si tipul de caractere.</p>
<pre class="brush: php;">
function get_random_string($length, $chars_type = array()) {
	if (count($chars_type) == 0) {
		$charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789!@#$%^&amp;*()!@#$%^&amp;*()';
	} else {
		$lower_case = (in_array('lower_case', $chars_type)) ? 'abcdefghijklmnopqrstuvwxyz' : NULL;
		$upper_case = (in_array('upper_case', $chars_type)) ? 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' : NULL;
		$digits     = (in_array('digits', $chars_type))     ? '01234567890123456789'       : NULL;
		$symbols    = (in_array('symbols', $chars_type))    ? '!@#$%^&amp;*()!@#$%^&amp;*()'       : NULL;

		$charset = $lower_case.$upper_case.$digits.$symbols;
	}

	$string = '';

	for ($i = 1; $i &lt;= $length; $i++) {
		$string .= substr($charset,rand(0,strlen($charset) - 1),1);
	}

	return ($string);
}
</pre>
<p><i>Exemplu</i></p>
<pre class="brush: php;">
//-----functia va genera un sir de 10 caractere alcatuit din minuscule si majuscule
echo get_random_string(10, array('lower_case', 'upper_case'));
</pre>
<p><strong>create_menu()</strong> &#8211; creeaza un meniu sub forma unei liste neordonate.</p>
<pre class="brush: php;">
function create_menu($menu_id, $menu_btns = array()) {
	$result = '&lt;ul id=&quot;'.$menu_id.'&quot;&gt;'.&quot;\r\n&quot;;

	foreach ($menu_btns as $k =&gt; $v) {
		$result .= '&lt;li id=&quot;'.substr($v, 0, strrpos($v, '.')).'-item&quot;&gt;'.&quot;\r\n&quot;;

		$active_btn = (basename($_SERVER['PHP_SELF']) == $v) ? ' class=&quot;active-btn&quot;' : '';

		$result .= '&lt;a href=&quot;'.$v.'&quot; title=&quot;'.$k.'&quot; id=&quot;'.substr($v, 0, strrpos($v, '.')).'-btn&quot;'.$active_btn.'&gt;';
		$result .= $k;
		$result .= '&lt;/a&gt;'.&quot;\r\n&quot;;
		$result .= '&lt;/li&gt;'.&quot;\r\n\r\n&quot;;
	}

	$result .= '&lt;/ul&gt;';

	return ($result);
}
</pre>
<p><i>Exemplu</i></p>
<pre class="brush: php;">
$my_menu = array('Home'            =&gt; 'index.php',
				 'Who we are?'     =&gt; 'who-we-are.php',
				 'Make a donation' =&gt; 'make-a-donation.php',
				 'Our work'        =&gt; 'our-work.php',
				 'News &amp; press'    =&gt; 'news-and-press.php',
				 'Contact us'      =&gt; 'contact-us.php');

echo create_menu('header-menu', $my_menu);
</pre>
<p>CSS-ul cu care stilizez lista neordonata:</p>
<pre class="brush: css;">
ul#header-menu {
	list-style-type:none;
	position:absolute;
	bottom:10px;
	left:50px;
}

	ul#header-menu li {
		float:left;
		margin-right:35px;
	}

	ul#header-menu li#contact-us-item {
		margin-right:0 !important;
	}

		ul#header-menu li a {
			color:white;
		}

		ul#header-menu li a:hover, ul#header-menu li a.active-btn {
			color:#333;
		}
</pre>
<p><strong>get_filepermis()</strong> &#8211; returneaza permisiile unui fisier</p>
<pre class="brush: php;">
function get_filepermis($file) {
	return substr(decoct(fileperms($file)), 2);
}
</pre>
<p><i>Exemplu</i></p>
<pre class="brush: php;">
echo get_filepermis('mysql_db.class.php');// 0666
</pre>
<p><strong>redirect_to()</strong> &#8211; redirecteaza vizitatorul catre o alta pagina web si intrerupe executarea codului</p>
<pre class="brush: php;">
function redirect_to($location) {
    header(&quot;Location:&quot;.$location);
    exit();
}
</pre>
<p><strong>get_file_extension()</strong> &#8211; returneaza extensia unui fisier</p>
<pre class="brush: php;">
function get_file_extension($filename) {
	if (strrpos($filename, '.')) {
		return substr($filename, strrpos($filename, '.'));
	} else {
		die('&lt;strong&gt;'.$filename.'&lt;/strong&gt; isn\'t a valid file.');
	}
}
</pre>
<p><i>Exemplu</i></p>
<pre class="brush: php;">
echo get_file_extension('mysql_db.class.php');// .php
</pre>
<p><strong>get_filesize()</strong> &#8211; returneaza marimea in kb a unui fisier </p>
<pre class="brush: php;">
function get_filesize($file) {
	return round((filesize($file)/1024));// size in kb
}
</pre>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Functii+PHP+utile+in+orice+proiect+http://co5ik.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Functii+PHP+utile+in+orice+proiect+http://co5ik.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-upload-in-php/' rel='bookmark' title='Permanent Link: Cum fac un formular de upload in PHP?'>Cum fac un formular de upload in PHP?</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/programare/functii-php-utile-in-orice-proiect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cum fac un slider de imagini in jQuery si PHP?</title>
		<link>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-slider-de-imagini-in-jquery-si-php/</link>
		<comments>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-slider-de-imagini-in-jquery-si-php/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 19:08:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programare]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=373</guid>
		<description><![CDATA[UPDATED ARTICLE
Probabil toata lumea stie cum se realizeaza in jQuery un slider. E destul de simplu. Incarcam fisierul jQuery in pagina si plugin-ul jQuery pentru realizarea sliderului. Putem prezenta in slider nu numai imagini ci si orice fel de continut de la texte la video.

index.php

&#60;?php include('includes/functions.inc.php'); ?&#62;
&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;title&#62;Cum [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-lightbox-intr-o-pagina-web-2/' rel='bookmark' title='Permanent Link: Cum implementez plugin-ul jQuery LightBox intr-o pagina web?'>Cum implementez plugin-ul jQuery LightBox intr-o pagina web?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-yoxview-intr-o-pagina-web-2/' rel='bookmark' title='Permanent Link: Cum implementez plugin-ul jQuery YoxView intr-o pagina web?'>Cum implementez plugin-ul jQuery YoxView intr-o pagina web?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;"><strong>UPDATED ARTICLE</strong></span></p>
<p>Probabil toata lumea stie cum se realizeaza in jQuery un<a title="Cum fac un slider de imagini in jQuery si PHP?" href="http://www.accesinterzis.ro/myfw/sliders/slider-1.0.php" target="_blank"> slider</a>. E destul de simplu. Incarcam <a title="fisierul jQuery" href="http://www.accesinterzis.ro/myfw/sliders/js/jquery1.4.2.js" target="_blank">fisierul jQuery</a> in pagina si <a title="plugin-ul jQuery pentru realizarea sliderului" href="http://www.accesinterzis.ro/myfw/sliders/js/easy-slider1.5.js" target="_blank">plugin-ul jQuery pentru realizarea sliderului</a>. Putem prezenta in slider nu numai imagini ci si orice fel de continut de la texte la video.<br />
<span id="more-373"></span><br />
<strong>index.php</strong></p>
<pre class="brush: php;">
&lt;?php include('includes/functions.inc.php'); ?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt;Cum fac un slider de imagini in jQuery si PHP?&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;Cum fac un slider de imagini in jQuery si PHP?&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;Cum fac un slider de imagini in jQuery si PHP?&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;Cum fac un slider de imagini in jQuery si PHP?&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex,nofollow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;

&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery1.4.2.js&quot;&gt;&lt;/script&gt;

&lt;!--**********Begin - jQuery slider**********--&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/easy-slider1.5.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){
	$(&quot;#slider&quot;).easySlider({
		auto: true,
		continuous: true
	});
});
&lt;/script&gt;
&lt;!--**********End - jQuery slider**********--&gt;

&lt;style type=&quot;text/css&quot;&gt;
* {
	margin:0;
	padding:0;
	outline:none;
}

html {
	color:black;
	background-color:white;
	font: normal normal normal 12px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
}

/***********Begin - jquery slider***********/

div#container {
	position:relative;
	width:605px;
	margin:0 auto;
}

div#container div#slider ul {
	list-style:none;
}

div#container div#slider li {
	/*
	define width and height of list item (slide)
	entire slider area will adjust according to the parameters provided here
	*/
	width:605px;
	height:270px;
	overflow:hidden;
}

div#container #prevBtn, div#container #nextBtn {
	display:block;
	width:13px;
	height:20px;
	position:absolute;
	top:275px;
}

div#container #prevBtn {
	left:0px;
}

div#container #nextBtn {
	left:587px;
}

div#container #prevBtn a, div#container #nextBtn a {
	display:block;
	width:13px;
	height:20px;
}

div#container #prevBtn a {
	background:url(images/prev-btn.png) no-repeat 0 0;
}

div#container #nextBtn a {
	background:url(images/next-btn.png) no-repeat 0 0;
}

div#container .graphic, div#container #prevBtn, div#container #nextBtn {
    display:block;
    overflow:hidden;
    text-indent:-8000px;
}

/***********End - jquery slider***********/

&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&quot;container&quot;&gt;
	&lt;div id=&quot;slider&quot;&gt;
		&lt;ul&gt;
			&lt;?php
			$slides = read_images('images/slides', array('.jpg', '.jpeg'), 600, 600, 270, 270);
			foreach ($slides as $slide) {
				echo '&lt;li&gt;';
				echo '&lt;img src=&quot;images/slides/'.$slide.'&quot; alt=&quot;&quot; /&gt;';
				echo '&lt;/li&gt;'.&quot;\r\n&quot;;
			}

			?&gt;
			&lt;li style=&quot;text-align:center; font-size:24px; color:#c00; padding-top:50px;&quot;&gt;In slider putem sa punem orice fel de continut dorim: imagini, text, video. Acest continut poate fi citit dintr-o baza de date.&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Cu ajutorul functiei PHP <a title="Cum citesc dinamic imaginile dintr-un folder?" href="http://www.accesinterzis.ro/index.php/programare/functii-php-utile-in-orice-proiect/" target="_blank">read_images()</a> citesc dinamic thumbnail-urile de pe server.</p>
<p>Sliderul poate fi folosit la fel de bine si ca sectiune de stiri in care se incarca dintr-o baza de date ultimele stiri.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+slider+de+imagini+in+jQuery+si+PHP%3F+http://8ozpc.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+slider+de+imagini+in+jQuery+si+PHP%3F+http://8ozpc.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-lightbox-intr-o-pagina-web-2/' rel='bookmark' title='Permanent Link: Cum implementez plugin-ul jQuery LightBox intr-o pagina web?'>Cum implementez plugin-ul jQuery LightBox intr-o pagina web?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-implementez-plugin-ul-jquery-yoxview-intr-o-pagina-web-2/' rel='bookmark' title='Permanent Link: Cum implementez plugin-ul jQuery YoxView intr-o pagina web?'>Cum implementez plugin-ul jQuery YoxView intr-o pagina web?</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-slider-de-imagini-in-jquery-si-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cum fac un formular de autentificare a utilizatorilor? (versiunea 2)</title>
		<link>http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-autentificare-a-utilizatorilor-versiunea-2/</link>
		<comments>http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-autentificare-a-utilizatorilor-versiunea-2/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 13:44:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=387</guid>
		<description><![CDATA[Scripturile PHP apelate prin functia include() le gasiti in articolul despre versiunea 2 a formularului de contact.
Interogarea SQL care creeaza tabelul in care se vor stoca logurile despre autentificarile esuate sau reusite o gasiti in articolul despre prima versiune a formularului de autentificare a utilizatorilor.

loginf.php

&#60;?php
/*
Cum fac un formular de autentificare a utilizatorilor? (versiunea 2)
Autor: Marian [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-inregistrare-a-utilizatorilor-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)'>Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-autentificare-a-utilizatorilor/' rel='bookmark' title='Permanent Link: Cum fac un formular de autentificare a utilizatorilor?'>Cum fac un formular de autentificare a utilizatorilor?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de contact? (versiunea 2)'>Cum fac un formular de contact? (versiunea 2)</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Scripturile PHP apelate prin functia include() le gasiti in <a title="Cum fac un formular de contact? (versiunea 2)" href="http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/" target="_blank">articolul despre versiunea 2 a formularului de contact</a>.<br />
Interogarea SQL care creeaza tabelul in care se vor stoca logurile despre autentificarile esuate sau reusite o gasiti in <a title="Cum fac un formular de autentificare a utilizatorilor?" href="http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-autentificare-a-utilizatorilor/" target="_blank">articolul despre prima versiune a formularului de autentificare a utilizatorilor</a>.</p>
<p><span id="more-387"></span></p>
<p><strong>loginf.php</strong></p>
<pre class="brush: php;">
&lt;?php
/*
Cum fac un formular de autentificare a utilizatorilor? (versiunea 2)
Autor: Marian Barbu aka AccesInterzis
Website: http://www.accesinterzis.ro
2010 (c) Toate drepturile rezervate
*/

//-----specific EXACT cu ce campuri se va lucra
#1
$required_fields = array('username', 'password', 'login');
$sent_fields = array_keys($_POST);

//-----creez o sesiune pe server pentru a salva in ea, in caz ca autentificarea reuseste, numele utilizatorului si browserul si sistemul de operare folosite de utilizator
#2
session_start();

//-----ma conectez la baza de date
#3
include('includes/connect_to_db.inc.php');

//-----incarc fisierele include
#3.1
include('includes/validators.inc.php');
include('includes/filter_it.inc.php');
include('includes/validate_form.inc.php');
include('includes/filtered_urls_and_cookies.inc.php');

//------scriptul PHP se executa doar daca cererea a fost facuta de pe aceeasi pagina pe care se afla formularul si doar daca toate campurile formularului au fos trimise
#4
if ($referer == 'http://'.$_SERVER['HTTP_HOST'].$php_self &amp;&amp; $required_fields == $sent_fields) {
	//-----procesez datele din formular; rezultatul va fi o lista de erori, o lista cu datele nevalide, o lista cu datele valide
	#5
	include('includes/process_form.inc.php');

	//-----infasor datele VALIDE in mysql_real_escape_string() deoarece urmeaza sa interoghez baza de date
	#6
	$processed_form['good_data'] = filter_it($processed_form['good_data'], array('mysql_real_escape_string'));

	//-----BEGIN - DATA HANDLING
	#7
	if (isset($processed_form['good_data']['username']) &amp;&amp; isset($processed_form['good_data']['password'])) {
		$q = &quot;SELECT username FROM ai_registrationform WHERE username='&quot;.$processed_form['good_data']['username'].&quot;' AND password=SHA('&quot;.$processed_form['good_data']['password'].&quot;')&quot;;
		$result = mysql_query($q) or die(mysql_error());
		$row = mysql_fetch_array($result);

		if ($row == false) {
			//-----daca datele de logare sunt valide dar nu se regasesc in baza de date se va inregistra in tabelul de loguri un log despre aceasta autentificare esuata
			$q2 = &quot;INSERT INTO ai_authentication_logs(`username`, `password`, `server_authentication_date`, `client_authentication_date`, `ip`, `browser_os`, `screen_resolution`, `status`)&quot;
				 .&quot;VALUES('&quot;.$processed_form['good_data']['username'].&quot;', '&quot;.$processed_form['good_data']['password'].&quot;', NOW(), '&quot;.$cookie['client_authentication_date'].&quot;', '&quot;.$_SERVER['REMOTE_ADDR'].&quot;', '&quot;.$browser_os.&quot;', '&quot;.$cookie['screen_resolution'].&quot;', 'failed')&quot;;

			mysql_query($q2) or die(mysql_error());

			$processed_form['issues']['username'] = 'Your login data are wrong.';
			$processed_form['issues']['password'] = '';
		}
	}
	//-----END - DATA HANDLING

	//-----daca nu exista niciun fel de erori si autentificarea s-a efetuat cu succes
    #8
	if(count($processed_form['issues']) == 0) {
		//-----salvez in tabelul de loguri un log despre autetificare
		#8.1
		$q = &quot;INSERT INTO ai_authentication_logs(`username`, `password`, `server_authentication_date`, `client_authentication_date`, `ip`, `browser_os`, `screen_resolution`, `status`)&quot;
		     .&quot;VALUES('&quot;.$processed_form['good_data']['username'].&quot;', SHA('&quot;.$processed_form['good_data']['password'].&quot;'), NOW(), '&quot;.$cookie['client_authentication_date'].&quot;', '&quot;.$_SERVER['REMOTE_ADDR'].&quot;', '&quot;.$browser_os.&quot;', '&quot;.$cookie['screen_resolution'].&quot;', 'succesful')&quot;;

		mysql_query($q) or die(mysql_error());

		//-----salvez in sesiune numele utilizatorului si numele browserului si sistemului de operare pe care le foloseste
		#8.2
		$_SESSION['username'] = $row['username'];
		$_SESSION['browser_os'] = sha1($_SERVER['HTTP_USER_AGENT']);

		//-----redirectez utilizatorul de pe pagina de login pe pagina principala a sectiunii de administrare
		#8.3
		header('Location:http://'.$_SERVER['HTTP_HOST'].dirname($php_self).'/backend.php');
		exit();
	}

	//-----infasor datele in htmlentities() deoarece urmeaza sa le afisez in formular
	#9
	$get_my_fields = filter_it($get_my_fields, array('htmlentities'));
}
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;How do I make a login form?&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;How do I make a login form?&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;login,form,php,script,mysql,database,user,backend,admin,section,cms&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;How do I make a login form?&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;index,follow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;

&lt;style type=&quot;text/css&quot;&gt;
* {
	margin:0;
	padding:0;
	outline:none;
}

html {
	color:black;
	background-color:white;
	font: normal normal normal 12px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
}

/*INCEPUT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE AUTENTIFICARE*/

div#loginf {
	width:285px;
	margin:0px auto;
}

div#loginf h1 {
	color:black;
	font: normal normal normal 24px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
	padding-bottom:5px;
}

div#loginf div {
	margin:0 0 5px 0;
}

div#loginf label {
	width:80px;
	float:left;
}

div#loginf label span {
	color:#c00;
}

div#loginf input {
	width:200px;
}

div#loginf textarea {
	width:300px;
	height:150px;
}

div#loginf input, div#loginf textarea {
	border:1px #ccc solid;
}

div#loginf input:hover, div#loginf textarea:hover {
	border:1px #666 solid;
}

div#loginf input#login {
	width:auto;
	color:#FFF;
	background-color:#333;
	border:1px #000 solid !important;
	cursor:pointer;
}

div#loginf input#login:hover {
	color:#333;
	background-color:#fff;
	border:1px #333 solid;
}

/*Inceput - stilurile erorilor*/

div#loginf p {
	color:#c00;
	padding:0 0 0 80px;
	font-size:10px;
	text-align:left;
}

div#loginf div#username_field label,
div#loginf div#password_field label {
	color:#c00;
}

div#loginf div#username_field input,
div#loginf div#password_field input {
	border:1px #c00 solid;
	color:#c00;
}

div#loginf div#username_field input:hover,
div#loginf div#password_field input:hover {
	border:1px #c00 solid;
}

/*Sfarsit - stilurile erorilor*/

/*SFARSIT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE AUTENTIFICARE*/
&lt;/style&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
/*
Creez cookie-urile care vor stoca date despre utilizator.
Aceste cookie-uri se creeaza atunci cand se deschide prima oara pagina de login.
De abia cand se reincarca pagina, adica cand utilizatorul apasa butonul &quot;login&quot;, scriptul PHP
se poate folosi de aceste cookie-uri.
*/
document.cookie = 'screen_resolution=' + screen.width + '*' + screen.height + ';';

var current_date = new Date();
var year = current_date.getFullYear();
var month = current_date.getMonth();
var day = current_date.getDate();
var hour = current_date.getHours();
var minutes = current_date.getMinutes();
var seconds = current_date.getSeconds();
var current_date = year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds;
document.cookie = 'client_authentication_date=' + current_date + ';';
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&quot;loginf&quot;&gt;
	&lt;h1&gt;
		&lt;label&gt;&amp;nbsp;&lt;/label&gt;
		Login
	&lt;/h1&gt;

	&lt;form action=&quot;&lt;?php echo 'http://'.$_SERVER['HTTP_HOST'].$php_self; ?&gt;&quot; method=&quot;post&quot;&gt;
		&lt;?php echo (isset($processed_form['issues']['username'])) ? '&lt;p&gt;'.$processed_form['issues']['username'].'&lt;/p&gt;&lt;div id=&quot;username_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;username&quot;&gt;Username&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;username&quot; type=&quot;text&quot; id=&quot;username&quot; value=&quot;&lt;?php if (isset($get_my_fields['username'])) echo $get_my_fields['username']; ?&gt;&quot; /&gt;
		&lt;/div&gt;

		&lt;?php echo (isset($processed_form['issues']['password'])) ? '&lt;p&gt;'.$processed_form['issues']['password'].'&lt;/p&gt;&lt;div id=&quot;password_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;password&quot;&gt;Password&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;password&quot; type=&quot;password&quot; id=&quot;password&quot; /&gt;
		&lt;/div&gt;

		&lt;div&gt;
			&lt;label&gt; &amp;nbsp; &lt;/label&gt;
			&lt;input name=&quot;login&quot; type=&quot;submit&quot; id=&quot;login&quot; value=&quot;login&quot; /&gt;
		&lt;/div&gt;
	&lt;/form&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>backend.php</strong></p>
<pre class="brush: php;">
&lt;?php
//-----deschid sesiunea pentru a verifica daca utilizatorul s-a autentificat sau nu
#1
session_start();

//-----incarc include-urile care imi filtreaza URL-urile obtinute dinamic, http_user_agent-ul si cookie-urile
#2
include('includes/filter_it.inc.php');
include('includes/filtered_urls_and_cookies.inc.php');

//-----daca utilizatorul nu s-a autentificat va fi redirectionat catre pagina de login
#3
if (!isset($_SESSION['username']) || !isset($_SESSION['browser_os']) || $_SESSION['browser_os'] != sha1($browser_os)) {
		header('Location:http://'.$_SERVER['HTTP_HOST'].dirname($php_self).'/loginf.php');
		exit();
}

//-----scriptul care asigura functia de logout
#4
if (isset($_GET['action']) &amp;&amp; $_GET['action'] == 'logout') {
	//-----distrug toate variabilele sesiunii de pe server reinitializind intregul tablou superglobal $_SESSION
	#4.1
	$_SESSION = array();

	//-----sterg de pe server toate datele sesiunii apeland functia session_destroy() si sterg de pe PC-ul utilizatorului cookie-ul care stocheaza identificatorul de sesiune
	#4.2
	if (session_destroy() &amp;&amp; setcookie('PHPSESSID', '', time()-300, '/', '', 0)) {
		header('Location:http://'.$_SERVER['HTTP_HOST'].dirname($php_self).'/loginf.php');
		exit();
	}
}
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Backend&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;How do I make a backend?&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;backend,administration,section,admin,cms,content,managament,system,php,script,mysql,database&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;How do I make a backend?&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;index,follow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;

&lt;link href=&quot;http://www.accesinterzis.ro/myportofolio/css/reset.css&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot; media=&quot;all&quot; /&gt;
&lt;style type=&quot;text/css&quot;&gt;
* {
	margin:0;
	padding:0;
	outline:none;
}

html {
	color:black;
	background-color:white;
	font: normal normal normal 12px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
}

/*INCEPUT - LINIILE CSS CARE CREEAZA SKINUL SECTIUNII DE ADMINISTRARE*/

div#backend {
	width:1000px;
	margin:10px auto;
	overflow:auto;
	border:1px #ccc solid;
	padding:10px;
}

div#backend a {
	color:#900;
	text-decoration:none;
}

div#backend ul#welcome_message {
	overflow:auto;
	list-style-type:none;
}

div#backend ul#sidebar {
	width:10%;
	float:left;
	list-style-type:none;
	border-right:1px #ccc solid;
}

div#backend div#mainarea {
	width:80%;
	float:right;
}

div#backend div#mainarea p#confirmation_message {
	width:75%;
	margin:250px auto;
}

div#backend div#footer{
	width:100%;
	float:left;
	text-align:center;
}

div.splitter {
	width:100%;
	height:1px;
	clear:both;
	float:left;
	border-top:1px #ccc solid;
	margin: 10px 0 10px 0;
}

/*SFARSIT - LINIILE CSS CARE CREEAZA SKINUL SECTIUNII DE ADMINISTRARE*/
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;

&lt;div id=&quot;backend&quot;&gt;
	&lt;ul id=&quot;welcome_message&quot;&gt;
		&lt;li style=&quot;float:left;&quot;&gt;Welcome &lt;strong&gt;&lt;?php echo $_SESSION['username']; ?&gt;&lt;/strong&gt; to the administration section&lt;/li&gt;
		&lt;li style=&quot;float:right;&quot;&gt;&lt;a href=&quot;&lt;?php echo 'http://'.$_SERVER['HTTP_HOST'].$php_self; ?&gt;?action=logout&quot; title=&quot;Logout&quot;&gt;Logout&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;

	&lt;div class=&quot;splitter&quot;&gt;&lt;/div&gt;

	&lt;ul id=&quot;sidebar&quot;&gt;
		&lt;?php
		for ($i = 0; $i &lt; 40; $i++) {
			echo '&lt;li&gt;sidebar&lt;/li&gt;';
		}
		?&gt;
	&lt;/ul&gt;

	&lt;div id=&quot;mainarea&quot;&gt;
		&lt;p id=&quot;confirmation_message&quot;&gt;
		&lt;strong&gt;&lt;?php echo $_SESSION['username']; ?&gt;&lt;/strong&gt;, esti aici deoarece ai dovedit ca esti un utilizator autorizat al acestei sectiuni de administrare.
		Acum delogheaza-te si incearca sa accesezi din nou &lt;strong&gt;&lt;?php echo 'http://'.$_SERVER['HTTP_HOST'].$php_self; ?&gt;&lt;/strong&gt;.
		Vei vedea ce se intampla cand cineva neautentificat incearca sa intre in sectiunea de administrare.
		&lt;/p&gt;
	&lt;/div&gt;

	&lt;div class=&quot;splitter&quot;&gt;&lt;/div&gt;

	&lt;div id=&quot;footer&quot;&gt;
		Designed and developed by &lt;a href=&quot;http://www.accesinterzis.ro&quot; title=&quot;Programare | Web development | Web design | Securitate IT | SEO&quot; target=&quot;_blank&quot;&gt;www.accesinterzis.ro&lt;/a&gt; &amp;copy; 2010. All rights reserved.
	&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+autentificare+a+utilizatorilor%3F+%28versiunea+2%29+http://q423b.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+autentificare+a+utilizatorilor%3F+%28versiunea+2%29+http://q423b.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-inregistrare-a-utilizatorilor-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)'>Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-autentificare-a-utilizatorilor/' rel='bookmark' title='Permanent Link: Cum fac un formular de autentificare a utilizatorilor?'>Cum fac un formular de autentificare a utilizatorilor?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de contact? (versiunea 2)'>Cum fac un formular de contact? (versiunea 2)</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-autentificare-a-utilizatorilor-versiunea-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)</title>
		<link>http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-inregistrare-a-utilizatorilor-versiunea-2/</link>
		<comments>http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-inregistrare-a-utilizatorilor-versiunea-2/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 13:41:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=386</guid>
		<description><![CDATA[Scripturile PHP apelate prin functia include() le gasiti in articolul despre versiunea 2 a formularului de contact.
Interogarea SQL care creeaza tabelul in care se vor stoca utilizatorii o gasiti in articolul despre prima versiune a formularului de inregistrare a utilizatorilor.

registrationf.php

&#60;?php
/*
Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)
Autor: Marian Barbu aka AccesInterzis
Website: http://www.accesinterzis.ro
2010 (c) [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-inregistrare-a-utilizatorilor/' rel='bookmark' title='Permanent Link: Cum fac un formular de inregistrare a utilizatorilor?'>Cum fac un formular de inregistrare a utilizatorilor?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-autentificare-a-utilizatorilor-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de autentificare a utilizatorilor? (versiunea 2)'>Cum fac un formular de autentificare a utilizatorilor? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de comentarii? (versiunea 2)'>Cum fac un formular de comentarii? (versiunea 2)</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Scripturile PHP apelate prin functia include() le gasiti in <a title="Cum fac un formular de contact? (versiunea 2)" href="http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/" target="_blank">articolul despre versiunea 2 a formularului de contact</a>.<br />
Interogarea SQL care creeaza tabelul in care se vor stoca utilizatorii o gasiti in <a title="Cum fac un formular de inregistrare a utilizatorilor?" href="http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-inregistrare-a-utilizatorilor/" target="_blank">articolul despre prima versiune a formularului de inregistrare a utilizatorilor</a>.</p>
<p><span id="more-386"></span></p>
<p><strong>registrationf.php</strong></p>
<pre class="brush: php;">
&lt;?php
/*
Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)
Autor: Marian Barbu aka AccesInterzis
Website: http://www.accesinterzis.ro
2010 (c) Toate drepturile rezervate
*/

//-----specific EXACT cu ce campuri se va lucra
#1
$required_fields = array('username', 'email', 'password', 'retype_password', 'register');
$sent_fields = array_keys($_POST);

//-----ma conectez la baza de date
#2
include('includes/connect_to_db.inc.php');

//-----incarc fisierele include
#2.1
include('includes/validators.inc.php');
include('includes/filter_it.inc.php');
include('includes/validate_form.inc.php');
include('includes/filtered_urls_and_cookies.inc.php');

//------scriptul PHP se executa doar daca cererea a fost facuta de pe aceeasi pagina pe care se afla formularul si doar daca toate campurile formularului au fos trimise
#3
if ($referer == 'http://'.$_SERVER['HTTP_HOST'].$php_self &amp;&amp; $required_fields == $sent_fields) {
	//-----procesez datele din formular; rezultatul va fi o lista de erori, o lista cu datele nevalide, o lista cu datele valide
	#5
	include('includes/process_form.inc.php');

	//-----infasor datele VALIDE in mysql_real_escape_string() deoarece urmeaza sa interoghez baza de date
	#6
	$processed_form['good_data'] = filter_it($processed_form['good_data'], array('mysql_real_escape_string'));

	//-----BEGIN - DATA HANDLING
	#7
	if (isset($processed_form['good_data']['username'])) {
		$q = &quot;SELECT user_id FROM ai_registrationform WHERE LOWER(username)='&quot;.strtolower($processed_form['good_data']['username']).&quot;'&quot;;
        $result = mysql_query($q) or die(mysql_error());

		if (mysql_num_rows($result) != 0) {
			$processed_form['issues']['username'] = 'The username &lt;strong&gt;'.$processed_form['good_data']['username'].'&lt;/strong&gt; already exists in our database.';
		}
	}

	if (isset($processed_form['good_data']['email'])) {
		$q = &quot;SELECT user_id FROM ai_registrationform WHERE LOWER(email)='&quot;.strtolower($processed_form['good_data']['email']).&quot;'&quot;;
        $result = mysql_query($q) or die(mysql_error());

        if (mysql_num_rows($result) != 0) {
			$processed_form['issues']['email'] = 'The email address &lt;strong&gt;'.$processed_form['good_data']['email'].'&lt;/strong&gt; already exists in our database.';
		}
	}

	if (isset($processed_form['good_data']['password'])) {
		if ($processed_form['good_data']['password'] != $_POST['retype_password']) {
			$processed_form['issues']['password'] = 'The two passwords don\'t match.';
		}
	}
	//-----END - DATA HANDLING

	//------daca nu exista niciun fel de erori bag datele in baza de date
    #8
	if(count($processed_form['issues']) == 0) {
		$q = &quot;INSERT INTO ai_registrationform(`username`, `email`, `password`, `registration_date`, `ip`)&quot;
			.&quot;VALUES('&quot;.$processed_form['good_data']['username'].&quot;', '&quot;.$processed_form['good_data']['email'].&quot;', SHA('&quot;.$processed_form['good_data']['password'].&quot;'), NOW(), '&quot;.$_SERVER['REMOTE_ADDR'].&quot;')&quot;;

		//-----daca intr-adevar datele au fost bagate in baza de date se va afisa pe monitor un mesaj de confirmare
		#8.1
		if (mysql_query($q)) {
			$confirmation = 'The user &lt;strong&gt;'.$processed_form['good_data']['username'].'&lt;/strong&gt; was succesfully registered in our databse.';
		} else {
			$confirmation = 'Something is wrong with the server. The user &lt;strong&gt;'.$processed_form['good_data']['username'].'&lt;/strong&gt; wasn\'t registered.';
		}

		$confirmation .= ' &lt;a href=&quot;http://'.$_SERVER['HTTP_HOST'].$php_self.'&quot; title=&quot;Back&quot; id=&quot;back&quot;&gt;Back to registration form&lt;/a&gt;';

		#8.2
		$display = 'style=&quot;display:none;&quot;';
	}

	//-----infasor datele in htmlentities() deoarece urmeaza sa le afisez in formular
	#9
	$get_my_fields = filter_it($get_my_fields, array('htmlentities'));
}
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;How do I make a registration form?&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;How do I make a registration form?&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;registration,form,php,script,mysql,database,user,backend,admin,section,cms&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;How do I make a registration form?&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;index,follow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;

&lt;style type=&quot;text/css&quot;&gt;
* {
	margin:0;
	padding:0;
	outline:none;
}

html {
	color:black;
	background-color:white;
	font: normal normal normal 12px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
}

/*INCEPUT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE INREGISTRARE*/

div#registrationf {
	width:335px;
	margin:0px auto;
}

div#registrationf h1 {
	color:black;
	font: normal normal normal 24px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
	padding-bottom:5px;
}

div#registrationf div {
	margin:0 0 5px 0;
}

div#registrationf label {
	width:130px;
	float:left;
}

div#registrationf label span {
	color:#c00;
}

div#registrationf input {
	width:200px;
}

div#registrationf textarea {
	width:300px;
	height:150px;
}

div#registrationf input, div#registrationf textarea {
	border:1px #ccc solid;
}

div#registrationf input:hover, div#registrationf textarea:hover {
	border:1px #666 solid;
}

div#registrationf input#register {
	width:auto;
	color:#FFF;
	background-color:#333;
	border:1px #000 solid !important;
	cursor:pointer;
}

div#registrationf input#register:hover {
	color:#333;
	background-color:#fff;
	border:1px #333 solid;
}

/*Inceput - stilurile erorilor*/
div#registrationf p {
	color:#c00;
	padding:0 0 0 130px;
	font-size:10px;
	text-align:left;
}

div#registrationf div#username_field label,
div#registrationf div#email_field label,
div#registrationf div#password_field label,
div#registrationf div#retype_password_field label {
	color:#c00;
}

div#registrationf div#username_field input,
div#registrationf div#email_field input,
div#registrationf div#password_field input,
div#registrationf div#retype_password_field input {
	border:1px #c00 solid;
	color:#c00;
}

div#registrationf div#username_field input:hover,
div#registrationf div#email_field input:hover,
div#registrationf div#password_field input:hover,
div#registrationf div#retype_password_field input:hover {
	border:1px #c00 solid;
}
/*Sfarsit - stilurile erorilor*/

div#registrationf a#back {
	color:#900;
	font-weight:bold;
	text-decoration:underline;
}

/*SFARSIT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE INREGISTRARE*/
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&quot;registrationf&quot;&gt;
	&lt;h1&gt;
		&lt;label&gt;&amp;nbsp;&lt;/label&gt;
		Register an user
	&lt;/h1&gt;

	&lt;?php if (isset($confirmation)) echo '&lt;p&gt;'.$confirmation.'&lt;/p&gt;'; ?&gt;

	&lt;form action=&quot;&lt;?php echo 'http://'.$_SERVER['HTTP_HOST'].$php_self; ?&gt;&quot; method=&quot;post&quot; &lt;?php if (isset($display)) echo $display; ?&gt;&gt;
		&lt;?php echo (isset($processed_form['issues']['username'])) ? '&lt;p&gt;'.$processed_form['issues']['username'].'&lt;/p&gt;&lt;div id=&quot;username_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;username&quot;&gt;Username&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;username&quot; type=&quot;text&quot; id=&quot;username&quot; value=&quot;&lt;?php if (isset($get_my_fields['username'])) echo $get_my_fields['username']; ?&gt;&quot; /&gt;
		&lt;/div&gt;

		&lt;?php echo (isset($processed_form['issues']['email'])) ? '&lt;p&gt;'.$processed_form['issues']['email'].'&lt;/p&gt;&lt;div id=&quot;email_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;email&quot;&gt;Email&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;email&quot; type=&quot;text&quot; id=&quot;email&quot; value=&quot;&lt;?php if (isset($get_my_fields['email'])) echo $get_my_fields['email']; ?&gt;&quot; /&gt;
		&lt;/div&gt;

		&lt;?php echo (isset($processed_form['issues']['password'])) ? '&lt;p&gt;'.$processed_form['issues']['password'].'&lt;/p&gt;&lt;div id=&quot;password_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;password&quot;&gt;Password&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;password&quot; type=&quot;password&quot; id=&quot;password&quot; /&gt;
		&lt;/div&gt;

		&lt;div&gt;
			&lt;label for=&quot;retype_password&quot;&gt;Retype password&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;retype_password&quot; type=&quot;password&quot; id=&quot;retype_password&quot; /&gt;
		&lt;/div&gt;

		&lt;div&gt;
			&lt;label&gt; &amp;nbsp; &lt;/label&gt;
			&lt;input name=&quot;register&quot; type=&quot;submit&quot; id=&quot;register&quot; value=&quot;register&quot; /&gt;
		&lt;/div&gt;
	&lt;/form&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+inregistrare+a+utilizatorilor%3F+%28versiunea+2%29+http://gtspb.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+inregistrare+a+utilizatorilor%3F+%28versiunea+2%29+http://gtspb.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-inregistrare-a-utilizatorilor/' rel='bookmark' title='Permanent Link: Cum fac un formular de inregistrare a utilizatorilor?'>Cum fac un formular de inregistrare a utilizatorilor?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-autentificare-a-utilizatorilor-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de autentificare a utilizatorilor? (versiunea 2)'>Cum fac un formular de autentificare a utilizatorilor? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de comentarii? (versiunea 2)'>Cum fac un formular de comentarii? (versiunea 2)</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-inregistrare-a-utilizatorilor-versiunea-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cum fac un formular de comentarii? (versiunea 2)</title>
		<link>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii-versiunea-2/</link>
		<comments>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii-versiunea-2/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 13:37:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programare]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=385</guid>
		<description><![CDATA[Scripturile PHP apelate prin functia include() le gasiti in articolul despre versiunea 2 a formularului de contact.
Interogarea SQL care creeaza tabelul in care se vor stoca comentariile o gasiti in articolul despre prima versiune a formularului de comentarii.

commentf.php

&#60;?php
/*
Titlu: Cum fac un formular de comentarii? (versiunea 2)
Autor: Marian Barbu aka AccesInterzis
Website: http://www.accesinterzis.ro
2010 (c) Toate drepturile rezervate
*/

//-----specific [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii/' rel='bookmark' title='Permanent Link: Cum fac un formular de comentarii?'>Cum fac un formular de comentarii?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de contact? (versiunea 2)'>Cum fac un formular de contact? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-inregistrare-a-utilizatorilor-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)'>Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Scripturile PHP apelate prin functia include() le gasiti in <a title="Cum fac un formular de contact? (versiunea 2)" href="http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/" target="_blank">articolul despre versiunea 2 a formularului de contact</a>.<br />
Interogarea SQL care creeaza tabelul in care se vor stoca comentariile o gasiti in <a title="Cum fac un formular de comentarii?" href="http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii/" target="_blank">articolul despre prima versiune a formularului de comentarii</a>.</p>
<p><span id="more-385"></span></p>
<p><strong>commentf.php</strong></p>
<pre class="brush: php;">
&lt;?php
/*
Titlu: Cum fac un formular de comentarii? (versiunea 2)
Autor: Marian Barbu aka AccesInterzis
Website: http://www.accesinterzis.ro
2010 (c) Toate drepturile rezervate
*/

//-----specific EXACT cu ce campuri se va lucra
#1
$required_fields = array('name', 'email', 'website', 'comment', 'security_code', 'add');
$sent_fields = array_keys($_POST);

//-----creez o sesiune pe server pentru a salva in ea codul generat aleatoriu de sistemul CAPTCHA
#2
session_start();

//-----ma conectez la baza de date
#3
include('includes/connect_to_db.inc.php');

//-----incarc fisierele include
#3.1
include('includes/validators.inc.php');
include('includes/filter_it.inc.php');
include('includes/validate_form.inc.php');
include('includes/filtered_urls_and_cookies.inc.php');

//------scriptul PHP se executa doar daca cererea a fost facuta de pe aceeasi pagina pe care se afla formularul si doar daca toate campurile formularului au fos trimise
#4
if ($referer == 'http://'.$_SERVER['HTTP_HOST'].$php_self &amp;&amp; $required_fields == $sent_fields) {
	//-----procesez datele din formular; rezultatul va fi o lista de erori, o lista cu datele nevalide, o lista cu datele valide
	#5
	include('includes/process_form.inc.php');

	//-----infasor datele in mysql_real_escape_string() deoarece urmeaza sa le bag in baza de date
	#6
	$processed_form['good_data'] = filter_it($processed_form['good_data'], array('mysql_real_escape_string'));

	//------daca nu exista niciun fel de erori bag datele in baza de date
    #7
	if(count($processed_form['issues']) == 0) {
		#7.1
		$q = &quot;INSERT INTO ai_commentform(`name`, `email`, `website`, `comment`, `date`, `ip`)&quot;
			.&quot;VALUES('&quot;.$processed_form['good_data']['name'].&quot;', '&quot;.$processed_form['good_data']['email'].&quot;', '&quot;.$processed_form['good_data']['website'].&quot;', '&quot;.$processed_form['good_data']['comment'].&quot;', NOW(), '&quot;.$_SERVER['REMOTE_ADDR'].&quot;')&quot;;

		#7.2
		if (mysql_query($q) == false) {
			$error_message = 'Something is wrong with the server. Your comment wasn\'t added.';
		}
	}

	//-----infasor datele in htmlentities() deoarece urmeaza sa le afisez in formular
	#8
	$get_my_fields = filter_it($get_my_fields, array('htmlentities'));
}
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;How do I make a comment form?&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;How do I make a comment form?&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;comment,form,php,script,add,email&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;How do I make a comment form?&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;index,follow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;

&lt;style type=&quot;text/css&quot;&gt;
* {
	margin:0;
	padding:0;
	outline:none;
}

html {
	color:black;
	background-color:white;
	font: normal normal normal 12px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
}

/*INCEPUT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE CONTACT*/

div#commentf {
	width:530px;
	margin:0px auto;
}

div#commentf h1 {
	color:black;
	font: normal normal normal 24px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
	padding-bottom:5px;
}

div#commentf div {
	margin:0 0 5px 0;
}

div#commentf label {
	width:115px;
	float:left;
}

div#commentf label span {
	color:#c00;
}

div#commentf input {
	width:200px;
}

div#commentf textarea {
	width:400px;
	height:150px;
}

div#commentf input, div#commentf textarea {
	border:1px #ccc solid;
}

div#commentf input:hover, div#commentf textarea:hover {
	border:1px #666 solid;
}

div#commentf input#add {
	width:auto;
	color:#FFF;
	background-color:#333;
	border:1px #000 solid !important;
	cursor:pointer;
}

div#commentf input#add:hover {
	color:#333;
	background-color:#fff;
	border:1px #333 solid;
}

/*Inceput - stilurile erorilor*/
div#commentf form#form-itself p {
	color:#c00;
	font-size:10px;
	padding:0 0 0 115px;
	text-align:left;
}

div#commentf div#name_field label,
div#commentf div#email_field label,
div#commentf div#website_field label,
div#commentf div#comment_field label,
div#commentf div#security_code_field label {
	color:#c00;
}

div#commentf div#name_field input,
div#commentf div#email_field input,
div#commentf div#website_field input,
div#commentf div#comment_field textarea,
div#commentf div#security_code_field input {
	border:1px #c00 solid;
	color:#c00;
}

div#commentf div#name_field input:hover,
div#commentf div#email_field input:hover,
div#commentf div#website_field input:hover,
div#commentf div#comment_field textarea:hover,
div#commentf div#security_code_field input:hover {
	border:1px #c00 solid;
}
/*Sfarsit - stilurile erorilor*/

div#comments h1 {
	color:#c00;
	font: normal normal normal 24px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
	padding-bottom:5px;
}

/*SFARSIT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE CONTACT*/
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;?php
$q = &quot;SELECT name, website, date, comment FROM ai_commentform ORDER BY comment_id DESC&quot;;
$result = mysql_query($q) or die(mysql_error());

//-----cand citesc datele din baza de date le infasor in stripslashes(), htmlentities() si nl2br()
if (mysql_num_rows($result) != 0) {
	echo '&lt;div id=&quot;comments&quot;&gt;';
	echo '&lt;h1&gt;'.mysql_num_rows($result).' comment(s) so far&lt;/h1&gt;';

	$i = 0;
	while ($row = mysql_fetch_array($result)) {
		echo '&lt;p&gt;';
		echo ($row['website'] == '') ? '&lt;strong&gt;'.$row['name'].'&lt;/strong&gt;' : '&lt;a href=&quot;'.$row['website'].'&quot; title=&quot;'.$row['website'].'&quot; target=&quot;_blank&quot;&gt;'.$row['name'].'&lt;/a&gt;';
		echo ' - '.$row['date'];
		echo '&lt;/p&gt;';

		echo (is_int($i/2)) ? '&lt;p style=&quot;margin-bottom:15px;&quot;&gt;' : '&lt;p style=&quot;margin-bottom:15px; background:#ccc;&quot;&gt;';
		echo nl2br(htmlentities(stripslashes($row['comment']), ENT_QUOTES, 'utf-8'));
		echo '&lt;/p&gt;';

		$i++;
	}
	echo '&lt;/div&gt;';
}
?&gt;
&lt;div id=&quot;commentf&quot;&gt;
	&lt;h1&gt;
		&lt;label&gt;&amp;nbsp;&lt;/label&gt;
		Leave a comment
	&lt;/h1&gt;

	&lt;form action=&quot;&lt;?php echo 'http://'.$_SERVER['HTTP_HOST'].$php_self; ?&gt;&quot; method=&quot;post&quot; id=&quot;form-itself&quot;&gt;
		&lt;?php echo (isset($processed_form['issues']['name'])) ? '&lt;p&gt;'.$processed_form['issues']['name'].'&lt;/p&gt;&lt;div id=&quot;name_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;name&quot;&gt;Name&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;name&quot; type=&quot;text&quot; id=&quot;name&quot; value=&quot;&lt;?php if (isset($get_my_fields['name'])) echo $get_my_fields['name']; ?&gt;&quot; /&gt;
		&lt;/div&gt;

		&lt;?php echo (isset($processed_form['issues']['email'])) ? '&lt;p&gt;'.$processed_form['issues']['email'].'&lt;/p&gt;&lt;div id=&quot;email_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;email&quot;&gt;Email&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;email&quot; type=&quot;text&quot; id=&quot;email&quot; value=&quot;&lt;?php if (isset($get_my_fields['email'])) echo $get_my_fields['email']; ?&gt;&quot; /&gt;
		&lt;/div&gt;

		&lt;?php echo (isset($processed_form['issues']['website'])) ? '&lt;p&gt;'.$processed_form['issues']['website'].'&lt;/p&gt;&lt;div id=&quot;website_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;website&quot;&gt;Website:&lt;/label&gt;
			&lt;input name=&quot;website&quot; type=&quot;text&quot; id=&quot;website&quot; value=&quot;&lt;?php if (isset($get_my_fields['website'])) echo $get_my_fields['website']; ?&gt;&quot; /&gt;
		&lt;/div&gt;

		&lt;?php echo (isset($processed_form['issues']['comment'])) ? '&lt;p&gt;'.$processed_form['issues']['comment'].'&lt;/p&gt;&lt;div id=&quot;comment_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;comment&quot;&gt;Your comment&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;textarea name=&quot;comment&quot; rows=&quot;1&quot; cols=&quot;1&quot; id=&quot;comment&quot;&gt;&lt;?php if (isset($get_my_fields['comment'])) echo $get_my_fields['comment']; ?&gt;&lt;/textarea&gt;
		&lt;/div&gt;

		&lt;p&gt;
			&lt;img src=&quot;includes/captchaimage.inc.php?width=120&amp;height=40&amp;characters=5&quot; /&gt;
		&lt;p&gt;

		&lt;?php echo (isset($processed_form['issues']['security_code'])) ? '&lt;p&gt;'.$processed_form['issues']['security_code'].'&lt;/p&gt;&lt;div id=&quot;security_code_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;security_code&quot;&gt;Are you human?&lt;span&gt;*&lt;/span&gt;&lt;/label&gt;
			&lt;input id=&quot;security_code&quot; name=&quot;security_code&quot; type=&quot;text&quot; /&gt;
		&lt;/div&gt;

		&lt;div&gt;
			&lt;label&gt; &amp;nbsp; &lt;/label&gt;
			&lt;input name=&quot;add&quot; type=&quot;submit&quot; id=&quot;add&quot; value=&quot;add&quot; /&gt;
		&lt;/div&gt;
	&lt;/form&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+comentarii%3F+%28versiunea+2%29+http://5ot2h.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+comentarii%3F+%28versiunea+2%29+http://5ot2h.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii/' rel='bookmark' title='Permanent Link: Cum fac un formular de comentarii?'>Cum fac un formular de comentarii?</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de contact? (versiunea 2)'>Cum fac un formular de contact? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-inregistrare-a-utilizatorilor-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)'>Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii-versiunea-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cum fac un formular de contact? (versiunea 2)</title>
		<link>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/</link>
		<comments>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 13:15:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programare]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=380</guid>
		<description><![CDATA[Ce am facut nou rescriind acest formular de contact? Pai&#8230;am reusit sa scriem cod procedural reutilizabil. Daca dorim sa devenim programatori PHP trebuie sa ne axam foarte, foarte, foarte mult (am omis cumva sa zic &#8220;foarte mult&#8221;?) pe acest concept de cod procedural reutilizabil. N-ar strica daca ar deveni un reflex in gandirea noastra atunci [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de comentarii? (versiunea 2)'>Cum fac un formular de comentarii? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-inregistrare-a-utilizatorilor-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)'>Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact/' rel='bookmark' title='Permanent Link: Cum fac un formular de contact?'>Cum fac un formular de contact?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Ce am facut nou rescriind <a title="Cum fac un formular de contact?" href="http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact/" target="_blank">acest formular de contact</a>? Pai&#8230;am reusit sa scriem <strong>cod procedural reutilizabil</strong>. Daca dorim sa devenim programatori PHP trebuie sa ne axam foarte, foarte, foarte mult (am omis cumva sa zic &#8220;foarte mult&#8221;?) pe acest concept de <strong>cod procedural reutilizabil</strong>. N-ar strica daca ar deveni un reflex in gandirea noastra atunci cand concepem un cod.</p>
<p><span id="more-380"></span></p>
<p><strong>contactf.php</strong></p>
<pre class="brush: php;">
&lt;?php
/*
Titlu: Cum fac un formular de contact? (versiunea 2)
Autor: Marian Barbu aka AccesInterzis
Website: http://www.accesinterzis.ro
2010 (c) Toate drepturile rezervate
*/

//-----specific EXACT cu ce campuri se va lucra
#1
$required_fields = array('name', 'phone_number', 'email', 'message', 'security_code', 'send');
$sent_fields = array_keys($_POST);

//-----creez o sesiune pe server pentru a salva in ea codul generat aleatoriu de sistemul CAPTCHA
#2
session_start();

//-----incarc fisierele include
#3
include('includes/validators.inc.php');
include('includes/filter_it.inc.php');
include('includes/validate_form.inc.php');
include('includes/filtered_urls_and_cookies.inc.php');

//------scriptul PHP se executa doar daca cererea a fost facuta de pe aceeasi pagina pe care se afla formularul si doar daca toate campurile formularului au fos trimise
#4
if ($referer == 'http://'.$_SERVER['HTTP_HOST'].$php_self &amp;&amp; $required_fields == $sent_fields) {
	//-----procesez datele din formular; rezultatul va fi o lista de erori, o lista cu datele nevalide, o lista cu datele valide
	#5
	include('includes/process_form.inc.php');

    //------daca nu exista niciun fel de erori trimit emailul
    #6
	if(count($processed_form['issues']) == 0) {
		//-----infasor datele in htmlentities() si nl2br() deoarece urmeaza sa le trimit
		#6.1
		$processed_form['good_data'] = filter_it($processed_form['good_data'], array('htmlentities','nl2br'));

        #6.2
        $to      = 'whovisitedme@gmail.com';
        $subject = substr($processed_form['good_data']['message'], 0, 20).'...';
        $body    = 'This message is received from http://'.$_SERVER['HTTP_HOST'].$php_self.'&lt;br /&gt;&lt;br /&gt;
                    &lt;strong&gt;Name&lt;/strong&gt;: '.$processed_form['good_data']['name'].'&lt;br /&gt;
                    &lt;strong&gt;Phone number&lt;/strong&gt;: '.$processed_form['good_data']['phone_number'].'&lt;br /&gt;
                    &lt;strong&gt;Email address&lt;/strong&gt;: '.$processed_form['good_data']['email'].'&lt;br /&gt;
                    &lt;strong&gt;Mesagge&lt;/strong&gt;: '.$processed_form['good_data']['message'].'&lt;br /&gt;&lt;br /&gt;
                    &lt;strong style=&quot;color:#c00;&quot;&gt;Infos about sender:&lt;/strong&gt;&lt;br /&gt;
                    &lt;strong&gt;IP address&lt;/strong&gt;: '.$_SERVER['REMOTE_ADDR'].'&lt;br /&gt;
                    &lt;strong&gt;browser and operating system&lt;/strong&gt;: '.$browser_os.'&lt;br /&gt;
                    &lt;strong&gt;dispatch hour&lt;/strong&gt;: '.date(&quot;l, F j, Y, H:i:s&quot;);
        $headers  = &quot;From: &quot;.$processed_form['good_data']['email'].&quot;\r\n&quot;;

        //-----ma asigur ca pot formata emailul cu taguri HTML si reguli CSS aplicate inline
		#6.3
        $headers .= 'MIME-Version: 1.0'.&quot;\r\n&quot;;
        $headers .= 'Content-type: text/html; charset=utf-8' . &quot;\r\n&quot;;

		//------daca emailul a fost intr-adevar trimis se va afisa pe monitor un mesaj de confirmare
        #6.4
        if (mail($to, $subject, $body, $headers)) {
			$confirmation = 'Your message was succesfully sent. We will get in touch with you as soon as possible.';
        } else {
			$confirmation = 'Something is wrong with the server. Your message wasn\'t sent.';
        }

		$confirmation .= ' &lt;a href=&quot;http://'.$_SERVER['HTTP_HOST'].$php_self.'&quot; title=&quot;Back&quot; id=&quot;back&quot;&gt;Back to contact form&lt;/a&gt;';

		#6.5
		$display = 'style=&quot;display:none;&quot;';
    }

	//-----infasor datele in htmlentities() deoarece urmeaza sa le afisez in formular
	#7
	$get_my_fields = filter_it($get_my_fields, array('htmlentities'));
}
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;How do I make a contact form?&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;How do I make a contact form?&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;contact,form,php,script,send,email&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;How do I make a contact form?&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;index,follow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;

&lt;style type=&quot;text/css&quot;&gt;
* {
	margin:0;
	padding:0;
	outline:none;
}

html {
	color:black;
	background-color:white;
	font: normal normal normal 12px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
}

/*INCEPUT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE CONTACT*/

div#contactf {
	width:530px;
	margin:0px auto;
}

div#contactf h1 {
	color:black;
	font: normal normal normal 24px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
	padding-bottom:5px;
}

div#contactf div {
	margin:0 0 5px 0;
}

div#contactf label {
	width:115px;
	float:left;
}

div#contactf label span {
	color:#c00;
}

div#contactf input {
	width:200px;
}

div#contactf textarea {
	width:400px;
	height:150px;
}

div#contactf input, div#contactf textarea {
	border:1px #ccc solid;
}

div#contactf input:hover, div#contactf textarea:hover {
	border:1px #666 solid;
}

div#contactf input#send {
	width:auto;
	color:#FFF;
	background-color:#333;
	border:1px #000 solid !important;
	cursor:pointer;
}

div#contactf input#send:hover {
	color:#333;
	background-color:#fff;
	border:1px #333 solid;
}

/*Inceput - stilurile erorilor*/
div#contactf p {
	color:#c00;
	font-size:10px;
	padding:0 0 0 115px;
	text-align:left;
}

div#contactf div#name_field label,
div#contactf div#email_field label,
div#contactf div#phone_number_field label,
div#contactf div#message_field label,
div#contactf div#security_code_field label {
	color:#c00;
}

div#contactf div#name_field input,
div#contactf div#email_field input,
div#contactf div#phone_number_field input,
div#contactf div#message_field textarea,
div#contactf div#security_code_field input {
	border:1px #c00 solid;
	color:#c00;
}

div#contactf div#name_field input:hover,
div#contactf div#email_field input:hover,
div#contactf div#phone_number_field input:hover,
div#contactf div#message_field textarea:hover,
div#contactf div#security_code_field input:hover {
	border:1px #c00 solid;
}

div#contactf a#back {
	color:#900;
	font-weight:bold;
	text-decoration:underline;
}
/*Sfarsit - stilurile erorilor*/

/*SFARSIT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE CONTACT*/
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&quot;contactf&quot;&gt;
	&lt;h1&gt;
        &lt;label&gt;&amp;nbsp;&lt;/label&gt;
        Contact us
    &lt;/h1&gt;

    &lt;?php if (isset($confirmation)) echo '&lt;p&gt;'.$confirmation.'&lt;/p&gt;'; ?&gt;

	&lt;form action=&quot;&lt;?php echo 'http://'.$_SERVER['HTTP_HOST'].$php_self; ?&gt;&quot; method=&quot;post&quot; &lt;?php if (isset($display)) echo $display; ?&gt;&gt;
		&lt;?php echo (isset($processed_form['issues']['name'])) ? '&lt;p&gt;'.$processed_form['issues']['name'].'&lt;/p&gt;&lt;div id=&quot;name_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;name&quot;&gt;Name&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;name&quot; type=&quot;text&quot; id=&quot;name&quot; value=&quot;&lt;?php if (isset($get_my_fields['name'])) echo $get_my_fields['name']; ?&gt;&quot; /&gt;
		&lt;/div&gt;

		&lt;?php echo (isset($processed_form['issues']['phone_number'])) ? '&lt;p&gt;'.$processed_form['issues']['phone_number'].'&lt;/p&gt;&lt;div id=&quot;phone_number_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;phone_number&quot;&gt;Phone number&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;phone_number&quot; type=&quot;text&quot; id=&quot;phone_number&quot; value=&quot;&lt;?php if (isset($get_my_fields['phone_number'])) echo $get_my_fields['phone_number']; ?&gt;&quot; /&gt;
		&lt;/div&gt;

		&lt;?php echo (isset($processed_form['issues']['email'])) ? '&lt;p&gt;'.$processed_form['issues']['email'].'&lt;/p&gt;&lt;div id=&quot;email_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;email&quot;&gt;Email&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;input name=&quot;email&quot; type=&quot;text&quot; id=&quot;email&quot; value=&quot;&lt;?php if (isset($get_my_fields['email'])) echo $get_my_fields['email']; ?&gt;&quot; /&gt;
		&lt;/div&gt;

		&lt;?php echo (isset($processed_form['issues']['message'])) ? '&lt;p&gt;'.$processed_form['issues']['message'].'&lt;/p&gt;&lt;div id=&quot;message_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;message&quot;&gt;Your message&lt;span&gt;*&lt;/span&gt;:&lt;/label&gt;
			&lt;textarea name=&quot;message&quot; rows=&quot;1&quot; cols=&quot;1&quot; id=&quot;message&quot;&gt;&lt;?php if (isset($get_my_fields['message'])) echo $get_my_fields['message']; ?&gt;&lt;/textarea&gt;
		&lt;/div&gt;

		&lt;p&gt;
			&lt;img src=&quot;includes/captchaimage.inc.php?width=120&amp;height=40&amp;characters=5&quot; /&gt;
		&lt;/p&gt;

		&lt;?php echo (isset($processed_form['issues']['security_code'])) ? '&lt;p&gt;'.$processed_form['issues']['security_code'].'&lt;/p&gt;&lt;div id=&quot;security_code_field&quot;&gt;' : '&lt;div&gt;' ; ?&gt;
			&lt;label for=&quot;security_code&quot;&gt;Are you human?&lt;span&gt;*&lt;/span&gt;&lt;/label&gt;
			&lt;input id=&quot;security_code&quot; name=&quot;security_code&quot; type=&quot;text&quot; /&gt;
		&lt;/div&gt;

		&lt;div&gt;
			&lt;label&gt; &amp;nbsp; &lt;/label&gt;
			&lt;input name=&quot;send&quot; type=&quot;submit&quot; id=&quot;send&quot; value=&quot;send&quot; /&gt;
		&lt;/div&gt;
	&lt;/form&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>validators.inc.php</strong></p>
<pre class="brush: php;">
&lt;?php
//----------lista de validatori pentru campurile tuturor formularelor
$validators = array('name'          =&gt; array('required'  =&gt; true,
											 'min_chars' =&gt; 3,
											 'max_chars' =&gt; 30,
											 'regex'     =&gt; '/^[a-z0-9][a-z0-9_ ]*[a-z0-9]$/i'),

					'phone_number'  =&gt; array('required'  =&gt; true,
											 'min_chars' =&gt; 3,
											 'max_chars' =&gt; 30,
											 'regex'     =&gt; '/^[0-9+][0-9. ]*[0-9]$/'),

					'email'         =&gt; array('required'  =&gt; true,
											 'min_chars' =&gt; 3,
											 'max_chars' =&gt; 30,
											 'regex'     =&gt; '/^[a-z0-9][a-z0-9_.]+@[a-z0-9-.]+\.[a-z]{2,4}$/i'),

					'website'       =&gt; array('required'  =&gt; false,
											 'min_chars' =&gt; 3,
											 'max_chars' =&gt; 30,
											 'regex'     =&gt; '/^http:\/\/[a-z0-9.-]+\.[a-z]{2,4}$/i'),

					'comment'       =&gt; array('required'  =&gt; true,
											 'min_chars' =&gt; 3,
											 'max_chars' =&gt; 20000,
											 'regex'     =&gt; '/.*/i'),

					'message'       =&gt; array('required'  =&gt; true,
											 'min_chars' =&gt; 3,
											 'max_chars' =&gt; 20000,
											 'regex'     =&gt; '/.*/i'),

					'username'      =&gt; array('required'  =&gt; true,
											 'min_chars' =&gt; 3,
											 'max_chars' =&gt; 30,
											 'regex'     =&gt; '/^[a-z0-9][a-z0-9_ ]*[a-z0-9]$/i'),

					'password'      =&gt; array('required'  =&gt; true,
											 'min_chars' =&gt; 5,
											 'max_chars' =&gt; 30,
											 'regex'     =&gt; '/^[a-z0-9]*$/i'),

					'security_code' =&gt; array('required'  =&gt; true,
											 'min_chars' =&gt; 3,
											 'max_chars' =&gt; 10,
											 'regex'     =&gt; '/^[a-z0-9]*$/i'));

?&gt;
</pre>
<p><strong>filter_it.inc.php</strong></p>
<pre class="brush: php;">
&lt;?php
function filter_it($unfiltered_data, $filters) {
	$wrapped_data = array();

	foreach ($unfiltered_data as $k =&gt; $v) {
		foreach ($filters as $filter) {
			switch ($filter) {
				case 'htmlentities':
					$v = htmlentities($v, ENT_QUOTES, 'utf-8');
					break;

				default:
					$v = $filter($v);
			}
		}

		$wrapped_data[$k] = $v;
	}

	return ($wrapped_data);
}
?&gt;
</pre>
<p><strong>validate_form.inc.php</strong></p>
<pre class="brush: php;">
&lt;?php
//----------functia care valideaza datele introduse de utilizator
function validate_form ($unverified_form, $validators) {
	include('includes/replacers.inc.php');
	$issues = array();
	$bad_data = array();

	foreach ($unverified_form as $k =&gt; $v) {
		if (empty($unverified_form[$k])) {
			if ($validators[$k]['required'] == true) {
				$issues[$k] = 'You forgot to enter the &lt;strong&gt;'.$replacers[$k].'&lt;/strong&gt;.';
				$bad_data[$k] = $unverified_form[$k];
			}
		} else {
			if (strlen($unverified_form[$k]) &lt; $validators[$k]['min_chars']) {
				$issues[$k] = 'The &lt;strong&gt;'.$replacers[$k].'&lt;/strong&gt; is too short.';
				$bad_data[$k] = $unverified_form[$k];
			} else {
				if (strlen($unverified_form[$k]) &gt; $validators[$k]['max_chars']) {
					$issues[$k] = 'The &lt;strong&gt;'.$replacers[$k].'&lt;/strong&gt; is too long.';
					$bad_data[$k] = $unverified_form[$k];
				} else {
					if (!preg_match($validators[$k]['regex'], $unverified_form[$k])) {
						$issues[$k] = 'The &lt;strong&gt;'.$replacers[$k].'&lt;/strong&gt; isn\'t valid.';
						$bad_data[$k] = $unverified_form[$k];
					}
				}
			}
		}
	}

	$good_data = array_diff_key($unverified_form, $bad_data);

	$result = array('issues' =&gt; $issues, 'bad_data' =&gt; $bad_data, 'good_data' =&gt; $good_data);

	return ($result);
}
?&gt;
</pre>
<p><strong>replacers.inc.php</strong></p>
<pre class="brush: php;">
&lt;?php
//----------lista cuvintelor care inlocuiesc cheile array-ul in mesajele de eroare
$replacers = array('name'          =&gt; 'name',
				   'phone_number'  =&gt; 'phone number',
				   'email'         =&gt; 'email address',
				   'website'       =&gt; 'website URL',
				   'comment'       =&gt; 'comment',
				   'message'       =&gt; 'message',
				   'username'      =&gt; 'username',
				   'password'      =&gt; 'password',
				   'security_code' =&gt; 'security code');
?&gt;
</pre>
<p><strong>filtered_urls_and_cookies.inc.php</strong></p>
<pre class="brush: php;">
&lt;?php
//-----infasor in strip_tags() si htmlentities() URL-urile obtinute dinamic, http_user_agent-ul si cookie-urile ca sa ma asigur ca nu contin cod malitios
$php_self = htmlentities(strip_tags($_SERVER['PHP_SELF']), ENT_QUOTES, 'utf-8');
$referer = (isset($_SERVER['HTTP_REFERER'])) ? htmlentities(strip_tags($_SERVER['HTTP_REFERER']), ENT_QUOTES, 'utf-8') : NULL;
$browser_os = htmlentities(strip_tags($_SERVER['HTTP_USER_AGENT']), ENT_QUOTES, 'utf-8');
$cookie = (isset($_COOKIE)) ? filter_it($_COOKIE, array('strip_tags', 'htmlentities')) : NULL;
?&gt;
</pre>
<p><strong>process_form.inc.php</strong></p>
<pre class="brush: php;">
&lt;?php
//-----incarc din lista generala de validatori validatorii pentru campurile formularului meu
$get_my_fields = array_intersect_key($_POST, $validators);
//-----infasor datele in trim() si stripslashes() deoarece urmeaza sa incep procesul de validare
$get_my_fields = filter_it($get_my_fields, array('trim', 'stripslashes'));
//-----rezultatul procesului de validare va fi o lista de erori, o lista cu datele nevalide, o lista cu datele valide
$processed_form = validate_form($get_my_fields, $validators);
?&gt;
</pre>
<p>Am reusit sa aduc codul la acest nivel datorita lui <a title="OriginalCopy" href="http://originalcopy-on.blogspot.com/" target="_blank">OriginalCopy</a>. Chiar daca el ar fi dorit sa arate muuuult mai compact. Dar el e un programator foarte bun, de multi ani in aceasta meserie, iar eu sunt doar un anonim care a inceput sa cocheteze cu aceste limbaje de programare web acum circa 2 ani in urma.</p>
<p>Sper ca la versiunea 3 a formularului sa implementez validare client-side cu jQuery, sa adaug un camp in care utilizatorul poate atasa si un fisier la email si sa rescriu codul PHP de asa natura incat sa fie mai compact si mai aproape de conceptul de <strong>cod procedural reutilizabil</strong>.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+contact%3F+%28versiunea+2%29+http://fidgg.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+contact%3F+%28versiunea+2%29+http://fidgg.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de comentarii? (versiunea 2)'>Cum fac un formular de comentarii? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/web/cum-fac-un-formular-de-inregistrare-a-utilizatorilor-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)'>Cum fac un formular de inregistrare a utilizatorilor? (versiunea 2)</a></li>
<li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact/' rel='bookmark' title='Permanent Link: Cum fac un formular de contact?'>Cum fac un formular de contact?</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-contact-versiunea-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cum fac un meniu de navigare in PHP, CSS, HTML?</title>
		<link>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-meniu-de-navigare-in-php-css-html/</link>
		<comments>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-meniu-de-navigare-in-php-css-html/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 16:52:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programare]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=378</guid>
		<description><![CDATA[Nu o sa zic nimic despre acest meniu de navigare in interiorul unui site decat ca designul este realizat de Dr. Freak iar programarea PHP si redactarea HTML/CSS de mine. Enjoy studying the code!  
index.php, about.php, gallery.php, offerts.php, hotels.php, contact.php

&#60;?php
$php_self = htmlentities(strip_tags($_SERVER['PHP_SELF']), ENT_QUOTES, 'utf-8');
?&#62;
&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;title&#62;Travel agency&#60;/title&#62;
&#60;meta http-equiv=&#34;Content-Type&#34; [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de comentarii? (versiunea 2)'>Cum fac un formular de comentarii? (versiunea 2)</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Nu o sa zic nimic despre acest <a title="Cum fac un meniu de navigare in PHP, CSS, HTML?" href="http://accesinterzis.ro/myportofolio/nav-menu/index.php" target="_blank">meniu de navigare</a> in interiorul unui site decat ca designul este realizat de <a title="Dr. Freak" href="http://freakdr.deviantart.com" target="_blank">Dr. Freak</a> iar programarea PHP si redactarea HTML/CSS de mine. Enjoy studying the code! <img src='http://www.accesinterzis.ro/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>index.php, about.php, gallery.php, offerts.php, hotels.php, contact.php</strong></p>
<pre class="brush: php;">
&lt;?php
$php_self = htmlentities(strip_tags($_SERVER['PHP_SELF']), ENT_QUOTES, 'utf-8');
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt;Travel agency&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;Travel agency&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;travel,agency&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;Travel agency&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex,nofollow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;

&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/nav-menu.css.php&quot; media=&quot;screen&quot; /&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/load-images.js.php&quot;&gt;&lt;/script&gt;
&lt;/head&gt;

&lt;body onload=&quot;download_images()&quot;&gt;
&lt;?php include('includes/nav-menu.inc.php'); ?&gt;

&lt;p id=&quot;content&quot;&gt;
&lt;?php echo basename($php_self).' page is under construction.'; ?&gt;
&lt;/p&gt;

&lt;?php include('includes/footer.inc.php'); ?&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><span id="more-378"></span></p>
<p><strong>nav-menu.inc.php</strong></p>
<pre class="brush: php;">
&lt;ul id=&quot;nav_menu&quot;&gt;
	&lt;?php
	$nav_menu = array('home'    =&gt; 'index.php',
					  'about'   =&gt; 'about.php',
					  'gallery' =&gt; 'gallery.php',
					  'offerts' =&gt; 'offerts.php',
					  'hotels'  =&gt; 'hotels.php',
					  'contact' =&gt; 'contact.php');

	foreach ($nav_menu as $k =&gt; $v) {
		echo '&lt;li id=&quot;'.$k.'-item&quot;&gt;';
		echo '&lt;a href=&quot;'.$v.'&quot; title=&quot;'.ucfirst($k).'&quot; id=&quot;'.$k.'-btn&quot;';
		echo (basename($php_self) == $v) ? ' style=&quot;background:url(\'images/'.$k.'-hover.png\') no-repeat 0 0&quot;&gt;' : '&gt;';
		echo '&lt;span&gt;'.ucfirst($k).'&lt;/span&gt;';
		echo '&lt;/a&gt;';
		echo '&lt;/li&gt;';
	}
	?&gt;
&lt;/ul&gt;
</pre>
<p><strong>nav-menu.css.php</strong></p>
<pre class="brush: css;">
&lt;?php
header(&quot;Content-type: text/css; charset=utf-8&quot;);
?&gt;
* {
	margin:0;
	padding:0;
	outline:none;
}

html {
	color:black;
	background:#00c3ff url('../images/content-repeat-x.jpg') repeat-x 0 0;
	/*background-color background-image background-repeat background-attachment background-position*/
	font: normal normal normal 12px  Verdana;
	/*font-style font-variant font-weight font-size font-family*/
}

body {
	/*
	E important ca body sa nu aiba nicio culoare de fundal deoarece daca ar avea
	nu s-ar mai vedea repeat-x-ul de pe fundalul html-ului.
	*/
	background:url('../images/header-travel-agency.jpg') no-repeat top;
	height:567px;
}

/***********begin - navigation menu***********/

ul#nav_menu {
	width:816px;
	margin:0 auto;
	list-style-type:none;
	overflow:hidden;
	padding-top:360px;
}

ul#nav_menu li {
	float:left;
	margin-right:30px;
}

ul#nav_menu li#contact-item {
	margin-right:0;
}

ul#nav_menu a {
	display:block;
	width:111px;
	height:56px;
}

ul#nav_menu li a span {
	display:none;
}

&lt;?php
$btns = array('home', 'about', 'gallery', 'offerts', 'hotels', 'contact');

foreach ($btns as $item) {
	echo 'ul#nav_menu a#'.$item.'-btn {
		background:url(\'../images/'.$item.'.png\') no-repeat 0 0;
	}

	ul#nav_menu a#'.$item.'-btn:hover {
		background:url(\'../images/'.$item.'-hover.png\') no-repeat 0 0;
	}';
}
?&gt;

/***********end - navigation menu***********/

p#content {
	color:white;
	text-align:center;
	font-size:32px;
	margin-top:150px;
}

p#footer {
	width:100%;
	position:absolute;
	bottom:5px;
	text-align:center;
	font-size:10px;
}

p#footer  a {
	color:white;
	text-decoration:none;
}

p#footer  a:hover {
	text-decoration:underline;
}
</pre>
<p><strong>load-images.js.php</strong></p>
<pre class="brush: php;">
&lt;?php
header(&quot;content-type: application/x-javascript&quot;);

function load_images($folder) {
	$result = 'objImage = new Image();'.&quot;\r\n&quot;;

	$result .= 'function download_images(){'.&quot;\r\n&quot;;
	$allowed_extensions = array ('.jpg', '.jpeg', '.png', '.gif');
	$open = opendir ($folder);	

	$i = 0;
	while ($filename = readdir($open)) {
		if ($filename != '.' &amp;&amp; $filename != '..') {
			$extension = substr($filename, strrpos($filename,'.'),100);
			$extension = strtolower($extension);

			if (in_array($extension, $allowed_extensions)) {
				$result .= 'objImage'.$i.'.src=&quot;'.$folder.'/'.$filename.'&quot;'.&quot;\r\n&quot;;
				$i++;
			}
		}
	}
	$result .= '}';

	return($result);
}

echo load_images('../images');
?&gt;
</pre>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+meniu+de+navigare+in+PHP%2C+CSS%2C+HTML%3F+http://fon88.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+meniu+de+navigare+in+PHP%2C+CSS%2C+HTML%3F+http://fon88.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-comentarii-versiunea-2/' rel='bookmark' title='Permanent Link: Cum fac un formular de comentarii? (versiunea 2)'>Cum fac un formular de comentarii? (versiunea 2)</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-meniu-de-navigare-in-php-css-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cum fac un formular de upload in PHP?</title>
		<link>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-upload-in-php/</link>
		<comments>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-upload-in-php/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 19:42:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programare]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.accesinterzis.ro/?p=369</guid>
		<description><![CDATA[Scriptul PHP din spatele acestui formular de upload:

rezolva problema spatiilor goale din numele imaginii
restrictioneaza numarul maxim de caractere al numelui imaginii  si ce tip de caractere poate sa contina numele imaginii
permite utilizatorului sa uploadeze doar imagini (celelalte tipuri de fisiere, posibil malitioase, cum ar fi fisiere executabile, fisiere .php, fisiere .js nu pot fi urcate)
specifica ce tipuri [...]


<strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-extrag-extensia-unui-fisier/' rel='bookmark' title='Permanent Link: Cum extrag extensia unui fisier?'>Cum extrag extensia unui fisier?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Scriptul PHP din spatele acestui formular de upload:</p>
<ul>
<li>rezolva problema spatiilor goale din numele imaginii</li>
<li>restrictioneaza numarul maxim de caractere al numelui imaginii  si ce tip de caractere poate sa contina numele imaginii</li>
<li>permite utilizatorului sa uploadeze doar imagini (celelalte tipuri de fisiere, posibil malitioase, cum ar fi fisiere executabile, fisiere .php, fisiere .js nu pot fi urcate)</li>
<li>specifica ce tipuri de imagini pot fi uploadate (.jpg, .jpeg, .gif, .png)</li>
<li>restrictioneaza marimea maxima a imaginii</li>
<li>restrictioneaza latimea pe care o poate avea imaginea</li>
<li>restrictioneaza inaltimea pe care o poate avea imaginea</li>
<li>verifica daca folderul <strong>images</strong> exista pe server (daca nu exista il creaza)</li>
<li>verifica daca mai exista in folderul <strong>images</strong> inca o imagine cu acelasi nume</li>
<li>numeroteaza <strong>dinamic</strong> fiecare imagine uploadata (trebuie sa dam permisiile <span style="color: #ff0000;"><strong>0777</strong></span> folderului <strong>images</strong> ca scriptul PHP sa il poata citi)</li>
<li>schimba numele imaginii uploadate pe server</li>
</ul>
<p><span id="more-369"></span><br />
<strong>uf-v.1.0.php</strong></p>
<pre class="brush: php;">
&lt;?php
/*
Titlu: Cum fac un formular de upload in PHP?
Autor: Marian Barbu aka AccesInterzis
Website: http://www.accesinterzis.ro
2010 (c) Toate drepturile rezervate
*/

#1
if (isset($_POST['upload'])) {
	/*
	Rezolv problema spatiilor goale din numele imaginii.
	*/
	#2
	$filename = trim($_FILES['userfile']['name']);
	$filename = str_replace(' ', '_', $filename);

	#3
	if (empty($filename)) {
		$error_message = 'You didn\'t enter any file.';
	} else {
		#3.1
		if (strlen($filename) &gt; 30) {
			$error_message = 'The filename must have up to 30 characters.';
		} else {
			#3.2
			if (!preg_match('/^[a-z0-9._-]+\.[a-z]{2,4}$/i', $filename)) {
				$error_message = 'The filename isn\'t valid.';
			} else {
				/*
				Verific daca fisierul este o imagine. Content-type-ul unei imaginii este o
				valoare de genul image/jpeg, image/pjpeg, image/gif, image/png.
				*/
				#3.3
				if (!preg_match('/^image\//', $_FILES['userfile']['type'])) {
					$error_message = 'You are allowed to upload only images.';
				} else {
					/*
					Functia PHP getimagesize() ma asigura 100% ca ceea ce urca utilizatorul
					e o imagine si nimic altceva.
					*/
					#3.4
					$properties = getimagesize($_FILES['userfile']['tmp_name']);
					if ($properties == false) {
						$error_message = 'The file isn\'t an image.';
					} else {
						/*
						Specific tipurile de imagini care pot fi urcate pe server.
						*/
						$allowed_extensions = array('.jpg', '.jpeg', '.gif', '.png');

						$extension = substr($filename, strrpos($filename,'.'), 100);
						$extension = strtolower($extension);

						#3.5
						if (!in_array($extension, $allowed_extensions)) {
							$error_message = 'You aren\'t allowed to upload &lt;strong&gt;'.$extension.'&lt;/strong&gt; files.';
						} else {
							/***/
							/*
							Imaginea poate avea maxim 100 kb.
							*/
							#3.6
							if (($_FILES['userfile']['size']/1024) &gt; 100) {
								$error_message = 'The file can have up to &lt;strong&gt;100 kb&lt;/strong&gt;.';
							} else {
								/*
								Restrictionez latimea pe care imaginea o poate avea.
								*/
								#3.7
								if ($properties[0] &gt; 100) {
									$error_message = 'The width must be up to 100px.';
								} else {
									/*
									Restrictionez inaltimea pe care imaginea o poate avea.
									*/
									#3.8
									if ($properties[1] &gt; 100) {
										$error_message = 'The height must be up to 100px.';
									} else {
										/*
										Daca folderul &quot;images&quot; nu exista pe server atunci il creez.
										*/
										#3.9
										if (!is_dir('images')) {
											mkdir('images', 0777);
										}

										#3.10
										if (file_exists('images/'.$filename)) {
											$error_message = 'The file &lt;strong&gt;'.$filename.'&lt;/strong&gt; already exists.';
										} else {
											/*
											Acum ca m-am asigurat ca ceea ce vrea utilizatorul sa urce este o imagine si nu altceva
											si acea imagine nu exista deja pe server, pot urca linistit imaginea de pe PC-ul utilizatorului
											pe serverul de hosting. Din motive de securitate schimb numele initial al imaginii utilizatorului.
											Noul nume este generat aleatoriu.
											*/
											#3.11
											$alphabet = 'abcdefghijklmnoprqstuvxyz';
											$new_fn = '';
											for ($i = 0; $i &lt; 10; $i++) {
												$new_fn .= substr($alphabet, rand(0,strlen($alphabet) - 1), 1);
											}

											#3.12
											if (substr(sprintf('%o', fileperms('images')), -4) != 777) {
												$error_message = 'The folder has not the right permissions to read it.';
											} else {
												$count = 0;

												$open = opendir ('images');

												while ($image_name = readdir($open)) {
													//. reprezinta folderul curent iar .. reprezinta folderul anterior
													if ($image_name != '.' &amp;&amp; $image_name != '..') {
														$image_extension = substr($image_name, strpos($image_name,'.'),100);
														$image_extension = strtolower($image_extension);

														if (in_array($image_extension,$allowed_extensions)) {
															$count++;
														}
													}
												}

												#3.13
												if (move_uploaded_file($_FILES['userfile']['tmp_name'], 'images/'.($count + 1).'_'.$new_fn.$extension)) {
													$confirmation = 'The file &lt;strong&gt;'.$filename.'&lt;/strong&gt; was succesfully uploaded.';
												} else {
													$confirmation = 'Something is wrong with the server.';
												}
											}
										}
									}
								}
							}
							/***/
						}
					}
				}
			}
		}
	}
}
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;How do I make a upload form?&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;How do I make a upload form?&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;upload,form,php,script,image,file&quot; /&gt;
&lt;meta name=&quot;abstract&quot; content=&quot;How do I make a upload form?&quot; /&gt;
&lt;meta name=&quot;author&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;copyright&quot; content=&quot;AccesInterzis&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;index,follow&quot; /&gt;
&lt;meta name=&quot;revisit-after&quot; content=&quot;7 days&quot; /&gt;

&lt;link href=&quot;http://www.accesinterzis.ro/myportofolio/css/reset.css&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot; media=&quot;all&quot; /&gt;
&lt;style type=&quot;text/css&quot;&gt;
/*INCEPUT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE UPLOAD*/

form#upload_form {
	width:240px;
	margin:10px auto;
}

form#upload_form div {
	margin:0 0 5px 0;
}

form#upload_form input#upload {
	width:auto;
	color:#FFF;
	background-color:#333;
	border:1px #000 solid !important;
	cursor:pointer;
}

form#upload_form input#upload:hover {
	color:#333;
	background-color:#fff;
	border:1px #333 solid;
}

/*Inceput - stilurile erorilor*/
form#upload_form p {
	color:#c00;
	padding:0 0 5px 0;
	font-size:10px;
	text-align:left;
}
/*Sfarsit - stilurile erorilor*/

/*SFARSIT - LINIILE CSS CARE CREEAZA SKINUL FORMULARULUI DE UPLOAD*/
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;form action=&quot;&lt;?php echo htmlentities(strip_tags('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']), ENT_QUOTES, 'utf-8'); ?&gt;&quot; method=&quot;post&quot; id=&quot;upload_form&quot; enctype=&quot;multipart/form-data&quot;&gt;

	&lt;?php if ($confirmation) echo '&lt;p&gt;'.$confirmation.'&lt;/p&gt;'; ?&gt;
	&lt;?php if ($error_message) echo '&lt;p&gt;'.$error_message.'&lt;/p&gt;'; ?&gt;

	&lt;div&gt;
		&lt;input name=&quot;userfile&quot; type=&quot;file&quot; value=&quot;ABC&quot; id=&quot;userfile&quot; /&gt;
	&lt;/div&gt;

	&lt;div&gt;
		&lt;input name=&quot;upload&quot; type=&quot;submit&quot; id=&quot;upload&quot; value=&quot;upload&quot; /&gt;
	&lt;/div&gt;
&lt;/form&gt;
&lt;?php echo $count.' sadf safsa'; ?&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Pentru o mai buna organizare a codului este indicat ca scriptul PHP de deasupra DOCTYPE-ului, care verifica daca fisierul este o imagine (valida) si urca imaginea de pe PC-ul utilizatorului pe server, sa se bage intr-un fisier include si sa fie apelat prin functia PHP include().</p>
<pre class="brush: php;">
&lt;?php @include('includes/upload_file.inc.php'); ?&gt;
</pre>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+upload+in+PHP%3F+http://ciim6.th8.us" title="Publica acest articol pe Twitter"><img class="nothumb" src="http://www.accesinterzis.ro/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Cum+fac+un+formular+de+upload+in+PHP%3F+http://ciim6.th8.us" title="Publica acest articol pe Twitter">Publica acest articol pe Twitter</a></p>

<p><strong>Articole asemanatoare:<ul><li><a href='http://www.accesinterzis.ro/index.php/programare/cum-extrag-extensia-unui-fisier/' rel='bookmark' title='Permanent Link: Cum extrag extensia unui fisier?'>Cum extrag extensia unui fisier?</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.accesinterzis.ro/index.php/programare/cum-fac-un-formular-de-upload-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
