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

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
<?php
	global $userinfo;
	global $smarty;
	global $cl;
	$userinfo['id'] = 0;
	$userinfo['name'] = '';
	$userinfo['email'] = '';
	$userinfo['phone'] = '';
	$userinfo['url'] = '';
	$userinfo['company'] = '';
	$userinfo['type'] = '';

	$flogin = def_var('flogin','');
	$fpasswd = def_var('fpasswd','');
	$fremember = def_var('fremember',0);
	if ($fpasswd) {
		$fpasswd = md5($fpasswd);
		$_SESSION["se_login"] = $flogin;
		$_SESSION["se_passwd"] = $fpasswd;
	} elseif (isset($_COOKIE["co_login"]) && isset($_COOKIE["co_passwd"])) {
		$_SESSION["se_login"] = $_COOKIE['co_login'];
		$_SESSION["se_passwd"] = $_COOKIE['co_passwd'];
	}
	$auth_msg = '';
	if (isset($_SESSION["se_login"]) && isset($_SESSION["se_passwd"])) {
		$a_query = "select id,name,company,email,phone,url,type from user where login='" .
								$_SESSION["se_login"] . "' and passwd='" .
								$_SESSION["se_passwd"] . "' and status=1";
		$a_res = mysql_query($a_query);
		if (mysql_num_rows($a_res) > 0) {
			$ip_res = mysql_query("select ip from ipban where ip='".$_SERVER['REMOTE_ADDR']."'");
			if (!mysql_num_rows($ip_res)) {
				if ($fremember == 1) {
					setcookie("co_login",$_SESSION["se_login"],time()+60*60*24*10000,"/", $_SERVER['SERVER_NAME']);
					setcookie("co_passwd",$_SESSION["se_passwd"],time()+60*60*24*10000,"/", $_SERVER['SERVER_NAME']);
				}
				list($userinfo['id'],$userinfo['name'],$userinfo['company'],$userinfo['email'],$userinfo['phone'],
					$userinfo['url'],$userinfo['type']) =
					mysql_fetch_row($a_res);
				mysql_query("update user set last_ip = '".$_SERVER['REMOTE_ADDR']."' where id=".$userinfo['id']);
			} else {
				$auth_msg = $cl['authorization_error'];
			}
		} else {
			unset($_SESSION["se_login"]);
			unset($_SESSION["se_passwd"]);
			$auth_msg = $cl['authorization_error'];
		}
	}
	if (isset($smarty)) {
		$smarty->assign('auth_msg',$auth_msg);	
	}
?>

Типо авторизация

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

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

  • Ну и что с того? Форматирование только ужасно
    Ответить
    • На вскидку:

      1. Использование global переменных
      2. Инициализация полей пустыми строками
      3. Не экранирование переменных при построении sql запроса
      4. Уникальный способ заполнения объекта данными из базы (стр. 37-39)

      Или это считается нормой?)
      Ответить
      • Уникальный способ заполнения объекта данными из базы (стр. 37-39)
        Что там уникального.
        Ответить
        • Получение записи из базы в виде массива значений и ручного заполнения полей объекта этими значениями с помощью list, в то время как существует mysql_fetch_assoc.
          Ответить
            • > mysql
              когда уже закопают эту пародию на СУБД вместе со всеми её пользователями, пародиями на программистов
              Ответить
              • Ура! в 2016м году в PHP поняли что нужно юзать PDO!
                еще лет 20-30 и ПХПшники научатся писать код без SQL инъекций
                Ответить

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

Семь раз отмерь — один отрежь, guest!

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


    8