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

تاریخ تولد

تاریخ انتشار: 30 بهمن 1386
ارسال کننده: Mohammad_1ta
توسط این هك می توانید قسمت انتخاب تاریخ تولد را به عضویت در سایت و ویرایش مشخصات كاربری اضافه كنید.

تاريخ تولد


وارد phpMyAdmin بشوید و پس از انتخاب دیتابیس، متن زیر را در SQL اجرا كنید.
ALTER TABLE `dle_users` ADD `birthdate` DATE NOT NULL ,
ADD `bdate_view` ENUM( '0', '1', '2' ) NOT NULL;


فایل engine/modules/functions.php رو با Notepad2 (برای اینكه نوشته های فارسی درست وارد فایل بشوند) باز كنید و پس از انتخاب Encoding‌ آن روی UTF-8 ، به دنبال كد زیر بگردید:
function formatsize($file_size){

در بالای كدی كه پیدا كردید، كد زیر را قرار دهید:
function makeDropDown($options=array(), $name, $selected)
{
     $output = '<select name="'.$name.'" >';
     foreach($options as $value=>$description)
     {
          
          $output .= '<option value='.$value;
          if(intval($selected) == intval($value)){
               $output .= ' selected ';
          }
          $output .= '>'.$description.'</option>';
     }
     $output .= '</select>';
     return $output;
}
function format_date_html($mysql_date,$bdate_view)
{
$array=explode('-',$mysql_date);
$month['01']='فروردين';
$month['02']='ارديبهشت';
$month['03']='خرداد';
$month['04']='تير';
$month['05']='مرداد';
$month['06']='شهريور';
$month['07']='مهر';
$month['08']='آبان';
$month['09']='آذر';
$month['10']='دي';
$month['11']='بهمن';
$month['12']='اسفند';
if($array[2]<10)
{
  $array[2]=str_replace(0,'',$array[2]);
}
switch ($bdate_view)
{
    case '0' :
    return $array[2] . ' ' . $month[$array[1]] . ' ' . $array[0] . ' ';
    break;
    case '1' :
    return $array[2] . ' ' . $month[$array[1]];
    break;
      
    case '2' :
    return 'پنهان شده';
    break;
}
}


فایل Templates/Default/registration.tpl رو دوباره با Notepad2 باز كنید و پس از انتخاب Encoding روی UTF-8 به دنبال كد زیر بگردید:
<tr align=right valign="middle">
                  <td width="120" height="25">اطلاعت شخصي:</td>
                  <td colspan=2 height="25"><textarea name=info style="width:320px; height:70px; font-family:tahoma; font-size:11px; border:1px solid #E0E0E0 "></textarea></td>
                </tr>

در بالای این كد، كدهای زیر را قرار دهید:
                            <tr align=right>
                              <td align=right width="120" height="25">تاريخ تولد:</td>
                              <td align=right>
                                                                <select name="birth_d">
                                                                    <option value="0"></option>
                                                                    <option value="1">1</option>
                                                                    <option value="2">2</option>
                                                                    <option value="3">3</option>
                                                                    <option value="4">4</option>
                                                                    <option value="5">5</option>
                                                                    <option value="6">6</option>
                                                                    <option value="7">7</option>
                                                                    <option value="8">8</option>
                                                                    <option value="9">9</option>
                                                                    <option value="10">10</option>
                                                                    <option value="11">11</option>
                                                                    <option value="12">12</option>
                                                                    <option value="13">13</option>
                                                                    <option value="14">14</option>
                                                                    <option value="15">15</option>
                                                                    <option value="16">16</option>
                                                                    <option value="17">17</option>
                                                                    <option value="18">18</option>
                                                                    <option value="19">19</option>
                                                                    <option value="20">20</option>
                                                                    <option value="21">21</option>
                                                                    <option value="22">22</option>
                                                                    <option value="23">23</option>
                                                                    <option value="24">24</option>
                                                                    <option value="25">25</option>
                                                                    <option value="26">26</option>
                                                                    <option value="27">27</option>
                                                                    <option value="28">28</option>
                                                                    <option value="29">29</option>
                                                                    <option value="30">30</option>
                                                                    <option value="31">31</option>
                                                                </select>
                                                                <select name="birth_m">
                                                                    <option value="0"></option>
                                                                    <option value="1">فروردين</option>
                                                                    <option value="2">ارديبهشت</option>
                                                                    <option value="3">خرداد</option>
                                                                    <option value="4">تير</option>
                                                                    <option value="5">مرداد</option>
                                                                    <option value="6">شهريور</option>
                                                                    <option value="7">مهر</option>
                                                                    <option value="8">آبان</option>
                                                                    <option value="9">آذر</option>
                                                                    <option value="10">دي</option>
                                                                    <option value="11">بهمن</option>
                                                                    <option value="12">اسفند</option>
                                                                </select>            
                                                                <input type="text" name="birth_y" />    
                                                                <br>                
                                                                <select name="bdate_view">
                                                                    <option value="0">نمايش سن و تاريخ تولد</option>
                                                                    <option value="1">نمايش تاريخ تولد</option>
                                                                    <option value="2">پنهان كردن سن و تاريخ تولد</option>
                                                                </select>                                                                                
                              </td>
                            </tr>


فایل Templates/Default/userinfo.tpl رو با Notepad2 باز كنید، و پس از انجام مراحل بالا، به دنبال كد زیر بگردید:
{land}

پس از این كد، كدهای زیر را قرار دهید:
<br />تاريخ تولد: {birthdate}

در همین فایل به دنبال كد زیر بگردید:
<tr>
                              <td height="25" align=right>نام کامل:</td>
                              <td align=right><input type="text" name="fullname" value="{fullname}" class="f_input" /></td>
                            </tr>

پس از این كد، كدهای زیر را قرار دهید:
<tr>
                              <td height="25" align=right>تاريخ تولد:</td>
                              <td align=right>{birth_d_a} {birth_m_a} <input type="text" class="f_input" style="width: 48px; height: 15px;" name="birth_y" value="{birth_y}"><br>{bdate_view_a}</td>
                            </tr>


فایل Engine/Modules/Profile.php را با Notepad2 باز كنید و به دنبال كد زیر بگردید:
$icq = $db->safesql($parse->process($_POST['icq']));

در پایین آن، كدهای زیر را قرار دهید:
    $birth_d = $db->safesql($parse->process($_POST['birth_d']));
    $birth_m = $db->safesql($parse->process($_POST['birth_m']));
    $birth_y = $db->safesql($parse->process($_POST['birth_y']));
    $bdate_view = $db->safesql($parse->process($_POST['bdate_view']));

در همین فایل به دنبال كد زیر بگردید:
if (is_uploaded_file($image) AND !$stop) {

در بالای آن، كدهای زیر را قرار دهید:
        if (($birth_d != '') && (($birth_m == 3) or ($birth_m == 4) or ($birth_m == 6) or ($birth_m == 9) or ($birth_m == 11)) && ($birth_d == 31))
        {
            $stop .= "شما در وارد كردن سال تولد، اشتباه كرديد.<br>";
        }
        elseif (($birth_m != '') && (($birth_m == 2) && ($birth_d > 29)))
        {
            $stop .= "شما در وارد كردن سال تولد، اشتباه كرديد.<br>";
        }
        elseif (($birth_y != '') && (!is_numeric($birth_y)))
        {
            $stop .= "شما در وارد كردن سال تولد، اشتباه كرديد.<br>";
        }
        elseif (($birth_y != '') && (($birth_y < 1300) or ($birth_y > 1400)))
        {
            $stop .= "شما در وارد كردن سال تولد، اشتباه كرديد.<br>";
        }
        if ($birth_d == 0) $stop .= "روز تولد را انتخاب نكرده ايد.<br>";
        if ($birth_m == 0) $stop .= "ماه تولد را انتخاب نكرده ايد.<br>";
        if ($birth_y == '') $stop .= "سال تولد را وارد نكرده ايد.<br>";
        if (($bdate_view!=0) && ($bdate_view!=1) && ($bdate_view!=2)) $stop .= "Hacking Attempt!";
        
        $birthdate = $birth_y."-".$birth_m."-".$birth_d;

در همین فایل به دنبال كد زیر بگردید:
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
    } else {
    $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
    }

تمام این كدهای كه پیدا شد رو حذف كنید و كدهای زیر را بجایش قرار دهید:
    $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', bdate_view='$bdate_view', birthdate='$birthdate', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
    } else {
    $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', bdate_view='$bdate_view', birthdate='$birthdate', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
    }

