1. PHP / Говнокод #19445

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 12 Февраля 2016

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

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

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

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

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