مشكل ايميل فعال ساز در نوك

من يه مقاله در مورد ايميل فعال ساز در نوك خوندم
ولي نتونستم موفق بشم

هر كي فليلشو دا ره بزاره

MER30 :oops:
 

Dark Man

Member
خوب در چه مورد؟يه ذره بيشتر توضيح بده ببينيم ميخواي چيكار كني؟!
اگه ميخواي ايميل فعال ساز رو غير فعال كني كه كاربرا بدون نياز فرستادن لينك فعال ساز و ... بتونن عضو بشن بايد فايل Index.php رو تو ماژول Your_accont رو ويرايش كني.

اول فايل رو با يك ويرايشگر مثل Notepad باز كن و بعد دنبال كدهاي زير بگرد:
کد:
function finishNewUser($username, $user_email, $user_password, $random_num, $gfx_check) {
    global $stop, $EditedMessage, $adminmail, $sitename, $Default_Theme, $user_prefix, $db, $storyhome, $module_name, $nukeurl;
    include("header.php");
    include("config.php");
    userCheck($username, $user_email);
    $user_regdate = date("M d, Y");
    if (!isset($stop)) {
	$datekey = date("F j");
	$rcode = hexdec(md5($_SERVER[HTTP_USER_AGENT] . $sitekey . $random_num . $datekey));
	$code = substr($rcode, 2, 6);
	if (extension_loaded("gd") AND $code != $gfx_check AND ($gfx_chk == 3 OR $gfx_chk == 4 OR $gfx_chk == 6 OR $gfx_chk == 7)) {
	    Header("Location: modules.php?name=$module_name");
	    die();
	}
        mt_srand ((double)microtime()*1000000);
        $maxran = 1000000;
        $check_num = mt_rand(0, $maxran);
	$check_num = md5($check_num);
	$time = time();
	$finishlink = "$nukeurl/modules.php?name=$module_name&op=activate&username=$username&check_num=$check_num";
	$new_password = md5($user_password);
	$username = check_html($username, nohtml);
	$user_email = check_html($user_email, nohtml);
	$result = $db->sql_query("INSERT INTO ".$user_prefix."_users_temp (user_id, username, user_email, user_password, user_regdate, check_num, time) VALUES (NULL, '$username', '$user_email', '$new_password', '$user_regdate', '$check_num', '$time')");
	if(!$result) {
	    echo ""._ERROR."<br>";
	} else {
	    $message = ""._WELCOMETO." $sitename!\n\n"._YOUUSEDEMAIL." ($user_email) "._TOREGISTER." $sitename.\n\n "._TOFINISHUSER."\n\n $finishlink\n\n "._FOLLOWINGMEM."\n\n"._UNICKNAME." $username\n"._UPASSWORD." $user_password";
	    $subject = ""._ACTIVATIONSUB."";
	    $from = "$adminmail";
	    $message=FarsiMail($massage);
	    mail($user_email, $subject, $message, "MIME-Version: 1.0\r\nContent-type: text/html; charset=utf-8\r\nContent-transfer-encoding: 8bit\r\nFrom: $from\nX-Mailer: PHP/" . phpversion());
	    title("$sitename: "._USERREGLOGIN."");
	    OpenTable();
	    echo "<center><b>"._ACCOUNTCREATED."</b><br><br>";
	    echo ""._YOUAREREGISTERED.""
	        ."<br><br>"
		.""._FINISHUSERCONF."<br><br>"
		.""._THANKSUSER." $sitename!</center>";
	    CloseTable();
	}
    } else {
	echo "$stop";
    }
    include("footer.php");
}
بعد اونا را با كدهاي زير جايگزين كن:
کد:
function finishNewUser($username, $user_email, $user_password, $random_num, $gfx_check) {
    global $stop, $EditedMessage, $adminmail, $sitename, $Default_Theme, $user_prefix, $db, $storyhome, $module_name, $nukeurl;
    include_once("header.php");
    include("config.php");
    userCheck($username, $user_email);
    $user_regdate = date("M d, Y");
    if (!isset($stop)) {
	$datekey = date("F j");
	$rcode = hexdec(md5($_SERVER[HTTP_USER_AGENT] . $sitekey . $random_num . $datekey));
	$code = substr($rcode, 2, 6);
	if (extension_loaded("gd") AND $code != $gfx_check) {
	    Header("Location: modules.php?name=$module_name");
	    die();
	}
        mt_srand ((double)microtime()*1000000);
        $maxran = 1000000;
        $check_num = mt_rand(0, $maxran);
	$check_num = md5($check_num);
	$time = time();
	$finishlink = "$nukeurl/modules.php?name=$module_name&op=activate&username=$username&check_num=$check_num";
	$new_password = md5($user_password);
	$db->sql_query("INSERT INTO ".$user_prefix."_users_temp (user_id, username, user_email, user_password, user_regdate, check_num, time) VALUES (NULL, '$username', '$user_email', '$new_password', '$user_regdate', '$check_num', '$time')");
	if(!$result) {
	    echo ""._ERROR."<br>";
	} else {
////
    global $db, $user_prefix, $module_name, $language;
    $past = time()-86400;
    $db->sql_query("DELETE FROM ".$user_prefix."_users_temp WHERE time < $past");
    $sql = "SELECT * FROM ".$user_prefix."_users_temp WHERE username='$username' AND check_num='$check_num'";
    $result = $db->sql_query($sql);
    if ($db->sql_numrows($result) == 1) {
	$row = $db->sql_fetchrow($result);
	if ($check_num == $row[check_num]) {
	    $db->sql_query("INSERT INTO ".$user_prefix."_users (user_id, username, user_email, user_password, user_avatar, user_regdate, user_lang) VALUES (NULL, '$row[username]', '$row[user_email]', '$row[user_password]', 'gallery/blank.gif', '$row[user_regdate]', '$language')");
	    $db->sql_query("DELETE FROM ".$user_prefix."_users_temp WHERE username='$username' AND check_num='$check_num'");
//	    include_once("header.php");
	    title(""._ACTIVATIONYES."");
//	    OpenTable();
	    echo "<center><b>$row[username]:</b> "._ACTMSG."</center>";
//	    CloseTable();
//	    include("footer.php");
//	    die();
	} else {
//	    include("header.php");
	    title(""._ACTIVATIONERROR."");
//	    OpenTable();
	    echo "<center>"._ACTERROR1."</center>";
//	    CloseTable();
//	    include("footer.php");
//	    die();
	}
    } else {
//	include("header.php");
	title(""._ACTIVATIONERROR."");
//	OpenTable();
	echo "<center>"._ACTERROR2."</center>";
//	CloseTable();
//	include("footer.php");
	die();
    }

////
	}
    } else {
	echo "$stop";
    }
    include("footer.php");
}
بعد از اينكار وقتي كاربري بخواد عضو بشه ديگه نيازي به اينكه روي لينك فعال ساز كليك كنه و بره ايميلشو چك كنه نيست و اتوماتيك فعال ميشه. :wink:
 

جدیدترین ارسال ها

بالا