Visszaigazoló e-mail PHP (K)

Indította Luna, 2013-05-20, 10:40:18

2013-05-20, 10:40:18 Utolsó szerkesztés: 2013-06-17, 21:51:22 Szerző: [MOD]Aegist
Üdv!

Kellene nekem egy egyszerű PHP, ami az e-mailben kiküldött kódra kattintva az e-mailhez tartozó accounton a státuszt BLOCK-ról OK-ra változtatja, és mindezt csak egyszer teszi meg.

Tud valaki ilyet írni?

Köszönöm előre is.
NEM én vagyok az Age Of Armageddonos [Maior]Luna! Nem adok oda cuccot, nem húzlak, ott csak egy játékos vagyok, ezt a nicket használom évek óta, gondolom Å' is.

Ha segítettem, nyomj minuszt! :D

2013-05-20, 11:37:54 #1 Utolsó szerkesztés: 2013-05-20, 11:40:13 Szerző: Revolution
Tessék itt a PHP

<?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><p align='center'>Hiba! Rossz vagy lejárt aktivációs kódot adtál meg, próbáld újra</p>
";
    }


?>
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.
";
$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
";
$statusz= "HIBA";
}

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

if (strlen($account) > 16){
$uzenet=$uzenet."A felhasználónév túl hosszú max. 16 karakter.
";
$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
";
$statusz= "HIBA";
}
//JELSZO ELLENORZES
if (empty($pass)) {
$uzenet=$uzenet."Nem adtál meg jelszót.
";
$statusz= "HIBA";
}else{
if($pass != $pass2){
$uzenet=$uzenet."A két jelszó nem egyforma
";
$statusz= "HIBA";
}

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

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

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

if($email1 != $email2){
$uzenet=$uzenet."A két email cim nem egyforma
";
$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
";
$statusz= "HIBA";
}   
//TÖRLŐ KÓD ELLENORZES
if (empty($lcode)) {
$uzenet=$uzenet."Nem adtál meg jelszót.
";
$statusz= "HIBA";
}else{
if (strlen($lcode) < 7){
$uzenet=$uzenet."A Törlő kód túl rövid min. 7 karakter.
";
$statusz= "HIBA";
}
if (strlen($lcode) > 7){
$uzenet=$uzenet."Bocsi, Törlő kód túl hosszú max. 7 karakter.
";
$statusz= "HIBA";}
}
//KÉRDÉS  ELLENORZES
if (empty($sfNum)) {
$uzenet=$uzenet."Nem adtál meg biztonsági választ.
";
$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>
 </p><p align='center'><input type='button' value='Vissza' onClick='history.go(-1)'>
</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 $account! Sikeresen regisztráltál.
</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>";
}
?>

Nagyon köszönöm! :)
NEM én vagyok az Age Of Armageddonos [Maior]Luna! Nem adok oda cuccot, nem húzlak, ott csak egy játékos vagyok, ezt a nicket használom évek óta, gondolom Å' is.

Ha segítettem, nyomj minuszt! :D

A metin2garazs.com oldalról letöltött weblapokban van ilyen, csak a config.inc.php-ban van valami mail cuccos sor, ott állítsd 'true'-ra. A levél szövegét a register.php-ban kell lefordítani. Az aktivációs része pedig a login.php-ban szokott lenni.