7 заметок с тегом

bugs РСС

25 января 2012, 15:52

ИЕ8 и тени со скругленными уголками вместе

Для тени очень хорошо работает свойство фильтр, но как только пытаешься применить к блоку с тенью какой нить хтц плагин для скругленных уголков или дд_раунди, это блок и разработчик тоже получают дикий баттхерт, потому что тень теперь у текста, блок стал выше на длину тени, но зато есть уголки. Пришлось на коленке писать приблуду, которая почему-то не хочет работать в ИЕ7, нужно наверное там джиквери с 1.4.2 обновить до 1.7.1
<!--[if lte IE 8]>
	<script type="text/javascript" src="<?=SITE_TEMPLATE_PATH?>/roundie.js"></script>
	<script type="text/javascript">
		if (document.all) {
			DD_roundies.addRule('.div-onmain .n-det, .div-onmain .news-list, #t-m ', '3px');
		}
		$(document).ready(function() {
			$(".div-onmain .news-list, #t-m").each(function(){
				var 
					w = $(this).innerWidth(),
					h = $(this).innerHeight();
				
				$(this).css({
					"z-index":3,
					"overflow": "visible",
					"margin-top": -h*1+15 + "px"
				});
				
				$(this).parent().css({
					"z-index":1
				});
				
				$(this).before(
					$("<div class='shadow'>&shy;</div>").css({
						"z-index":2,
						"margin-top": "-15px",
						"overflow": "hidden",
						"width": w,
						"height": h,
						"overflow": "visible"
					})
				);
			});
			
			$(".shadow").css({
				"background": "#fff",
				"filter": "progid:DXImageTransform.Microsoft.Shadow(color='#EEEEEE', Direction=0, Strength=15)"
			});
		});
	</script>
<![endif]-->
bugs   butthurt   ie   jquery

6 мая 2011, 13:35

MySQL: error #1235

Когда пытаешься выполнить например такой запрос:
UPDATE `learn_answer` 
SET `QUESTION_ID` = QUESTION_ID - 1 
WHERE `learn_answer`.`ID` IN (
	SELECT ID
	FROM `learn_answer`
	WHERE `QUESTION_ID` > 367
)

Получаешь чудо ошибку. Ошибка эта гласит:
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'


Когда идём в мануал, там сразу же лежит решение. Нам просто нужно использовать АЛИАС, что бы бля сделать тоже самое:
UPDATE `learn_answer` 
SET `QUESTION_ID` = QUESTION_ID - 1 
WHERE `learn_answer`.`ID` IN (
	SELECT * FROM (
		SELECT ID
		FROM `learn_answer`
		WHERE `QUESTION_ID` > 367
	) Alias
)
mysql   bugs

14 апреля 2011, 8:33

Новый PHP новые правила :) Лечим быстро растущий еррор_лог

На одном проекте, написанном н-лет назад обновили апачь+пхп+мускул+нгинксс, и скорость толстения логов просто поражала. Например за сутки лог апача из-за ошибок пхп выростал до 2ух гиг :)

За 1 заход простого юзера плюс 1-20МБ, это конечно замечательно, но нужно было как-то «пофиксить». Самым толстым ворнингом был такой:
Warning: strtotime()/strftime()/date() [function.strftime]: It is not safe to rely on the 
system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() 
function. In case you used any of those methods and you are still getting this warning, you most likely 
misspelled the timezone identifier.

Пхп, просто хотел знать дефаулт тайм-зоун, и ругался на все функции которые работают с датой :) В начале «главного» скрипта пишем:
date_default_timezone_set('UTC');


Следующий ворнинг:
PHP Deprecated:  Function ereg()/eregi()/ereg_replace() is deprecated in *

Это значит что, эти функции ereg()/eregi()/ereg_replace() нихт_арбайтен, то есть не работают, вообще. Да, в новом пхп их убили, почитать что убили можно здесь

«-Что же делать?», воскликнет читатель. Есть два пути.
  • заменить все дохлые функции живыми аналогами
    // Все меняем на preg_match
    ereg("\.([^\.]*$)", $this->file_src_name, $extension);
    preg_match("/\.([^\.]*$)/", $this->file_src_name, $extension);
    // да, на preg_match
    $this->file_dst_name_body = ereg_replace("[^A-Za-z0-9_]", "", $this->file_dst_name_body);
    $this->file_dst_name_body = preg_replace("/[^A-Za-z0-9_]/", "", $this->file_dst_name_body);
    // тут появится модификатор regexpа
    eregi("\.([^\.]*$)", $this->file_src_name, $extension);
    preg_match("/\.([^\.]*$)/i", $this->file_src_name, $extension);
  • в настройках включить поддержку старых функций, которая отрубает поддержку новых
    mbstring.func_overload = 7
Если код старый и ТОЛСТы, можно обойтись и заменой в хтакцесс, а если нет, то лучше да ;)
bugs   php

10 марта 2011, 13:49

Мускул апдейт, ORDER BY RAND() не работает / not work

После обновления мускула, просто перестал работать такой запрос, все время одно и тоже число :)
SELECT * FROM your_table ORDER BY RAND() LIMIT 1;
#Теперь нужно так:
SELECT * FROM your_table ORDER BY RAND(NOW()) LIMIT 1;

Вместо NOW() можно вставить и UNIX_TIMESTAMP(), но блин, может и не помочь, если часто обращаться.
bugs   mysql

30 ноября 2009, 5:24

BUGS: Positon absolute не работает в ИЕ6?

Досадная штука этот ИЕ6. Стал забывать о нём (и не зря, за 2 года упал с 65% до 11%), но он всегда вылазит где-то %) И нужно с ним бороться, опять и опять.

В этот раз все банально просто, блок непосредственно в боди, с {positon:absolute}, становится длиной 100% и просто поверх всего. После долго-го рытья по гуглу, оказывается что нужно сделать body{positon:relative}, и только тогда он начинает себя нормально вести :)

За одно исправил свой HabraAlert, теперь он 0.1.1 :)
absolute   IE6   HabraAlert   bugs

16 ноября 2009, 23:13

CSS: Основные баги ИЕ

1. Не работает центрирование с margin: 0 auto; используем text-align
2. Видишь лесенку блоков, двойной margin, в фоне списков проблемы display: inline;
3. Минимальная высота блока не минимальна font-size: 0; или overflow: hidden;
4. Overflow не работает position: relative;
5. Не кушает padding используй хак для высоты или ширины
6. Не работает min-height height:auto !important; height: yourminheight px;

28 июня 2008, 14:02

Mozilla(firefox) javascript problem with the assignment width or height

В мозиллке (фаерфоксе — Mozilla Firefox) когда добавляешь/изменяешь джаваскриптом длину(width), высоту(height) или другой параметр в пикселях(px), он не работает :( и получаешь ошибку ксс «параметр задан неправильно или не установлен» («The parameter is incorrect»). Всего лишь нужно вконец величины дописать «px» :)

Вот так:
id.style.width = somewidth + 'px';
width   style   height   firefox   bugs