[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как прикрутить код замка?
Эмилия
Уважаемые форумчане!!! Решила сделать платной регистрацию на сайте, зарегистрировалась в билинговой компании, получила код СМС замка. Открываю signup.php и вот тут то начались танцы с бубном....
Как прикрутить этот код чтоб работал как мне нужно не пойму!!!

Подробнее:

Регистрация происходит в несколько этапов и все они в коде signup.php, на первом этапе вводитсяадрес мыла, пароль, потдверждение пароля, имя, выбр языка. дальше , если всё нормально переход на следуюшую страницу( второй этап) где вводятся данные профиля: имя ,фамилия, возраст и т.д., третий этап- загрузка фото и т.д. Меня интересует закрытие замком второго этапа, где вводятся данные профиля. Пробовала вставлять код в разные места. Что получалось:Либо закрывается регистрация полностью, либо второй этап (Что и нужно) но восле ввода кода опять выбрасывает на первый!!! А должно перейти к загрузке фото!!!
Помогите пожалуйста вклеить этот код,следующая неделя будет уже третья как мучаюсь. sad.gif

Код замка:
PHP
<?php
session_start
();
$link_id="53";
$days "0"//Сколько дней действует пароль. 0 - неограничено
$counter "0"//Сколько раз можно ввести пароль. 0 - неограничено
$mm_answer = array(); // ответ сервера: ID СМС (transaction_id), сумма партнера в рублях (summ_rur) и долларах (summ_usd)

/*-- Функция, перебирающая доступные хосты (если вдруг один не доступен из-за ДДОС) --*/
function cmc_check_password($code,$link_id,$days,$counter) {

$hosts_array=array();
$hosts_array[]="www.ххххххххххх";
$hosts_array[]="www2.ххххххххххх";

foreach(
$hosts_array as $k=>$v) {
    
$hostname $v;
    
$path "/smspay/checker_extended.php"// Аккуратнее с именами и путями
    
$port 80;
    
// Устанавливаем соединение, имя которого передано в параметре $hostname
    
$fp = @fsockopen($hostname$port$errno$errstr2);
    
// Проверяем успешность установки соединения
    
if (!$fp) {
        
// Если не получилось - следующий коннект в цикле
        //echo "Couldn't connect to $v. Continuing";
        
continue;
    }
    else {
    
//echo "Connect successful to $v. Sending data";
    
@set_time_limit(60);
    @
stream_set_timeout($fp9);
    if (
cmc_inner($fp,$hostname,$path,$port,$link_id,$code,$days,$counter)) {
        return 
true;
    } else {
        return 
false;
    }
}
}
}

/*-- Функция запроса к серверу и проверки кода. Возвращает true или false --*/
function cmc_inner($fp,$hostname,$path,$port,$link_id,$code,$days,$counter) {
    global 
$mm_answer;
    
    
$line "";
    
// Данные HTTP-запроса
    
$data "link_id=$link_id&code=$code&days=$days&counter=$counter\r\n\r\n";
    
// Заголовок HTTP-запроса
    
$headers "POST $path HTTP/1.1\r\n";
    
$headers .= "Host: $hostname\r\n";
    
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
    
$headers .= "Connection: close\r\n";
    
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
    
// Отправляем HTTP-запрос серверу
    
fwrite($fp$headers.$data);
    
// Получаем ответ
    
while (!feof($fp)) {
    
$line .= fgets($fp1024);
    }
    
fclose($fp);
if (!
ereg("200 OK",$line)) {
      
//Если сервер не вернул 200 ОК - записать в файл, отослать емайл. И сообщить нам
} else {
    if (
ereg("true",$line)) {
//////////////////////
        
$mm_answer explode("\n"$line);
//////////////////////
        
$mm_answer unserialize(array_pop($mm_answer));
        
        return 
true;
    } else {
    
/*-- Обработка различных ошибок. Можно закомментировать, если нет необходимости --*/
    
if (strstr($line,"nocode")) echo "Не введен пароль<br>\n";
    if (
strstr($line,"nodays")) echo "Не введен срок действия<br>\n";
    if (
strstr($line,"nocounter")) echo "Не введено ограничение по кол-ву использований<br>\n";
    if (
strstr($line,"nolinkid")) echo "Внимание! Отсутствует ID (идентификатор) замка!<br>\n";
    if (
strstr($line,"notar")) echo "Внимание! Отсутствует тариф замка!<br>\n";
    
    if (
strstr($line,"wronglinkid")) echo "Замка с таким ID (идентификатором) не существует!<br>\n";
    if (
strstr($line,"expiredcounter")) echo "Количество вводов пароля превысило установленный лимит!<br>\n";
    if (
strstr($line,"expireddate")) echo "Истёк срок действия кода!<br>\n";
    if (
strstr($line,"linkidused")) echo "Данный код используется на другом смс-замке!<br>\n";
    if (
strstr($line,"wrongpartnercode")) echo "Данный код принадлежит не этому партнеру!<br>\n";
    
    return 
false;    
    }
    }
}


/*-- Функция отображения формы --*/
function showform() {
    
?>
    Чтобы получить доступ к закрытой части Вам необходимо СМС-кой отправить <font size="+1">102684</font> на номер <font size="+1">1132</font><br>
    В ответном СМС сообщении Вы получите пароль доступа на 0 день(дней).</a>
    <form action="" method="POST">
    <input type="text" name="cmc_partners_code">
    <input type="submit" value="Ввести код">
    </form>
    <?php
    
}    

if (isset(
$_SESSION['cmc_partners_code'])) {
        
$_POST['cmc_partners_code']=$_SESSION['cmc_partners_code'];
}

if (!isset(
$_POST['cmc_partners_code']) || empty($_POST['cmc_partners_code'])) {
    
showform();
    die();
} else {
    
$bool cmc_check_password($_POST['cmc_partners_code'],$link_id,$days,$counter);
    if (!
$bool)
    {
        unset(
$_SESSION['cmc_partners_code']);
        echo 
"Вы ввели неверный пароль!<br>";
            
showform();
        die();
    } else {
                
$_SESSION['cmc_partners_code']=$_POST['cmc_partners_code'];
    }
}

 
?>

/*-- Сюда вы попадаете после успешной проверки кода.<br>\n
Здесь и далее вы можете писать свой php-код или html-код (перенаправление, вы


код signup.php:



PHP
<?php

$page 
"signup";
include 
"header.php";

if(isset(
$_POST['task'])) { $task $_POST['task']; } else { $task "step1"; }

// SET ERROR VARS
$is_error 0;


// IF USER IS ALREADY LOGGED IN, FORWARD TO USER HOME PAGE
if( $user->user_exists )
{
  
header("Location:home.php");
  exit();
}



// CHECK IF USER SIGNUP COOKIES SET (STEPS 3, 4, 5)
$signup_logged_in 0;
if(
$task != "step1" && $task != "step1do" && $task != "step2" && $task != "step2do")
{
  if(isset(
$_COOKIE['signup_id']) && isset($_COOKIE['signup_email']) && isset($_COOKIE['signup_password']))
  {
    
// GET USER ROW IF AVAILABLE
    
$user_id $_COOKIE['signup_id'];
    
$new_user = new se_user(Array($user_id));
    
    
// VERIFY USER LOGIN COOKIE VALUES AND RESET USER LOGIN VARIABLE
    //if($_COOKIE['signup_email'] == crypt($new_user->user_info['user_email'], "$1$".$new_user->user_info['user_code']."$") && $_COOKIE['signup_password'] == $new_user->user_info['user_password'])
    
$new_user->user_salt $new_user->user_info['user_code'];
    if( 
$_COOKIE['signup_email'] == $new_user->user_password_crypt($new_user->user_info['user_email']) && $_COOKIE['signup_password'] == $new_user->user_info['user_password'] )
    {
      
$signup_logged_in 1;
    }
  }

  if(
$signup_logged_in != 1) { cheader("signup.php"); exit(); }
}

if(
$signup_logged_in != 1)
{
  
setcookie("signup_id"""0"/");
  
setcookie("signup_email"""0"/");
  
setcookie("signup_password"""0"/");
  
$_COOKIE['signup_id'] = "";
  
$_COOKIE['signup_email'] = "";
  
$_COOKIE['signup_password'] = "";
  
$new_user = new se_user();
  if(
$task == "step1")
  { 
    if(isset(
$_GET['signup_email'])) { $signup_email $_GET['signup_email']; } else { $signup_email ""; }
    if(isset(
$_GET['signup_invite'])) { $signup_invite $_GET['signup_invite']; } 
    
$signup_password ""
    
$signup_timezone $setting['setting_timezone'];
  }
}



// PROCESS INPUT FROM FIRST STEP (OR DOUBLE CHECK VALUES), CONTINUE TO SECOND STEP (OR SECOND STEP PROCESSING)
if($task == "step1do" || $task == "step2do")
{
  
$signup_email $_POST['signup_email'];
  
$signup_password $_POST['signup_password'];
  
$signup_password2 $_POST['signup_password2'];
  
$step $_POST['step'];
  
  if(
$task == "step2do" && $step != "1")
  {
    
$signup_password base64_decode($signup_password);
    
$signup_password2 base64_decode($signup_password2);
  }
  
  
$signup_username $_POST['signup_username'];
  
$signup_timezone $_POST['signup_timezone'];
  
$signup_invite $_POST['signup_invite'];
  
$signup_cat $_POST['signup_cat'];

  
// GET LANGUAGE PACK SELECTION
  
$signup_lang = ( $setting['setting_lang_allow'] ? $_POST['signup_lang'] : );

  
// TEMPORARILY SET PASSWORD IF RANDOM PASSWORD ENABLED
  
if($setting['setting_signup_randpass'] != 0)
  {
    
$signup_password "temporary";
    
$signup_password2 "temporary";
  }

  
// CHECK USER ERRORS
  
$new_user->user_password(''$signup_password$signup_password20);
  
$new_user->user_account($signup_email$signup_username);
  
$is_error $new_user->is_error;

  
// CHECK INVITE CODE IF NECESSARY
  
if($setting['setting_signup_invite'] != 0)
  {
    if(
$setting['setting_signup_invite_checkemail'] != 0)
    {
      
$invite $database->database_query("SELECT invite_id FROM se_invites WHERE invite_code='$signup_invite' AND invite_email='$signup_email'");
      
$invite_error_message 705;
    }
    else
    {
      
$invite $database->database_query("SELECT invite_id FROM se_invites WHERE invite_code='$signup_invite'");
      
$invite_error_message 706;
    }
    if(
$database->database_num_rows($invite) == 0) { $is_error $invite_error_message; }
  }

  
// CHECK TERMS OF SERVICE AGREEMENT IF NECESSARY
  
if($setting['setting_signup_tos'] != 0)
  {
    
$signup_agree $_POST['signup_agree'];
    if(
$signup_agree != 1)
    {
      
$is_error 707;
    }
  }

  
// RETRIEVE AND CHECK SECURITY CODE IF NECESSARY
  
if($setting['setting_signup_code'] != 0)
  {
    
// NOW IN HEADER
    //session_start();
    
$code $_SESSION['code'];
    if(
$code == "") { $code randomcode(); }
    
$signup_secure $_POST['signup_secure'];
    
    if(
$signup_secure != $code)
    {
      
$is_error 708;
    }
  }

  
// IF THERE IS NO ERROR, CONTINUE TO STEP 2 OR PROCESS STEP 2
  
if($is_error == 0)
  {
    
// ONLY IF ON STEP ONE, CONTINUE TO STEP 2 - ELSE GO TO PROCESSING STEP 2
    
if($task == "step1do") { $task "step2"; }
  }
  
  
// IF THERE WAS AN ERROR, GO BACK TO STEP 1
  
else
  {
    
$task "step1";
  }

}












if(
$task == "step1" || $task == "step1do" || $task == "step2" || $task == "step2do")
{
  if(
$database->database_num_rows($database->database_query("SELECT NULL FROM se_profilecats WHERE profilecat_id='$signup_cat' AND profilecat_dependency='0'")) != 1)
  {
    
$cat_info $database->database_fetch_assoc($database->database_query("SELECT profilecat_id FROM se_profilecats WHERE profilecat_dependency='0' ORDER BY profilecat_order LIMIT 1"));
    
$signup_cat $cat_info['profilecat_id'];
  }
  if(
$task == "step2do") { $validate 1; } else { $validate 0; }
  if(
$task != "step1") { $cat_where "profilecat_signup='1' AND profilecat_id='$signup_cat'"; } else { $cat_where "profilecat_signup='1'"; }
  
$field = new se_field("profile");
  
$field->cat_list($validate00$cat_where"""profilefield_signup='1'");
  
$cat_array $field->cats;
  if(
$task != "step1" && count($cat_array) == 0) { $task "step1"; }
  if(
$validate == 1) { $is_error $field->is_error; }
  if(
$task != "step1" && count($field->fields_all) == 0) { $task "step2do"; }
}









if(
$task == "step2do")
{
  
// PROFILE FIELD INPUTS PROCESSED AND CHECKED FOR ERRORS ABOVE
  // IF THERE IS NO ERROR, ADD USER AND USER PROFILE AND CONTINUE TO STEP 3
  
if($is_error == 0)
  {
    
$new_user->user_create($signup_email$signup_username$signup_password$signup_timezone$signup_lang$signup_cat$field->field_query);
    
    
// INVITE CODE FEATURES
    
if($setting['setting_signup_invite'] != 0)
    {
      if(
$setting['setting_signup_invite_checkemail'] != 0)
      {
        
$invitation $database->database_fetch_assoc($database->database_query("SELECT * FROM se_invites WHERE invite_code='$signup_invite' AND invite_email='$signup_email' LIMIT 1"));
      }
      else
      {
        
$invitation $database->database_fetch_assoc($database->database_query("SELECT * FROM se_invites WHERE invite_code='$signup_invite' LIMIT 1"));
      }

      
// ADD USER TO INVITER'S FRIENDLIST
      
$friend = new se_user(Array($invitation['invite_user_id']));
      if(
$friend->user_exists == 1)
      {
        if(
$setting['setting_connection_allow'] == || $setting['setting_connection_allow'] == || ($setting['setting_connection_allow'] == && $new_user->user_info['user_subnet_id'] == $friend->user_info['user_subnet_id']))
        {
          
// SET RESULT, DIRECTION, STATUS
          
switch($setting['setting_connection_framework'])
          {
            case 
"0":
              
$direction 2;
              
$friend_status 0;
              break;
            case 
"1":
              
$direction 1;
              
$friend_status 0;
              break;
            case 
"2"
              
$direction 2;
              
$friend_status 1;
              break;
            case 
"3":
              
$direction 1;
              
$friend_status 1;
              break;      
          } 
          
          
// INSERT FRIENDS INTO FRIEND TABLE AND EXPLANATION INTO EXPLAIN TABLE              
          
$friend->user_friend_add($new_user->user_info['user_id'], $friend_status'''');
            
          
// IF TWO-WAY CONNECTION AND NON-CONFIRMED, INSERT OTHER DIRECTION
          
if($direction == && $friend_status == 1) { $new_user->user_friend_add($friend->user_info['user_id'], $friend_status''''); }
        }
      }
      
      
// DELETE INVITE CODE
      
$database->database_query("DELETE FROM se_invites WHERE invite_id='$invitation[invite_id]' LIMIT 1");
    }
    
    
// SET SIGNUP COOKIE
    
$new_user->user_salt $new_user->user_info['user_code'];
    
$id $new_user->user_info['user_id'];
    
$em $new_user->user_password_crypt($new_user->user_info['user_email']);
    
$pass $new_user->user_info['user_password'];
    
setcookie("signup_id""$id"0"/");
    
setcookie("signup_email""$em"0"/");
    
setcookie("signup_password""$pass"0"/");
    
    
// SEND USER TO PHOTO UPLOAD IF SPECIFIED BY ADMIN
    // OR TO USER INVITE IF NO PHOTO UPLOAD
    
if( !$setting['setting_signup_photo'] )
    { 
      if( !
$setting['setting_signup_invitepage'] )
      {
        
$task "step5";
      }
      else
      {
        
$task "step4"
      }
    }
    else
    { 
      
$task "step3"
    }
  }
  
  
// IF THERE WAS AN ERROR, GO BACK TO STEP 2
  
else
  {
    
$task "step2";
  }
}







// UPLOAD PHOTO
if($task == "step3do")
{
  
$new_user->user_photo_upload("photo");
  
$is_error $new_user->is_error;
  
$task "step3";
}




// SEND INVITE EMAILS
if($task == "step4do")
{
  
$invite_emails $_POST['invite_emails'];
  
$invite_message $_POST['invite_message'];

  if(
$invite_emails != "")
  {
    
send_systememail('invite'$invite_emails, Array($new_user->user_displayname$new_user->user_info['user_email'], $invite_message"<a href=\"".$url->url_base."signup.php\">".$url->url_base."signup.php</a>"), TRUE);
  }

  
// SEND USER TO THANK YOU PAGE
  
$task "step5";
}





// SIGNUP TERMINAL VELOCITY POINT HOOK
($hook SE_Hook::exists('se_signup_decide')) ? SE_Hook::call($hook, array()) : NULL







// SHOW COMPLETION PAGE
if($task == "step5")
{
  
// UNSET SIGNUP COOKIES
  
setcookie("signup_id"""0"/");
  
setcookie("signup_email"""0"/");
  
setcookie("signup_password"""0"/");

  
// UPDATE SIGNUP STATS
  
update_stats("signups");

  
// DISPLAY THANK YOU
  
$step 5;
}




// SHOW FOURTH STEP
if($task == "step4")
{
  
$step 4;
  
$next_task "step4do";
  if(
$setting['setting_signup_invitepage'] == 0) { $task "step3"; }
}





// SHOW THIRD STEP
if($task == "step3")
{
  
$step 3;
  
$next_task "step3do";
  if(
$setting['setting_signup_invitepage'] == 0) { $last_task "step5"; } else { $last_task "step4"; }
  if(
$setting['setting_signup_photo'] == 0) { $task "step2"; }
}





// SHOW SECOND STEP
if($task == "step2")
{
  
$step 2;
  
$next_task "step2do";
  if(
count($field->cats) == 0) { $task "step1"; }
  
$signup_password base64_encode($signup_password);
  
$signup_password2 base64_encode($signup_password2);
}







// SHOW FIRST STEP
if($task == "step1")
{
  
$step 1;
  
$next_task "step1do";

  
// GET LANGUAGE PACK LIST
  
$lang_packlist SE_Language::list_packs();
  
ksort($lang_packlist);
  
$lang_packlist array_values($lang_packlist);
}






// SET GLOBAL PAGE TITLE
$global_page_title[0] = 679;
$global_page_description[0] = 680;



// ASSIGN VARIABLES AND INCLUDE FOOTER
$smarty->assign('is_error'$is_error);
$smarty->assign('new_user'$new_user);
$smarty->assign('cats'$field->cats);
$smarty->assign('signup_email'$signup_email);
$smarty->assign('signup_password'$signup_password);
$smarty->assign('signup_password2'$signup_password2);
$smarty->assign('signup_username'$signup_username);
$smarty->assign('signup_timezone'$signup_timezone);
$smarty->assign('signup_lang'$signup_lang);
$smarty->assign('signup_invite'$signup_invite);
$smarty->assign('signup_secure'$signup_secure);
$smarty->assign('signup_agree'$signup_agree);
$smarty->assign('signup_cat'$signup_cat);
$smarty->assign('lang_packlist'$lang_packlist);
$smarty->assign('next_task'$next_task);
$smarty->assign('last_task'$last_task);
$smarty->assign('step'$step);
include 
"footer.php";
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.