Regisztráció + aktiválás rendszer

Indította Revolution, 2013-05-20, 11:42:16

2013-05-20, 11:42:16 Utolsó szerkesztés: 2013-06-16, 16:02:01 Szerző: Revolution
<?php
$kapcsolat 
mysql_connect("PW","USER","PW");               // AZ ADATOKAT SZERKESZD BE
mysql_select_db("account"$kapcsolat);
$confirm $_GET['confirm'];

 if($rec=mysql_fetch_array(mysql_query("SELECT * FROM account.account WHERE safecod='$confirm'"))){
if(($rec['safecod']==$confirm)){

$parancs "SELECT * FROM account.account WHERE safecod='$confirm'";
   
$eredmeny mysql_query($parancs); 
    while (
$row=mysql_fetch_array($eredmeny))
{
$aktivalva=$row['aktivalva'];
}

if (
$aktivalva == "nem"){
$parancs "UPDATE account.account SET aktivalva='igen', status='OK', torles='2999-01-01 00:00:00' WHERE safecod='$confirm'";
mysql_query($parancs);
}

if (
$aktivalva == "igen"){
echo 
"<p align='center'>Már aktiválva vagy.</p>";
echo
'<meta http-equiv="refresh" content="1;url=http://weblapod.com">';
 
}else{
if(isset(
$confirm)){
echo 
"Az aktiválás sikeresen megtörtént, mostmár bejelentkezhetsz\n"
echo
'<meta http-equiv="refresh" content="1;url=http://weblapod.com">';
}
}
}
}

  else {
echo 
"<font face='Verdana' size='2' color=red><b><p align='center'>Hiba! Rossz vagy lejárt aktivációs kódot adtál meg, próbáld újra</p></b><br>";
 }


?>

Account adatbázisban +2 új oszlopot kell meg adnod
az egyik aktivalva másik meg a safecod

aktivalva typeja az enum legyen ott 2 értéket adj, nem és igen
alapértelmezett nem legyen.


Regisztráció rész
<?PHP
$nyitva = 'IGEN'; // ITT LEHET KI-BE KAPCSOLNI :  IGEN vagy NEM

if ($nyitva == 'IGEN')
{
$do = mysql_real_escape_string($_POST['do']);
 
function valosf($account){
        if ($account == "")
          return false;
        $engedelyezett = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        for ($i = 0; $i < strlen($account); ++$i)
          if (strpos($engedelyezett, $account[$i]) === false)
            return false;
        return true;
}
//VALOS EMAIL

function email($email1) {
$eredmeny = TRUE;
  if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email1)) {
    $eredmeny = FALSE;
  }
  return $eredmeny;
}
       
