- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравстсвуйте.
Дело в следующем.
Делаю словарь терминов.
Все данные имеются в текстовом файле. Каждый термин с определением в отдельной строке. т.е.
термин1.определение1
термин2.определение2.
и т.д.
Пишу скрипт:
$filearray = file("file/s.txt");
foreach ($filearray as $asd)
{ $id = $id + 1;
$termin = substr($asd, 0, strpos($asd, "."));
$opr = substr($asd, strpos($asd, ".") + 1);
$first = substr($asd, 0, 1);
switch($first)
{
case "А":
$letter=1;
break;
case "Б":
$letter=2;
break;
// и т.д. все буквы алфавита.
}
$query = "INSERT INTO slovar VALUES ('".$id."', '".$letter."', '".$termin."', '".$opr."')";
mysql_query($query);
$id = $id++;
}
Все прекрасно добавляется в базу.
Выборку делаю вот так:
где $l - параметр заданный в ссылке.
т.е. результатом должны быть все термины, начинающиеся с буквы А если $l=1 , с буквы Б если $l=2 и т.д.
В локале стоит mysql 5 - все отлично работает.
Переношу на сервер (mysql 4.0.24)- все слова выбираются в разброс. то с А то с Г.
Пробовал просто в phpmyadmin делать выборку SELECT * FROM `slovar` WHERE `letter`="1" - все равно батва вылазит.
Подскажите, что исправить нужно, чтобы в 4 mysql заработало.... :gm:
// и т.д. все буквы алфавита.
Эх молодежжь :)
А как базу переносил ?
Эх молодежжь
А как базу переносил ?
Я ее не переносил. Я сделал то же самое на стороне сервера (insert).
$filearray = file("file/s.txt");
foreach ($filearray as $asd)
{ $id = $id + 1;
$termin = substr($asd, 0, strpos($asd, "."));
$opr = substr($asd, strpos($asd, ".") + 1);
$first = substr($asd, 0, 1);
switch($first)
{
case "А":
$letter=1;
break;
case "Б":
$letter=2;
break;
// и т.д. все буквы алфавита.
}
$query = "INSERT INTO slovar VALUES ('".$id."', '".$letter."', '".$termin."', '".$opr."')";
mysql_query($query);
$id = $id++;
}
то есть база была сформирована точно так же как и в локале.
Переносить пробовал - проблема остается.
[небольшой off]
где $l - параметр заданный в ссылке.
Больше так не делайте ;)
[/небольшой off]
А по сабжу - явно дело в кодировках.
1.Пробуй перенести дамп базы (при генерации не забудь совместимость с 323)
2. Посмотри когда ты вставляешь в базу туда плывет то что ты ожидаешь:
$query = "INSERT INTO slovar VALUES ('".$id."', '".$letter."', '".$termin."', '".$opr."')";
print "$query <br>";
mysql_query($query);
$id = $id++;
Больше так не делайте
Почему?
1.Пробуй перенести дамп базы (при генерации не забудь совместимость с 323)
пробовал и совместимость с 3 и с 4. В самой базе все ок, если обзором смотреть. Только при выборке кал какой то получается.
Почему?
Ключевое слово: SQL-инъекция :)
Если, к примеру, у вас ссылки вида
http :// site.ru/?i=1
то кто-нибудь когда-нибудь обязательно попробует сделать так, например:
http :// site.ru/?i=1'drop table slovar
opaHzheBb1u, mysql 5 - это не локаль. Попробуйте на сервере mysql 4.0.24 сделать запрос перед выборкой "SET NAMES CP1251;"
Если после этого данные будут выбираться правильно, то надо будет пересоздать базу с параметром --default-character-set=cp1251 и таблицу с парметорами CHARACTER SET cp1251 COLLATE cp1251_bin
Ключевое слово: SQL-инъекция
Если, к примеру, у вас ссылки вида
http :// site.ru/?i=1
то кто-нибудь когда-нибудь обязательно попробует сделать так, например:
http :// site.ru/?i=1'drop table slovar
Это легко обходится. У меня скрипт вот так написан на самом деле, здесь сократил чтоб удобнее читать было без потери сути. вот:
switch($l)
{
case "1":
$let='1';
break;
case "2":
$let='2';
break;
case "3":
$let='3';
break;
case "4":
$let='4';
break;
case "5":
$let='5';
break;
case "6":
$let='6';
break;
case "7":
$let='7';
break;
case "8":
$let='8';
break;
case "9":
$let='9';
break;
case "10":
$let='10';
// ит.д по всем буквам
}
$asd = mysql_query("SELECT * FROM `slovar` WHERE `letter`='".$let."'");
opaHzheBb1u, mysql 5 - это не локаль. Попробуйте на сервере mysql 4.0.24 сделать запрос перед выборкой "SET NAMES CP1251;"
Если после этого данные будут выбираться правильно, то надо будет пересоздать базу с параметром --default-character-set=cp1251 и таблицу с парметорами CHARACTER SET cp1251 COLLATE cp1251_bin
Спасибо за помощь. Вам +!
switch($l)
{
case "1":
$let='1';
break;
а такая конструкция чем не устраивает?
$let=($l>0 && $l<34) ? $l : 0;