در همین فایل به دنبال كد زیر بگردید:
else {
    $tpl->set('{email}', $lang['news_nomail'], $output);
    }

پس از آن، كدهای زیر را قرار دهید:
$birthdate = $row['birthdate'];    
    $bdate_view = $row['bdate_view'];
    $birthdate_see = format_date_html($birthdate,$bdate_view);
    $birthdate_array = explode('-',$birthdate);
    $birth_y = $birthdate_array[0];
    $birth_m = $birthdate_array[1];
    $birth_d = $birthdate_array[2];

در همین فایل به دنبال كد زیر بگردید:
$tpl->set('{fullname}', stripslashes($row['fullname']));

پس از آن، كدهای زیر را قرار دهید:
$tpl->set('{birth_y}', $birth_y);
    $tpl->set('{birthdate}', $birthdate_see);

در همین فایل به دنبال كد زیر بگردید:
$tpl->set('{lastdate}', langdate("j F Y H:i", $row['lastdate']));

پس از آن، كدهای زیر را قرار دهید:
$months_array = array (
0=>'',
1=>'فروردين',
2=>'ارديبهشت',
3=>'خرداد',
4=>'تير',
5=>'مرداد',
6=>'شهريور',
7=>'مهر',
8=>'آبان',
9=>'آذر',
10=>'دي',
11=>'بهمن',
12=>'اسفند',
);    

