Автор: admin
22-10-2010, 19:51

Хак проверка E-Mail при изменении его в профиле


В DataLife Engine проверка на валидность E-Mail происходит только при регистрации, но что мешает пользователю сменить его после регистрации? Правильно, ничего, поэтому предлагаем установить хак который делает проверку E-Mail даже при редактировании его в профиле.

Установка хака валидности E-Mail:

Открываем engine/modules/profile.php

* Находим:
      include_once ENGINE_DIR . '/classes/parse.class.php';

* Ниже вставляем:
      if ( $doaction == 'validating' AND $is_logged )
      {
          $parse = new ParseFilter( );
          
          $validating = ( isset( $_REQUEST['id'] ) ) : strval( $_REQUEST['id'] ) : '';
          
          $validating = explode( '||', @base64_decode( @rawurldecode( $validating ) ) );

          if ( sizeof( $validating ) != 3 ) die( 'ID not valid!' );
          
          $validating[0] = intval( $validating[0] );
          $validating[1] = trim( $db->safesql( $parse->process( $validating[1] ) ) );
          $validating[2] = trim( $db->safesql( $parse->process( $validating[2] ) ) );
          
          if ( md5( md5( md5( $member_id['name'] . $validating[2] . DBHOST . DBNAME . $config['key'] ) ) ) != md5( $validating[3] ) ) die( 'ID not valid!' );
          
          if ( $member_id['user_id'] == $validating[0] AND $validating[1] == $member_id['email'] )
          {
              $db->query( "UPDATE " . USERPREFIX . "_users set email='{$validating[2]}' WHERE user_id='{$member_id['user_id']}'" );
              msgbox( $lang['all_info'], 'E-Mail Активирован!' );
          } else die( 'data not valid!' );
      }

* Находим:
              $filecontents = '';

* Ниже вставляем:
              if ( $email != $member_id['email'] AND $config['registration_type'] )
              {
                  include_once ENGINE_DIR . '/classes/mail.class.php';
                  $mail = new dle_mail( $config );
                  
                  $row = $db->super_query( "SELECT template FROM " . PREFIX . "_email where name='reg_mail' LIMIT 0,1" );
                  
                  $row['template'] = stripslashes( $row['template'] );
                  
                  $idlink = rawurlencode( base64_encode( $member_id['user_id'] . '||' . $member_id['email'] . '||' . $email . '||' . md5( md5( $member_id['name'] . $email . DBHOST . DBNAME . $config['key'] ) ) ) );
                  
                  $row['template'] = str_replace( "{%username%}", $member_id['name'], $row['template'] );
                  $row['template'] = str_replace( "{%validationlink%}", $config['http_home_url'] . 'index.php?subaction=userinfo&user=' . urlencode( $member_id['name'] ) . '&doaction=validating&id=' . $idlink, $row['template'] );
                  $row['template'] = str_replace( "{%password%}", 'Засекречен', $row['template'] );
                  
                  $mail->send( $email, $lang['reg_subj'], $row['template'] );
                  
                  if ( $mail->send_error ) msgbox( $lang['all_info'], $mail->smtp_msg );
                  msgbox( $lang['all_info'], 'Что бы изменить E-Mail, его нужно подтвердить' );
                  
                  $email = $member_id['email'];
              }


Автор хака: Брупт
Комментарии (5)
Просмотров: 1042
Фото

Регистрация: 31.10.2010 Автор: MaLaNСообщений: 11ICQ:
хороший хак, себе щас поставил, спасибо большое.

   
Фото

Регистрация: 4.11.2010 Автор: DJ_SERJСообщений: 102ICQ:
Особого смысла нет его ставить!!!Ну хотя кому то мож и пригодиться!!!



--------------------------
SerjFM.EzAr.Ru
   
Фото

Регистрация: 14.01.2011 Автор: golfilloСообщений: 11ICQ:
Жакшибизь.... опробую! спс!!!

   
Фото

Регистрация: 13.02.2011 Автор: ValeryLСообщений: 50ICQ: 680852
Не согласен с DJ_SERJ. Реально нужный хак.

   
Фото

Регистрация: 20.02.2011 Автор: forgeronСообщений: 1ICQ:
Parse error: syntax error, unexpected ':' in /usr/home/artcoreb/domains/extrasophia.ru/public_html/engine/modules/profile.php
on line 30

   

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.