<?php
session_start();

include("bazadb.php");			// Include fisierul pt. conectare la BD

// Link-ul pt. revenire la pagina anterioara
$inapoi = '<br /><br /><b><a href="#" onclick="history.back()">Click aici</a></b> pentru a reveni la pagina anterioara.';

// Functia care adauga numele de utilizator si parola in BD
function addUtilizator($nume, $pass, $email) {
  GLOBAL $conn, $aprobat, $inapoi;
  $data = time();
  $ip = $_SERVER['REMOTE_ADDR'];
  $parola = md5($pass);
  
  // Datele folosite in mesajul pt. confirmare
  $link_confirm = 'http://extremshare.net/logare/recuper.php?mp='. $nume. '&pm='. $parola;
  $nume1 = $nume;
  
  // Adaugarea datelor in baza de date (daca nu sunt filtrate implicit de PHP, le filtreaza cu "addslashes()")
  if(!get_magic_quotes_gpc()) {
	$nume = addslashes($nume);
	$pass = addslashes($pass);
	$parola = addslashes($parola);
	$email = addslashes($email);
  }
  
  $q = "INSERT INTO `utilizatori` (nume, parola, email, aprobat, ip, data, pass) VALUES ('$nume', '$parola', '$email', '$aprobat', '$ip', '$data', '$pass')";
  if (mysql_query($q,$conn)) $mesaj = '<center><h1>Succes!</h1>
<p><font size="4">Multumim <b><font color="blue">'. $nume1. '</font></b>, inregistrarea s-a efectuat cu succes.</font></p><br />Acum va puteti autentifica <a href="../" title="Autentificare">Click aici</a></center>';
  else $mesaj = '<h1>Inregistrare nereusita</h1>In urma unei erori: <i>'. mysql_errno().' - '.mysql_error(). '</i> inregistrarea dv. pe numele <b> '. $nume1. '</b>, nu a putut fi realizata';
  
  if ($aprobat==0) {
	// Trimite datele prin email
	$email = stripslashes($email);
	$from = 'From: extremshare.net@gmail.com';
	$subiect = "Confirmare Inregistrare";
	$mesaj = "               Buna ziua \n
	  Ati primit acest e-mail deoarece este nevoie sa confirmati inregistrarea. \n\n
	  Pentru a confirma inregistrarea, dati click pe link-ul urmator: \n
		  $link_confirm \n\n
	  Datele dv. de autentificare sunt urmatoarele: \n
		  Nume = $nume1 \n
		  Parola = $pass
		  \n\n\n
	  Cu respect, http://extremshare.net";
	if (mail("$email", "Subiect: $subiect", $mesaj, $from)) {
	  $mesaj = '<center>Un mesaj cu link-ul pentru autentificare a fost trimis la adresa de e-mail <b>'. $email. '</b>.
		   <br /> Daca nu ati primit email-ul, verificati si in directorul Spam.<br /> Dupa confirmare va puteti autentifica. <a href="../">Click aici</a><br />
		   <br /><br />Multumim </center>';
	} 
	else { $mesaj = 'Exista o problema, verificati daca ati introdus corect datele.'; }
  }
  return $mesaj;
}

// Codul urmator verifica existenta sesiuni care este creata cand inregistrarea este facuta cu succes
// Dupa inregistrare afiseaza un mesaj de reusita a inregistrarii sau esec

if(isset($_SESSION['registered']) && isset($_SESSION['reguname'])){
// Aici este ce va apare dupa inregistrare
   echo '
<html>
<title>Pagina de inregistrare</title>
<body>'. $_SESSION['registered'].'
</body>
</html>';
   exit;
}
else {
  unset($_SESSION['reguname']);
  unset($_SESSION['registered']);
}

/* Functie pt. verificarea existentei caracterelor = , ` ' " in sir 
 * Pentru o securitate sporita */
function ve_sir($sirul) {
  $interzis = '/[=,`\'"]/';
  if (preg_match($interzis, $sirul)) { return false; }
  else { return true; }
}

// Determina daca va afisa sau nu formularul de Inregistrare
// Bazat pe datele completate si trimise
// Verifica baza de date si apeleaza functia care creaza contul nou

