"PHP" / Говнокод #17752 Ссылка на оригинал

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. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
<?PHP
	
	# Регистрация

	if(isset($_POST["login"])){
	
	if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){
	unset($_SESSION["captcha"]);

	$login = $func->IsLogin($_POST["login"]);
	$pass = $func->IsPassword($_POST["pass"]);
	$rules = isset($_POST["rules"]) ? true : false;
	$time = time();
	$ip = $func->UserIP;
	$UserIP = $_SERVER['REMOTE_ADDR'];
	
	$email = $func->IsMail($_POST["email"]);
	$referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
	$referer_name = "";
	if($referer_id != 1){
		$db->Query("SELECT user FROM db_users_a WHERE id = '$referer_id' LIMIT 1");
		if($db->NumRows() > 0){$referer_name = $db->FetchRow();}
		else{ $referer_id = 1; $referer_name = "wolframavtor"; }
	}else{ $referer_id = 1; $referer_name = "wolframavtor"; }
	
		if($rules){

			if($email !== false){
		
			if($login !== false){
			
				if($pass !== false){
			
					if($pass == $_POST["repass"]){
						
						$db->Query("SELECT COUNT(*) FROM db_users_a WHERE user = '$login'");
						if($db->FetchRow() == 0){
						
						# Регаем пользователя
						$db->Query("INSERT INTO db_users_a (user, email, pass, referer, referer_id, date_reg, ip) 
						VALUES ('$login','{$email}','$pass','$referer_name','$referer_id','$time',INET_ATON('$ip'))");
						
						$lid = $db->LastInsert();
						
						$db->Query("INSERT INTO db_users_b (id, user, a_t, last_sbor) VALUES ('$lid','$login','1', '".time()."')");
						
						# Вставляем статистику
						$db->Query("UPDATE db_stats SET all_users = all_users +1 WHERE id = '1'");
						
						echo "<center><b><font color = 'green'>Вы успешно зарегистрировались. Используйте форму слева для входа в аккаунт</font></b></center><BR />";
						?></div>
						<div class="clr"></div>	
						<?PHP
						return;
						}else echo "<center><b><font color = 'red'>Указанный логин уже используется</font></b></center><BR />";
						
					}else echo "<center><b><font color = 'red'>Пароль и повтор пароля не совпадают</font></b></center><BR />";
			
				}else echo "<center><b><font color = 'red'>Пароль заполнен неверно</font></b></center><BR />";
			
			}else echo "<center><b><font color = 'red'>Логин заполнен неверно</font></b></center><BR />";

		}else echo "<center><font color = 'red'><b>Email имеет неверный формат</b></font></center>";

		}else echo "<center><b><font color = 'red'>Вы не подтвердили правила</font></b></center><BR />";
	
		}else echo "<center><font color = 'red'><b>Символы с картинки введены неверно</b></font></center>";

	}
	
	
?>

ШЕДЕВРАЛЬНО!

Запостил: proweber1 proweber1, (Updated )

Комментарии (11) RSS

  • >>>$pass = $func->IsPassword($_POST["pass"]);
    >>>VALUES ('$login','{$email}','$pass'...
    wtf?
    Ответить
    • Ну хуй знает, скинули проект, и говорят, доработай. Ахуели совсем!
      Ответить
  • При виде такого аж в груди щемит.
    Вот как на такое адекватно реагировать? Тут тебе никаких best practices нет по рефакторингу говна, особенно если оно большое – только переписывать с нуля. А это влом.
    Ответить
  • </font></b></center><BR />

    Я все жду когда же появится профессия "реставратор ПО". Потомки будут снимать исторические фильмы, а зрители будут тыкать в них пальцами: "да не было так, чтобы одновременно BR капсом и самозакрывающийся, да еще и с center в рядом!"
    Ответить
  • "UPDATE db_stats SET all_users = all_users +1 WHERE id = '1'"

    Реализация count средствами SQL!
    Ответить
      • К слову о транзакциях и инкрементах: у меня на ведрофоне читалка смс крашнулась во время загрузки смски. Теперь индикатор всегда показывает на единицу больше (если все прочитаны - показывает единичку). Надо бы слазить в базу, поправить её.
        Ответить
  • Молодёжь, сжимается у них в груди, понимаешь. А мы именно так в 2002-м писали, когда не было вашего ООП и в помине. В целом, просто хороший пример того, как оно было в тройке.

    Ужаса-ужаса не вижу, для программера с 2-мя месяцами опыта сойдёт.
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8