if(isset($do) and $do == "do"){
$uzenet="";
$statusz = "OK";

$account =  mysql_real_escape_string($_POST['account']);
$uname =  mysql_real_escape_string($_POST['uname']);
$pass =  mysql_real_escape_string($_POST['pass']);
$pass2 =  mysql_real_escape_string($_POST['pass2']);
$email1 =  mysql_real_escape_string($_POST['email']);
$email2 =  mysql_real_escape_string($_POST['email2']);
    $hashSF = md5($_POST['sicherheitsa']);
    $sfNum = mysql_real_escape_string($_POST['sicherheitsf']);
    $lcode = mysql_real_escape_string($_POST['loeschcode']);


  $regCoins = 2000; // Startcoins
 
  $laufZeit = 365; //Tage autoloot,safebox
  $calcLZ = (60*60*24)*365;
  $expireStamp = time()+$calcLZ;
  $expireDate = date("Y-m-d H:i:s",$expireStamp);
  $zuFall = rand(99999,999999999);
  $aktivHash = '';
  $accountStatus = 'BLOCK';
putenv("TZ=Europe/Budapest");
$torles = date('Y-m-d H:i:s', time()+3600 * 48); //AKTIVÁLÁSI HATÁRIDŐ 48 = 48 ÓRA
$aktivalva  = 'igen';

function generateRandomString($hosszusag = 8, $betu = '12345678901235678909876543210987654321456789012345345678901235678909876541234567890123567890987654321098765432145678901234534567321098765432145678901678909876543210987654321')
  {
      $s = '';
       $betuhosszusag = strlen($betu)-1;
      for($i = 0 ; $i < $hosszusag ; $i++){
      $s .= $betu[rand(0, $betuhosszusag)];}   
     return $s;
  }
  $safecod = generateRandomString();


//account ELLENORZESEK
if (empty($account)) {
$uzenet=$uzenet."Nem adtál meg felhasználó nevet.<br/>";
$statusz= "HIBA";
}
else{

if (!valosf($account)){
$uzenet=$uzenet."A felhasználónév csak ezekből a karakterekből állhat: A-Z, a-z, 0-9<br/>";
$statusz= "HIBA";
}

if (strlen($account) < 4){
$uzenet=$uzenet."A felhasználónév túl rövid min. 4 karakter.<br/>";
$statusz= "HIBA";
}

if (strlen($account) > 16){
$uzenet=$uzenet."A felhasználónév túl hosszú max. 16 karakter.<br/>";
$statusz= "HIBA";
}
}

if(mysql_num_rows(mysql_query("SELECT login FROM account.account WHERE login = '$account'"))){
$uzenet=$uzenet."$account már létezik. Kérjük, próbálj meg egy másikat<br/>";
$statusz= "HIBA";
}
//JELSZO ELLENORZES
if (empty($pass)) {
$uzenet=$uzenet."Nem adtál meg jelszót.<br/>";
$statusz= "HIBA";
}else{
if($pass != $pass2){
$uzenet=$uzenet."A két jelszó nem egyforma<br/>";
$statusz= "HIBA";
}

if (strlen($pass) < 8){
$uzenet=$uzenet."A jelszó túl rövid min. 8 karakter.<br/>";
$statusz= "HIBA";
}

if (strlen($pass) > 16){
$uzenet=$uzenet."Bocsi, A jelszó túl hosszú max. 16 karakter.<br/>";
$statusz= "HIBA";}
}
//EMAIL ELLENORZES
if (empty($email1)) {
$uzenet=$uzenet."Nem adtál meg emailt.<br/>";
$statusz= "HIBA";
}

else{
if (!email($email1)){
$uzenet=$uzenet."Valótlan email cim.<br/>";
$statusz= "HIBA";
}

if($email1 != $email2){
$uzenet=$uzenet."A két email cim nem egyforma<br/>";
$statusz= "HIBA";
}
}
if(mysql_num_rows(mysql_query("SELECT email FROM account.account WHERE email = '$email1'"))){
$uzenet=$uzenet."$email1 cim már létezik. Kérjük, próbálj meg egy másikat<br/>";
$statusz= "HIBA";
}
//TÖRLŐ KÓD ELLENORZES
if (empty($lcode)) {
$uzenet=$uzenet."Nem adtál meg jelszót.<br/>";
$statusz= "HIBA";
}else{
if (strlen($lcode) < 7){
$uzenet=$uzenet."A Törlő kód túl rövid min. 7 karakter.<br/>";
$statusz= "HIBA";
}
if (strlen($lcode) > 7){
$uzenet=$uzenet."Bocsi, Törlő kód túl hosszú max. 7 karakter.<br/>";
$statusz= "HIBA";}
}
//KÉRDÉS  ELLENORZES
if (empty($sfNum)) {
$uzenet=$uzenet."Nem adtál meg biztonsági választ.<br/>";
$statusz= "HIBA";
}

if (strlen($refcode) > 0)
{
$mysql_query[1] = mysql_query("SELECT * FROM account.referer_links WHERE code = '".$refcode."' LIMIT 1");

if(mysql_num_rows($mysql_query[1]) == 1)
{
$mysql_result[1] = mysql_fetch_assoc($mysql_query[1]);

$mysql_query[2] = mysql_query("SELECT * FROM account.account WHERE id = '".$mysql_result[1]['acc_id']."' LIMIT 1");

if(mysql_num_rows($mysql_query[2]) == 1)
{
$mysql_result[2] = mysql_fetch_assoc($mysql_query[2]);

mysql_query("UPDATE account.account SET coins = '".($mysql_result[2]['coins'] + 5)."' WHERE (id = '".$mysql_result[2]['id']."')");
}
}
}


if($statusz<>"OK"){
echo"<div style='text-color:red;'><p align=center> $uzenet</div><br/> </p><p align='center'><input type='button' value='Vissza' onClick='history.go(-1)'><br/></p>";
}else{




     $sqlCmd = "INSERT INTO account.account
        (login,password,real_name,email,social_id,question1,answer1,create_time,status,coins,autoloot_expire,safebox_expire,web_aktiviert,safecod)
        VALUES
        ('".$account."',PASSWORD('".$pass."'),'".$uname."','".$email1."','".$lcode."','".$sfNum."','".$hashSF."','".$sqlZeit."','".$accountStatus."','".$regCoins."','".$expireDate."','".$expireDate."','".$aktivHash."','".$safecod."')";
        $sqlQry = mysql_query($sqlCmd,$sqlServ);


require("phpmailer/class.phpmailer.php");
$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->Host = 'ssl://smtp.gmail.com:465';
$mailer->SMTPAuth = TRUE;
$mailer->Username = '[email protected]';  // Change this to your gmail adress
$mailer->Password = 'gmail pw';  // Change this to your gmail password
$mailer->From = '[email protected]';  // This HAVE TO be your gmail adress
$mailer->FromName = 'Weblapod'; // This is the from name in the email, you can put anything you like here
$mailer->Body = 'Szia '.$account.'!

Sikeresen regisztráltál a http://weblapod.com weboldalon.

Felhasználó név:'.$account.'
Jelszó:'.$pass.'
Törlő kód: '.$lcode.'

Kattints a megerősitéshez:
http://weblapod.com/aktivalas.php?confirm='.$safecod.' cimre.

Figyelem: A felhasználód aktiválására 48 órád van. Határidő: '.$torles.'

Erre az emailre ne válaszolj, mert automatikusan küldtük ki neked,

Üdvözlettel:

A csapata
';
$mailer->Subject = 'Weblapod'.$account.' (Sikeres Regisztracio)';
$mailer->AddAddress($_POST['email']); 
$mailer->Send();

echo "<p align='center'>Gratulálunk <b>$account</b>! Sikeresen regisztráltál.<br></p>";
}
         
       }else{   
       
  ?>
    <p>Minden mező kitöltése kötelező!</p>
    <form action="index.php?s=register" method="POST">
<input type="hidden" name="do" value="do" />
<input type="hidden" name="referer" value="<?php print $_GET['referer']; ?>" />
      <table>
        <tr>
          <th class="topLine">Felhasználónév:</th>
          <td class="tdunkel"><input type="text" name="account" maxlength="16" size="16"/> 4-16 </td>
        </tr>
        <tr>
          <th class="topLine">Neved:</th>
          <td class="thell"><input type="text" name="uname" maxlength="16" size="16"/> 3-20</td>
        </tr>
        <tr>
          <th class="topLine">Jelszó:</th>
          <td class="tdunkel"><input type="password" name="pass" maxlength="16" size="16"/> 8-16 </td>
        </tr>
        <tr>
          <th class="topLine">Jelszó újra:</th>
          <td class="thell"><input type="password" name="pass2" maxlength="16" size="16"/></td>
        </tr>
        <tr>
          <th class="topLine">E-Mail:</th>
          <td class="tdunkel"><input type="text" name="email" maxlength="50" size="25"/> max. 40</td>
        </tr>
        <tr>
          <th class="topLine">E-Mail újra:</th>
          <td class="thell"><input type="text" name="email2" maxlength="50" size="25"/></td>
        </tr>
        <tr>
          <th class="topLine">Törlőkód:</th>
          <td class="tdunkel"><input type="text" name="loeschcode" maxlength="7" size="7"/> 7 Karakter</td>
        </tr>
        <tr>
          <th class="topLine">Biztonsági kérdés:</th>
          <td class="thell">
            <select name="sicherheitsf">
                 <option value="1">Szülő neve?</option><option value="2">Kedvenc ételed?</option><option value="3">Kedvenc városod?</option><option value="4">Hobbyd?</option><option value="5">Szerencse számod?</option><option value="6">Kedvenc szinészed?</option><option value="7">Kedvenc filmed?</option><option value="8">Kedvenc tantárgyad?</option>
     
            </select>
            <input type="text" name="sicherheitsa" maxlength="16" size="16"/> 3-16
          </td>
        </tr>
        <tr>
          <th class="topLine">Ellenörző kód:</th>
          <td class="tdunkel"><img src="./captcha/captcha.php" title="Captcha"/>&nbsp;<input type="text" name="captcha" maxlength="5" size="5"/></td>
        </tr>
        <tr>
          <th class="topLine" style="text-align:center;" colspan="2"><input type="submit" name="submit" value="Regisztrálok"/> &bull; <input type="reset" value="Újra"/></th>
        </tr>
      </table>
    </form>

  <?PHP
  }
}else{
echo "<p align='center'>A Regisztráció zárva van.</p>";
}
?>