Вопрос № 93714: Здравствуйте!
Такой вопрос: хочу сделать поддержку языков на сайте, точнее она у меня уже есть, по $_GET['lng'] передается информация о языке, хотелось бы переделать эту весчь с использованием ЧПУ (человекопонятный URL) но проблема в том что мне ...Вопрос № 93761: Добрый день!
При вставке в БД выдается ошибка:
Parse error: parse error, unexpected T_STRING in z:homelocalhostwwwworkead01.php on line 42
Если перед и после данных поставить точки и одинарную кавычку все работает нормально.
Но ...
Вопрос № 93.714
Здравствуйте!
Такой вопрос: хочу сделать поддержку языков на сайте, точнее она у меня уже есть, по $_GET['lng'] передается информация о языке, хотелось бы переделать эту весчь с использованием ЧПУ (человекопонятный URL) но проблема в том что мне нужно распространить этот ЧПУ только на переменную lng тоесть в итоге получить http://localhost/ru/ - русская версия http://localhost/en/ - английская версия!, пробема в том что все примеры реализации ЧПУ меняют все переменные на "катологи"
Притом обращение к http://localhost/forum/ должно обрабатываться нормально и навигация по сайту с добавленным ru или en или без них должна работать!!!
Думаю задача посильная!
Кто даст ответ - тому виртуальное пиво :) кто не пьет пиво тому сок!!! :)
P.S.: информации по mod_rewrite и реализации ЧПУ начитался вдоволь, просьба кидать ссылки ТОЛЬКО если в примере обрабатывается часть url
P.S.S.: кстати а что делать с POST формами при ЧПУ??? кто-нибудь реализовал??? - вопрос не главный кто ответит ТОЛЬКО на него получит виртуальную единицу! :P
Отправлен: 03.07.2007, 01:13
Вопрос задал: Nooki (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Cimus
Здравствуйте, Nooki!
В приложении вариант .htaccess, вполне рабочий.
Есть одно но, приставка en/ или ru/ должна добавляться в конце урла.
пример :
http://localhost/ru/
http://localhost/forum/ru/
Папка forum должна существовать.
Если не понятно пишите в мини-форум.
Приложение:
--------- трикотаж http://evkrata.ru/
Ответ отправил: Cimus (статус: Студент)
Ответ отправлен: 03.07.2007, 12:05 Оценка за ответ: 5 Комментарий оценки: ОТЛИЧНО, думаю это как раз то что мне нужно!
Отвечает: PVS
Здравствуйте, Nooki!
1)Вы сами задаёте регулярное выражение согласно которому будет преобразован URL. Таким образом Вам нужно что-то типа:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(..)/(.*)$ /$2?lng=$1
Тоесть если запрашиваемый URL не является реально существующим файлом или каталогом и соответствует виду /{два символа}/{что-то ещё} то его надо преобразовать к виду
/{что-то ещё}?lng={два символа}
Тут есть засада. Если у Вас есть запросы вида:
/ru/articles/?art_no=1
то они преобразуются неправильно и для них нужно придумать цепочку правил посложнее.
2)POST-данные не затрагиваются при обработке mod_rewrite и если переписывание произошло, то POST-запрос всё равно прийдёт, но уже по "переписаному" адресу.
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 03.07.2007, 12:26 Оценка за ответ: 5
Вопрос № 93.761
Добрый день!
При вставке в БД выдается ошибка:
Parse error: parse error, unexpected T_STRING in z:homelocalhostwwwworkead01.php on line 42
Если перед и после данных поставить точки и одинарную кавычку все работает нормально.
Но в описаниях оператора insert я этого не нашел или не понял.
Пожалуйста обьясните.
И второй вопрос:
Как при пополнении БД записями из файла в котором кодировка DOS,
сделать чтобы записи в БД смотрелись нормально?
Спасибо.
Приложение:
Отправлен: 03.07.2007, 11:45
Вопрос задал: Eliz (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Yurio
Здравствуйте, Eliz!
Правильно, у Вас и должна выдоваться в данном случае ошибка.
Правильно будет так:
$query="insert into tbl values ("hhh","eee","www","uuu")"; - то есть закоментированные кавычки, или же так:
$query='insert into tbl values ("hhh","eee","www","uuu")'; - используются одинарные кавычки.
Ответ отправил: Yurio (статус: 2-ой класс)
Ответ отправлен: 03.07.2007, 11:57 Оценка за ответ: 4
Отвечает: PVS
Здравствуйте, Eliz!
1)у Вас строка ограничена двойными кавычками. Таким образом правильной частью является
"insert into tbl values ("
а всё, что после неё вызывает ошибку.
Для того чтобы написать кавычки внутри строки ограниченой такими же кавычками надо их экранировать слэшами:
$query="insert into tbl values ("hhh","eee","www","uuu")";
или
$query='insert into tbl values ('hhh','eee','www','uuu')';
Если же кавычки разные, то всё понимается правильно:
$query="insert into tbl values ('hhh','eee','www','uuu')";
$query='insert into tbl values ("hhh","eee","www","uuu")';
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 03.07.2007, 11:57 Оценка за ответ: 5 Комментарий оценки: Спасибо!!!!!!!
Отвечает: Powoditch konstantin
Здравствуйте, Eliz!
Символы " надо екранировать слешами или писать апострофы. В приложении исправленный вариант.
Приложение:
Ответ отправил: Powoditch konstantin (статус: 2-ой класс)
Ответ отправлен: 03.07.2007, 15:27
Отвечает: BerdArt
Здравствуйте, Eliz!
Со вторым вопросом помочь не могу, а с первым подскажу:
Правильно записать этот запрос надо след. образом:
$query="insert into tbl values ('hhh','eee','www','uuu')";
Объясняю: у вас строка запроса выглядит след. образом "insert into tbl values (", а все что дальше не обрабатывается как запрос, а может быть только то что заключено в двойные кавычки, т.е. такие строки: "," "," "," ")"
Поэтому у вас такие получались результаты. Ну вот вроде и все. Думаю понятно.
Удачи!
Ответ отправил: BerdArt (статус: 2-ой класс)
Ответ отправлен: 03.07.2007, 20:16