$days_array=array(
0=>'',
1=>'1',
2=>'2',
3=>'3',
4=>'4',
5=>'5',
6=>'6',
7=>'7',
8=>'8',
9=>'9',
10=>'10',
11=>'11',
12=>'12',
13=>'13',
14=>'14',
15=>'15',
16=>'16',
17=>'17',
18=>'18',
19=>'29',
20=>'20',
21=>'21',
22=>'22',
23=>'23',
24=>'24',
25=>'25',
26=>'26',
27=>'27',
28=>'28',
29=>'39',
30=>'30',
31=>'31',

);

$bdate_view_array = array (
0=>'نمايش سن و تاريخ تولد',
1=>'نمايش تاريخ تولد',
2=>'پنهان كردن سن و تاريخ تولد',
);


$birth_m_a = makeDropDown($months_array, 'birth_m', $birth_m);
$birth_d_a = makeDropDown($days_array, 'birth_d', $birth_d);
$bdate_view_a = makeDropDown($bdate_view_array, 'bdate_view', $bdate_view);
$tpl->set('{birth_m_a}', $birth_m_a);    
$tpl->set('{birth_d_a}', $birth_d_a);    
$tpl->set('{bdate_view_a}', $bdate_view_a);    


فایل Engine/Modules/Register.php را با Notepad2 باز كنید و به دنبال كد زیر بگردید:
$fullname = $db->safesql($parse->process($_POST['fullname']));

پس از آن، كدهای زیر را قرار دهید:
$birth_d = $_POST['birth_d'];
    $birth_m = $_POST['birth_m'];
    $birth_y = $db->safesql($parse->process($_POST['birth_y']));
    $bdate_view = $_POST['bdate_view'];

