ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

21.05.2009, 17:49
|
|
Участник форума
Регистрация: 03.07.2006
Сообщений: 147
Провел на форуме: 438137
Репутация:
66
|
|
Сообщение от Architek86
Народ, здесь "SELECT * FROM `users` WHERE `nick`='$login'" (да и везде, где есть WHERE)
nick и $login сравниваются с учётом регистра, или нет?? Если да, то как сделать без учёт регистра?
Сравниваются с учётом.
Для мускуля заюзать lower
|
|
|

21.05.2009, 17:58
|
|
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме: 804931
Репутация:
526
|
|
Сообщение от pento
Сравниваются с учётом.[/URL]
Зависит от коллации
upd:
Набросал небольшой примерчик.
Создадим простую табличку:
Код:
CREATE TABLE IF NOT EXISTS `t2` (
`q` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Закинм туда 2 кортежа:
Сопаставление у нас utf8_general_ci (где ci значит case-insensetive, для тех кто не знает).
Выполним запрос:
Код:
select * FROM t2 where q = 'aaa'
получим
А теперь выполним следующее:
Код:
select * FROM t2 where q = 'aaa' collate 'utf8_bin'
получим
Выводы напрашиваются сами =)
Последний раз редактировалось VDShark; 21.05.2009 в 18:18..
|
|
|

21.05.2009, 18:20
|
|
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме: 448388
Репутация:
31
|
|
Мужики, Всем привет!
Возникла такая проблема...
Есть вот такой код:
PHP код:
$user = $_COOKIE['user'];
$key_id = $_POST['key_id'];
$result = mysql_query("UPDATE base SET poster_id='$user', key_id='$key_id', post_date=NOW(), done='wait' WHERE page='$page' LIMIT 1",$db);
Проблема в том, что:
Код срабатывает всегда, но лишь частично, не смотря на то, что в $key_id всегда есть трёхзначное число и оно точно передаётся (не теряется) в результате пост запроса.
Что значит частично:
Т.е. иногда запись обновляется так как будто $key_id пуст.
Примечание:
Поле key_id в таблице base типа INT(5)
Подскажите пожалуйста, в чём может быть проблема? 
|
|
|

21.05.2009, 19:40
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме: 6828219
Репутация:
2274
|
|
Эмм... Это реальный кусок кода? У тебяж тама SQL Inj =\
Юзай
$key_id = intval($_POST['key_id']);
И если $_POST['key_id'] будет буквами, то запишется 0 а не просто пустая строка
|
|
|

21.05.2009, 19:58
|
|
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме: 448388
Репутация:
31
|
|
Пончик, большое тебе спасибо. Попробую сменить и посмотрим что будет.
Так же спасибо за заботу, но это приватный скрипт, так что бояться нечего
P.s. Ещё какие-нибудь предположения по поводу вышеизложенной проблемы будут?
Заранее благодарен! 
Последний раз редактировалось OnArs; 21.05.2009 в 20:03..
|
|
|

21.05.2009, 23:53
|
|
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме: 448388
Репутация:
31
|
|
Появился ещё один вопрос, помогите с ним пожалуйста!
Есть вот такой кусок кода:
PHP код:
$result = mysql_query("SELECT count(*) FROM base WHERE pr='7'",$db);
$se = mysql_fetch_array($result);
$pr7 = $se[0];
$result = mysql_query("SELECT count(*) FROM base WHERE pr='6'",$db);
$se = mysql_fetch_array($result);
$pr6 = $se[0];
$result = mysql_query("SELECT count(*) FROM base WHERE pr='5'",$db);
$se = mysql_fetch_array($result);
$pr5 = $se[0];
$result = mysql_query("SELECT count(*) FROM base WHERE pr='4'",$db);
$se = mysql_fetch_array($result);
$pr4 = $se[0];
$result = mysql_query("SELECT count(*) FROM base WHERE pr='3'",$db);
$se = mysql_fetch_array($result);
$pr3 = $se[0];
$result = mysql_query("SELECT count(*) FROM base WHERE pr='2'",$db);
$se = mysql_fetch_array($result);
$pr2 = $se[0];
Т.е. в 6 переменных Я получаю кол-во страниц с заданными параметрами. По-моему так не должно быть, как оптимизировать эту группу запросов?
Большое спасибо!
|
|
|

22.05.2009, 14:36
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Так не годиццо?
PHP код:
$result = mysql_query ("SELECT * FROM base WHERE pr = '2'", $db);
$pr2 = mysql_num_rows ($result);
---
Added:
Либо же одним SQL-запросом
Код:
SELECT pr, COUNT(*) FROM base WHERE pr IN (7, 6, 5, 4, 3, 2) GROUP BY pr;
Последний раз редактировалось krypt3r; 22.05.2009 в 14:48..
|
|
|

24.05.2009, 23:35
|
|
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме: 791766
Репутация:
61
|
|
Не могу перенести БД MySQL форума Version 3.8.1
Проблема в том что форум создавался в Литвии и сама Бд создана в кодировке UTF-8 юникод
Сравнение таблиц latin1_swedish_ci
Если сделать дамп любой прогой или PhpMyAdmin`ом то будет такая бяка
ñåâðåð çàïóùåí â òåñòîâîì ðåæèìå
Даже если просто в PhpMyAdmin смотеть на это...
Как сменить кодировку чтоб норм по русски было?
Хотя нормально сейчас форум стоит, а вот переносится не хочет
|
|
|

25.05.2009, 01:50
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
http://www.artlebedev.ru/tools/decoder/
CP1252 → CP1251
выстави в браузере правильную кодировку и не парь мозг
ЗЫЖ Нормальный дамп, бывают и хуже
ЗЗЫЫЖЖ Ушол писать прогу для автоконвертации дампов в нужную кодировку, заманали
|
|
|

25.05.2009, 17:52
|
|
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме: 791766
Репутация:
61
|
|
Сообщение от Pashkela
http://www.artlebedev.ru/tools/decoder/
CP1252 → CP1251
выстави в браузере правильную кодировку и не парь мозг
ЗЫЖ Нормальный дамп, бывают и хуже
ЗЗЫЫЖЖ Ушол писать прогу для автоконвертации дампов в нужную кодировку, заманали
Ладно я могу перевести в другую кодировку но я не могу перевести целый дамп базы....
как быть?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|