За последние 24 часа нас посетили 24394 программиста и 1725 роботов. Сейчас ищут 1906 программистов ...

Регистрация на сайте

Тема в разделе "Сделайте за меня", создана пользователем FrenkProgrammer, 21 окт 2014.

  1. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    А чем конкретно помочь?
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Абстрактные вопросы обычно не находят конкретных откликов.
     
  3. FrenkProgrammer

    FrenkProgrammer Новичок

    С нами с:
    12 июл 2014
    Сообщения:
    66
    Симпатии:
    0
    Сделать пример как в движке только в 2 этапа,
    без запроса к базе,
    я просто в чужом коде плохо разбераюсь)
     
  4. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    а где посмотреть пример как в этом движке устроена регистрация?
     
  5. FrenkProgrammer

    FrenkProgrammer Новичок

    С нами с:
    12 июл 2014
    Сообщения:
    66
    Симпатии:
    0
    В этой теме выложил ссылку!
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Реалии таковы, что никто не будет для тебя качать этот движок, ставить, изучать, ковырять, а потом делать тебе по абстрактному ТЗ что-либо "на его основе, но иначе". Говори, что конкретно неполучается, помогут. Разбирать и делать за тебя то, что интересно и нужно только тебе, бросая все свои дела, никто не будет.
     
  7. FrenkProgrammer

    FrenkProgrammer Новичок

    С нами с:
    12 июл 2014
    Сообщения:
    66
    Симпатии:
    0
    Вот содержимое файла регистрации, это если не ошибаюсь переделаный social engine движок,
    файл signup.php отправка скрытыми полями,
    хотелось бы что-то типа в этом роде, чтобы нельзя былобы проскочить изменив исходный код,
    мне нужно только в 2 этапа регистрация,
    без запроса к бд,
    просто сделать в несколько полей регистрацию а дальше я сам все нужное сделаю.

    Код (PHP):
    1. <?
    2. $page = "signup";
    3. include "header.php";
    4.  
    5.  
    6. if(isset($_POST['task'])) { $task = $_POST['task']; } else { $task = "step1"; }
    7.  
    8. // SET ERROR VARS
    9. $is_error = 0;
    10. $error_message = "";
    11.  
    12.  
    13. // IF USER IS ALREADY LOGGED IN, FORWARD TO USER HOME PAGE
    14. if($user->user_exists != 0) { header("Location: user_home.php"); exit(); }
    15.  
    16.  
    17.  
    18. // CHECK IF USER SIGNUP COOKIES SET (STEPS 3, 4, 5)
    19. $signup_logged_in = 0;
    20. if($task != "step1" AND $task != "step1do" AND $task != "step2" AND $task != "step2do") {
    21.   if(isset($_COOKIE['signup_id']) & isset($_COOKIE['signup_email']) & isset($_COOKIE['signup_password'])) {
    22.  
    23.     // GET USER ROW IF AVAILABLE
    24.     $user_id = $_COOKIE['signup_id'];
    25.     $new_user = new se_user(Array($user_id));
    26.  
    27.     // VERIFY USER LOGIN COOKIE VALUES AND RESET USER LOGIN VARIABLE
    28.     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]) {
    29.       $signup_logged_in = 1;
    30.     }
    31.   }
    32.  
    33.   if($signup_logged_in != 1) { cheader("signup.php"); exit(); }
    34. }
    35.  
    36. if($signup_logged_in != 1) {
    37.   setcookie("signup_id", "", 0, "/");
    38.   setcookie("signup_email", "", 0, "/");
    39.   setcookie("signup_password", "", 0, "/");
    40.   $_COOKIE['signup_id'] = "";
    41.   $_COOKIE['signup_email'] = "";
    42.   $_COOKIE['signup_password'] = "";
    43.   $new_user = new se_user();
    44.   if($task == "step1") { 
    45.     if(isset($_GET['signup_email'])) { $signup_email = $_GET['signup_email']; } else { $signup_email = ""; }
    46.     if(isset($_GET['signup_invite'])) { $signup_invite = $_GET['signup_invite']; } 
    47.     $signup_password = ""; 
    48.   }
    49. }
    50.  
    51.  
    52.  
    53. // PROCESS INPUT FROM FIRST STEP (OR DOUBLE CHECK VALUES), CONTINUE TO SECOND STEP (OR SECOND STEP PROCESSING)
    54. if($task == "step1do" | $task == "step2do") {
    55.   $signup_email = $_POST['signup_email'];
    56.   $signup_password = $_POST['signup_password'];
    57.   $signup_password2 = $_POST['signup_password2'];
    58.   $step = $_POST['step'];
    59.     if($task == "step2do" & $step != "1") {
    60.       $signup_password = base64_decode($signup_password);
    61.       $signup_password2 = base64_decode($signup_password2);
    62.     }
    63.   $signup_username = $_POST['signup_username'];
    64.   $signup_timezone = $_POST['signup_timezone'];
    65.   $signup_invite = $_POST['signup_invite'];
    66.  
    67.   // GET LANGUAGE PACK SELECTION
    68.   if($setting[setting_lang_allow] != 1) {
    69.     $signup_lang = $setting[setting_lang_default];
    70.   } else {
    71.     $signup_lang = strtolower($_POST['signup_lang']);
    72.     if(!file_exists("./lang/lang_".$signup_lang.".php")) { $signup_lang = $setting[setting_lang_default]; }
    73.   }
    74.  
    75.   // TEMPORARILY SET PASSWORD IF RANDOM PASSWORD ENABLED
    76.   if($setting[setting_signup_randpass] != 0) {
    77.     $signup_password = "temporary";
    78.     $signup_password2 = "temporary";
    79.   }
    80.  
    81.   // CHECK USER ERRORS
    82.   $new_user->user_account($signup_email, $signup_username);
    83.   $new_user->user_password('', $signup_password, $signup_password2, 0);
    84.   $is_error = $new_user->is_error;
    85.   $error_message = $new_user->error_message;
    86.  
    87.   // CHECK INVITE CODE IF NECESSARY
    88.   if($setting[setting_signup_invite] != 0) {
    89.     if($setting[setting_signup_invite_checkemail] != 0) {
    90.       $invite = $database->database_query("SELECT invite_id FROM se_invites WHERE invite_code='$signup_invite' AND invite_email='$signup_email'");
    91.       $invite_error_message = $signup[5];
    92.     } else {
    93.       $invite = $database->database_query("SELECT invite_id FROM se_invites WHERE invite_code='$signup_invite'");
    94.       $invite_error_message = $signup[6];
    95.     }
    96.     if($database->database_num_rows($invite) == 0) { $is_error = 1; $error_message = $invite_error_message; }
    97.   }
    98.  
    99.   // CHECK TERMS OF SERVICE AGREEMENT IF NECESSARY
    100.   if($setting[setting_signup_tos] != 0) {
    101.     $signup_agree = $_POST['signup_agree'];
    102.     if($signup_agree != 1) {
    103.       $is_error = 1;
    104.       $error_message = $signup[1];
    105.     }
    106.   }
    107.  
    108.   // RETRIEVE AND CHECK SECURITY CODE IF NECESSARY
    109.   if($setting[setting_signup_code] != 0) {
    110.     session_start();
    111.     $code = $_SESSION['code'];
    112.     if($code == "") { $code = randomcode(); }
    113.     $signup_secure = $_POST['signup_secure'];
    114.  
    115.     if($signup_secure != $code) {
    116.       $is_error = 1;
    117.       $error_message = $signup[2];
    118.    }
    119.   }
    120.  
    121.  
    122.   // IF THERE IS NO ERROR, CONTINUE TO STEP 2 OR PROCESS STEP 2
    123.   if($is_error == 0) {
    124.     // ONLY IF ON STEP ONE, CONTINUE TO STEP 2 - ELSE GO TO PROCESSING STEP 2
    125.     if($task == "step1do") { $task = "step2"; }
    126.  
    127.   // IF THERE WAS AN ERROR, GO BACK TO STEP 1
    128.   } else {
    129.     $task = "step1";
    130.   }
    131.  
    132. }
    133.  
    134.  
    135.  
    136.  
    137.  
    138.  
    139.  
    140.  
    141.  
    142.  
    143.  
    144.  
    145.  
    146.  
    147. if($task == "step1" | $task == "step1do" | $task == "step2" | $task == "step2do") {
    148.   if($task == "step2do") { $validate = 1; } else { $validate = 0; }
    149.   $new_user->user_fields(0, 0, $validate, 1);
    150.   if($validate == 1) { $is_error = $new_user->is_error; $error_message = $new_user->error_message; }
    151. }
    152.  
    153.  
    154.  
    155.  
    156.  
    157.  
    158.  
    159.  
    160.  
    161.  
    162.  
    163.  
    164.  
    165.  
    166.  
    167. if($task == "step2do") {
    168.  
    169.   // PROFILE FIELD INPUTS PROCESSED AND CHECKED FOR ERRORS ABOVE
    170.   // IF THERE IS NO ERROR, ADD USER AND USER PROFILE AND CONTINUE TO STEP 3
    171.   if($is_error == 0) {
    172.  
    173.     $new_user->user_create($signup_email, $signup_username, $signup_password, $signup_timezone, $signup_lang);
    174.  
    175.     // INSERT ACTION
    176.     $actions->actions_add($new_user, "signup", Array('[username]'), Array($new_user->user_info[user_username]));
    177.  
    178.     // INVITE CODE FEATURES
    179.     if($setting[setting_signup_invite] != 0) {
    180.       if($setting[setting_signup_invite_checkemail] != 0) {
    181.         $invitation = $database->database_fetch_assoc($database->database_query("SELECT * FROM se_invites WHERE invite_code='$signup_invite' AND invite_email='$signup_email' LIMIT 1"));
    182.       } else {
    183.         $invitation = $database->database_fetch_assoc($database->database_query("SELECT * FROM se_invites WHERE invite_code='$signup_invite' LIMIT 1"));
    184.       }
    185.  
    186.       // ADD USER TO INVITER'S FRIENDLIST
    187.       $friend = new se_user(Array($invitation[invite_user_id]));
    188.       if($friend->user_exists == 1) {
    189.         if($setting[setting_connection_allow] == 3 | $setting[setting_connection_allow] == 1 | ($setting[setting_connection_allow] == 2 & $new_user->user_info[user_subnet_id] == $friend->user_info[user_subnet_id])) {
    190.           // SET RESULT, DIRECTION, STATUS
    191.           switch($setting[setting_connection_framework]) {
    192.             case "0":
    193.               $direction = 2;
    194.               $friend_status = 0;
    195.               break;
    196.             case "1":
    197.               $direction = 1;
    198.               $friend_status = 0;
    199.               break;
    200.             case "2": 
    201.               $direction = 2;
    202.               $friend_status = 1;
    203.               break;
    204.             case "3":
    205.               $direction = 1;
    206.               $friend_status = 1;
    207.               break;      
    208.           } 
    209.  
    210.           // INSERT FRIENDS INTO FRIEND TABLE AND EXPLANATION INTO EXPLAIN TABLE              
    211.       $friend->user_friend_add($new_user->user_info[user_id], $friend_status, '', '');
    212.               
    213.           // IF TWO-WAY CONNECTION AND NON-CONFIRMED, INSERT OTHER DIRECTION
    214.           if($direction == 2 & $friend_status == 1) { $new_user->user_friend_add($friend->user_info[user_id], $friend_status, '', ''); }
    215.         }
    216.       }
    217.       
    218.  
    219.       // DELETE INVITE CODE
    220.       $database->database_query("DELETE FROM se_invites WHERE invite_id='$invitation[invite_id]' LIMIT 1");
    221.     
    222.     }
    223.  
    224.     // SET SIGNUP COOKIE
    225.     $id = $new_user->user_info[user_id];
    226.     $em = crypt($new_user->user_info[user_email], "$1$".$new_user->user_info[user_code]."$");
    227.     $pass = $new_user->user_info[user_password];
    228.     setcookie("signup_id", "$id", 0, "/");
    229.     setcookie("signup_email", "$em", 0, "/");
    230.     setcookie("signup_password", "$pass", 0, "/");
    231.  
    232.  
    233.     // SEND USER TO PHOTO UPLOAD IF SPECIFIED BY ADMIN
    234.     // OR TO USER INVITE IF NO PHOTO UPLOAD
    235.     if($setting[setting_signup_photo] == 0) { 
    236.       if($setting[setting_signup_invitepage] == 0) {
    237.         $task = "step5";
    238.       } else {
    239.         $task = "step4"; 
    240.       }
    241.     } else { 
    242.       $task = "step3"; 
    243.     }
    244.  
    245.   // IF THERE WAS AN ERROR, GO BACK TO STEP 2
    246.   } else {
    247.     $task = "step2";
    248.   }
    249. }
    250.  
    251.  
    252.  
    253.  
    254.  
    255.  
    256.  
    257. // UPLOAD PHOTO
    258. if($task == "step3do") {
    259.   $new_user->user_photo_upload("photo");
    260.   $is_error = $new_user->is_error;
    261.   $error_message = $new_user->error_message;
    262.   $task = "step3";
    263. }
    264.  
    265.  
    266.  
    267.  
    268. // SEND INVITE EMAILS
    269. if($task == "step4do") {
    270.  
    271.   $invite_emails = $_POST['invite_emails'];
    272.   $invite_message = $_POST['invite_message'];
    273.  
    274.   if($invite_emails != "") {
    275.     send_invitation($new_user->user_info, $invite_emails, $invite_message);
    276.   }
    277.  
    278.   // SEND USER TO THANK YOU PAGE
    279.   $task = "step5";
    280.  
    281. }
    282.  
    283.  
    284.  
    285.  
    286.  
    287.  
    288.  
    289.  
    290.  
    291.  
    292.  
    293.  
    294.  
    295. // SHOW COMPLETION PAGE
    296. if($task == "step5") {
    297.   // UNSET SIGNUP COOKIES
    298.   setcookie("signup_id", "", 0, "/");
    299.   setcookie("signup_email", "", 0, "/");
    300.   setcookie("signup_password", "", 0, "/");
    301.  
    302.   // UPDATE SIGNUP STATS
    303.   update_stats("signups");
    304.  
    305.   // DISPLAY THANK YOU
    306.   $step = 5;
    307. }
    308.  
    309.  
    310.  
    311.  
    312. // SHOW FOURTH STEP
    313. if($task == "step4") {
    314.   $step = 4;
    315.   $next_task = "step4do";
    316.   if($setting[setting_signup_invitepage] == 0) { $task = "step3"; }
    317. }
    318.  
    319.  
    320.  
    321.  
    322.  
    323. // SHOW THIRD STEP
    324. if($task == "step3") {
    325.   $step = 3;
    326.   $next_task = "step3do";
    327.   if($setting[setting_signup_invitepage] == 0) { $last_task = "step5"; } else { $last_task = "step4"; }
    328.   if($setting[setting_signup_photo] == 0) { $task = "step2"; }
    329. }
    330.  
    331.  
    332.  
    333.  
    334.  
    335. // SHOW SECOND STEP
    336. if($task == "step2") {
    337.   $step = 2;
    338.   $next_task = "step2do";
    339.   if(count($new_user->profile_tabs) == 0) { $task = "step1"; }
    340.   $signup_password = base64_encode($signup_password);
    341.   $signup_password2 = base64_encode($signup_password2);
    342. }
    343.  
    344.  
    345.  
    346.  
    347.  
    348.  
    349.  
    350. // SHOW FIRST STEP
    351. if($task == "step1") {
    352.   $step = 1;
    353.   if(count($new_user->profile_tabs) == 0) { $next_task = "step2do"; } else { $next_task = "step1do"; }
    354.  
    355.   // GET LANGUAGE FILE OPTIONS
    356.   $lang_options = Array();
    357.   $lang_count = 0;
    358.   if($dh = opendir("./lang/")) {
    359.     while(($file = readdir($dh)) !== false) {
    360.       if($file != "." & $file != "..") {
    361.         if(preg_match("/lang_([^_]+)\.php/", $file, $matches)) {
    362.           $lang_options[$lang_count] = ucfirst($matches[1]);
    363.           $lang_count++;
    364.         }
    365.       }
    366.     }
    367.     closedir($dh);
    368.   }
    369.  
    370. }
    371.  
    372.  
    373.  
    374.  
    375.  
    376.  
    377.  
    378.  
    379.  
    380. // SET DEFAULT TIMEZONE
    381. if(!isset($signup_timezone)) { $signup_timezone = $setting['setting_timezone']; }
    382.  
    383.  
    384.  
    385. $sql = $database->database_query ("SELECT * FROM country");
    386. $countries = array ();
    387. while ($country = $database->database_fetch_assoc ($sql))
    388. {
    389.         $countries[] = $country;
    390. }
    391. $smarty->assign('countries', $countries);  
    392.  
    393.  
    394. // ASSIGN VARIABLES AND INCLUDE FOOTER
    395. $smarty->assign('error_message', $error_message);
    396. $smarty->assign('new_user', $new_user);
    397. $smarty->assign('tabs', $new_user->profile_tabs);
    398. $smarty->assign('signup_email', $signup_email);
    399. $smarty->assign('signup_password', $signup_password);
    400. $smarty->assign('signup_password2', $signup_password2);
    401. $smarty->assign('signup_username', $signup_username);
    402. $smarty->assign('signup_timezone', $signup_timezone);
    403. $smarty->assign('signup_lang', $signup_lang);
    404. $smarty->assign('signup_invite', $signup_invite);
    405. $smarty->assign('signup_secure', $signup_secure);
    406. $smarty->assign('signup_agree', $signup_agree);
    407. $smarty->assign('lang_options', $lang_options);
    408. $smarty->assign('next_task', $next_task);
    409. $smarty->assign('last_task', $last_task);
    410. $smarty->assign('step', $step);
    411. $smarty->assign('online_users', online_users());
    412. include "footer.php";
    413. ?>
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768