if(isset($_POST['subjoin']) && isset($_POST['nrv'])) {
  /* Se asigura ca toate campurile au fost completate */
  if(!$_POST['nume'] || !$_POST['pass'] || !$_POST['pass2'] || !$_POST['email']) {
	$eror = 'Completati toate campurile.';
  }
  else {
    $nume = trim($_POST['nume']);
	$pass = trim($_POST['pass']);
    $email = trim($_POST['email']);
  }

  // Verifica daca parola este aceeasi cu cea din "Rescrie parola"
  if($pass!=$_POST['pass2']) {
	$eror = 'Trebuie sa scrieti aceeasi parola si in campul "Rescrie parola"</b>';
  }
  /* Verifica existenta caracterelor = , ` ' " in sir */
  else if(!ve_sir($nume) || !ve_sir($pass)) {
	$eror = 'Datele nu trebui sa contina nici unul dintre caracterele <b>= , ` \' "</b>';
  }
  /* Verifica lungimea numelui */
  else if(strlen($nume)<3 || strlen($nume)>32) {
	$eror = 'Numele trebuie sa contina minim 3 caractere si maxim 32.';
  }
  /* Verifica lungimea parolei */
  else if(strlen($pass)<7 || strlen($pass)>18) {
	$eror = 'Parola trebuie sa contina minim 7 caractere si maxim 18.';
  }
  /* Verifica forma adresei de email */
  else if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $email)) {
	$eror = 'Adresa de email incorecta.';
  }
  /* Verifica numarul antispam */
  else if($_SESSION['nrv']!==$_POST['nrv']) {
	$eror = $_SESSION['nrv']. 'Numar de verificare incorect. '.$_POST['nrv'];
	unset($_SESSION['nrv']);
  }

  // Daca verificarea formularului a dat erori, afiseaza eroarea si link inapoi
  /* Altfel, verifica in BD daca numele sau email-ul sunt deja inregistrate */
  if (isset($eror)) {
	echo '<center><br /><br /><font size="+1" color="red">'. $eror.'</font>'.$inapoi. '</center>';
  }
  else {
	if(!get_magic_quotes_gpc()) {
	  $nume = addslashes($nume);
	  $email = addslashes($email);
	}

	$q = "SELECT nume, email from `utilizatori` WHERE `nume`='$nume' OR `email`='$email'";
	$result = mysql_query($q,$conn);

	// verifica daca nume si email exista deja in BD
	if (mysql_numrows($result)>0) {
	  while ($rand = mysql_fetch_array($result, MYSQL_ASSOC)) {
		$nume_bd = stripslashes($rand['nume']);
		$email_bd = stripslashes($rand['email']);
	  }
	  // Afiseaza avertismentele, daca numele e deja inregistrat
	  if (strcasecmp($nume_bd, $nume)==0) {
		echo "Numele de utilizator: <strong>$nume</strong> este deja inregistrat, va rog alegeti altul.";
	  }
	  // daca email-ul e deja inregistrat
	  if (strcasecmp($email_bd, $email)==0) {
		echo "Adresa de email: <strong>$email</strong> a fost deja folosita pentru inregistrare.
			<br /> Daca v-ati inregistrat cu aceasta adresa de e-mail si ati uitat datele de autentificare, click <a href=\"recuper.php\">Recuperare date</a>.<br /><br />SAU";
	  }
	  echo "<center>$inapoi</center>";
	}
	else {
	/* Creaza sesiunile si Adauga noul cont in baza de date */
   
	  $_SESSION['reguname'] = trim($_POST['nume']);
	  $_SESSION['registered'] = addUtilizator(trim($_POST['nume']), $pass, trim($_POST['email']));

	  echo '<meta http-equiv="Refresh" content="1;url='.$_SERVER['PHP_SELF'].'">';
	  exit;
	}
  }
}
else {
// Aici este pagina cu formularul de logare, 
// numele campurilor input nu trebue schimbate

  // setare nr. verificare si sesiunea asociata
   $data_nrv = date(" j-F-Y, g:i a ");   // Pt. stabilire nr. verificare
   $nr_v = md5($data_nrv);
   if(isset($_SESSION['nrv'])) { unset($_SESSION['nrv']); }
   $_SESSION['nrv'] = substr($nr_v, 3, 5);

   echo '<script src="verific.js"></script>
<center><h1><u>Inregistrare</u></h1><br />';
	echo '<div align="center" style="width:400px; border:1px solid #aaaafe;">
         <p><br /><b> - Introduceti datele dv. de inregistrare si numarul de verificare: <font color="blue" size="4">'. $_SESSION['nrv']. '</font></b></p><br />
<form action="'. basename($_SERVER['PHP_SELF']). '" method="post" onsubmit="return regcheck(this)">
         <input type="hidden" name="nrv0" value="'. $_SESSION['nrv']. '" />
		 <label for="nume">Nume: &nbsp;</label><input type="text" name="nume" maxlength="32" id="nume" /><br /><br />
		 <label for="pass">Parola: </label><input type="password" name="pass" maxlength="18" id="pass" /><br /><br />
		 <label for="pass2">Rescrie parola: </label><input type="password" name="pass2" maxlength="18" id="pass2" /><br /><br />
		 <label for="email">E-Mail: </label><input type="text" name="email" maxlength="42" id="email" /><br /><br />
		 <label for="nrv">Nr. verificare: </label><input type="text" name="nrv" size="5" maxlength="6" id="nrv" /><br /><br />
		 <input type="submit" name="subjoin" value="Trimite">
</form>
</div></center>';
}

@mysql_close(); 
?>

<center><br /><br /><b><a href="../">Inapoi-Logare</a></b></center>