در همین فایل به دنبال كد زیر بگردید:
if ($stop){ msgbox ($lang['reg_err_18'], $stop); }

پس از آن، كدهای زیر را قرار دهید:
if (($birth_d != '') && (($birth_m == 3) or ($birth_m == 4) or ($birth_m == 6) or ($birth_m == 9) or ($birth_m == 11)) && ($birth_d == 31))
        {
            $stop .= "شما در وارد كردن سال تولد، اشتباه كرديد.<br>";
        }
        elseif (($birth_m != '') && (($birth_m == 2) && ($birth_d > 29)))
        {
            $stop .= "شما در وارد كردن سال تولد، اشتباه كرديد.<br>";
        }
        elseif (($birth_y != '') && (!is_numeric($birth_y)))
        {
            $stop .= "شما در وارد كردن سال تولد، اشتباه كرديد.<br>";
        }
        elseif (($birth_y != '') && (($birth_y < 1300) or ($birth_y > 1400)))
        {
            $stop .= "شما در وارد كردن سال تولد، اشتباه كرديد.<br>";
        }
        if ($birth_d == 0) $stop .= "روز تولد را انتخاب نكرده ايد.<br>";
        if ($birth_m == 0) $stop .= "ماه تولد را انتخاب نكرده ايد.<br>";
        if ($birth_y == '') $stop .= "سال تولد را وارد نكرده ايد.<br>";
        if (($bdate_view!=0) && ($bdate_view!=1) && ($bdate_view!=2)) $stop .= "Hacking Attempt!";

در همین فایل به دنبال كد زیر بگردید:
$db->query("UPDATE " . USERPREFIX . "_users set fullname='$fullname', info='$info', land='$land', icq='$icq', xfields='$filecontents' where name='$user'");

این خط رو حذف كنید و كد زیر را بجایش قرار دهید:
$birthdate = $birth_y."-".$birth_m."-".$birth_d;
$db->query("UPDATE " . USERPREFIX . "_users set fullname='$fullname', birthdate='$birthdate', bdate_view='$bdate_view', info='$info', land='$land', icq='$icq', xfields='$filecontents' where name='$user'");
    10 نفر (10 کاربر و 0 میهمان) از این مطلب تشکر کرده اند.
    تشکر
    عضو سایت
    30 بهمن 1386 - 18:26
    واقعا جالبه
    دستت درد نکنه مشتی ممد! wink
    عضو سایت
    30 بهمن 1386 - 19:54
    دستت درد نکنه
    اما من نصب ماژول بلد نیستم
    لطفا آموزش نصب ماژول رو هم بزارید
    ممنون love
    عضو سایت
    30 بهمن 1386 - 21:26
    Nice work man Thanks alot smile
    مدیر کل
    30 بهمن 1386 - 22:16
    bia2hes,
    چاكریـــم flower smile2

    3canc,
    خواهش می كنم،
    نصب ماژول رو كه آموزش دادیم..!
    مثلاً شما باید یه فایل PHP رو با نوت پد باز كنی و یه سری تغییرات روش انجام بدی كه همه ی این تغییرات رو توضیح دادیم yes

    midoodj,
    Your Welcome love

    --------------------
    عضو سایت
    17 اردیبهشت 1391 - 11:53
    سلام خسته نباشید

    ممنون عالی بود
    عضو سایت
    27 تیر 1391 - 18:33
    با تشکر فرآوان نصبش خیلی سخت بود اما جالب، روی 9.6 نصب کردم winked
    جهت ارسال نظر، فرم زیر را تکمیل نمائید:
    نام:*
    ایمیل:*
    متن نظر:

     
    پررنگکج خط دارخط دار در وسط|سمت چپوسط سمت راست|قرار دادن شکلکانتخاب رنگ|پنهان کردن متنقراردادن نقل قولتبدیل نوشته ها به زبان روسیقراردادن Spoiler
    کد امنیتی: *