<?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; web</title>
	<atom:link href="http://www.accesinterzis.ro/index.php/category/web/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 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>
	</channel>
</rss>
