Замена параметра на РНР
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Замена параметра на РНР - 2007-03-11 12:38:25.960000
|
|
|
Bios_inside
Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
|
15
|
|
|
RE: Замена параметра на РНР - 2007-03-11 12:52:40.683333
|
|
|
Сhaos_Сode
Сообщений: 1049
Оценки: 0
Присоединился: 2006-01-12 11:54:12
|
Все реально. 1. Тебе нужно, чтобы без перегрузки страницы язык менялся? 2. Покажи лучше сам чат, сорсы. Я могу подсказать, но лучше знать обстановку)
|
|
|
RE: Замена параметра на РНР - 2007-03-11 14:08:39.233333
|
|
|
Bios_inside
Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
|
17
|
|
|
RE: Замена параметра на РНР - 2007-03-11 14:35:31.963333
|
|
|
Сhaos_Сode
Сообщений: 1049
Оценки: 0
Присоединился: 2006-01-12 11:54:12
|
Разница большая. Современные чаты работают на AJAX :) И сделать несложно) Вот напиши чат на PHP с использованием AJAX и сразу все сам поймешь)
|
|
|
RE: Замена параметра на РНР - 2007-03-11 15:47:17.056666
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
Просто при нажатии на картинку с англ флагом делай переход по ссылке на чат и передавай параметр, например: http://……/chat.php?lang=en, а в самом скрипте поставь switch() и по значению параметра lang загружай нужный тебе файл…
|
|
|
RE: Замена параметра на РНР - 2007-03-11 18:44:20.063333
|
|
|
Bios_inside
Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
|
19
|
|
|
RE: Замена параметра на РНР - 2007-03-11 19:07:42.893333
|
|
|
Bios_inside
Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
|
20
|
|
|
RE: Замена параметра на РНР - 2007-03-11 20:56:35.440000
|
|
|
d0lph1n
Сообщений: 411
Оценки: 0
Присоединился: 2006-09-14 17:55:51.653333
|
Сохраняй lang в кукисы или добавь в форму поле lang типа hidden
|
|
|
RE: Замена параметра на РНР - 2007-03-12 00:11:18.753333
|
|
|
Сhaos_Сode
Сообщений: 1049
Оценки: 0
Присоединился: 2006-01-12 11:54:12
|
quote:
Сохраняй lang в кукисы или добавь в форму поле lang типа hidden Если чат на сессиях, лучше хранить в сессии)
|
|
|
RE: Замена параметра на РНР - 2007-03-12 09:21:21.686666
|
|
|
d0lph1n
Сообщений: 411
Оценки: 0
Присоединился: 2006-09-14 17:55:51.653333
|
Неа, лучше в куках, чтоб выбор при следующем заходе сохранялся.
|
|
|
RE: Замена параметра на РНР - 2007-03-12 09:51:57.086666
|
|
|
Bios_inside
Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
|
22
|
|
|
RE: Замена параметра на РНР - 2007-03-12 20:49:26.913333
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
quote:
< a href=index.php?lang=eng.php> < a href=index.php?lang=rus.php> Лучше так не делать, любой сможет отредактировать хтмл код и в место rus.php или eng.php можно ввести название другого пхп скрипта. Лучше просто передавать какой то параметр типа 1, 2 или ru, eng, а в index.php проверять значение в переменной lang, если 1 или ru, тогда подгружаем rus.php и еще один советик, вместо прямого обращения к переменной $lang используй массивы $_POST или $_GET, в зависимости от метода отправки данных. У меня был случай, когда из-за прямого обращения к передаваемым переменным дома на локальном веб-сервере работало, а как только выложил на хост, перестало работать из-за того что большенство хостингов (а может даже и все нормальные) блокируют работу с передаваемыми данными на прямую…
|
|
|
RE: Замена параметра на РНР - 2007-03-12 23:54:58.900000
|
|
|
Bios_inside
Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
|
23
|
|
|
RE: Замена параметра на РНР - 2007-03-13 05:48:05.283333
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
quote:
ORIGINAL: Bios_inside quote:
ORIGINAL: ZneP quote:
< a href=index.php?lang=eng.php> < a href=index.php?lang=rus.php> Лучше так не делать, любой сможет отредактировать хтмл код и в место rus.php или eng.php можно ввести название другого пхп скрипта. Лучше просто передавать какой то параметр типа 1, 2 или ru, eng, а в index.php проверять значение в переменной lang, если 1 или ru, тогда подгружаем rus.php и еще один советик, вместо прямого обращения к переменной $lang используй массивы $_POST или $_GET, в зависимости от метода отправки данных. У меня был случай, когда из-за прямого обращения к передаваемым переменным дома на локальном веб-сервере работало, а как только выложил на хост, перестало работать из-за того что большенство хостингов (а может даже и все нормальные) блокируют работу с передаваемыми данными на прямую… Твой ответ не внес ясность в мой вопрос, но всеравно спасибо, пойду читать в книжке дальше. Там 500 страниц, а я прочитал всего 200 за месяц. А все из-за того, что автор (гражданин Котеров) не приводит примеры для конкретных случаем вэб-програмирования. Надеюсь дальше будет чуть яснее. Но во всей книжке ни разу не упоминается о $_GET или $_POST. Розсказывается только о том как данные транслируются этим методом, но никаких полезных примеров он не приводит. Может я читаю не ту книгу?Кстати, я не понля как это кто-то может загрузить дургой скрипт? Что в этом плохого? Я ещё не сталкивался с этим, потому не совсем представляю как это. PHP-Including называется. Ты в своем скрипте (index.php) подключаешь файл "include $lang". Имя файла у тебя передается через переменную $lang, а значит "include $lang" подключит любой файл, который я передам, например у тебя будет админка со скриптом login.php, где записаны логин и пароль для входа и тут появляется какой то чел, который просто передает параметру lang название файла для входа в админку (…?lang=login.php) и спокойно просматривает код файла login.php Вот ссылочка, почитай и поймешь что это, а заодно поймешь что я хотел сказать в своем предыдущем посте: http://webstudent.ru/modules/wfsection/article.php?articleid=381 книжечка у тебя действительно не для начинающих, так что лучше скачай вот эти, тут и примеры есть: http://rapidshare.de/files/20315498/php5.rar.html http://www.proklondike.com/search.php - введешь в поиск "PHP" и качай книги, я например по книге Ларри Ульмана обучался
|
|
|
RE: Замена параметра на РНР - 2007-03-13 12:23:07.653333
|
|
|
d0lph1n
Сообщений: 411
Оценки: 0
Присоединился: 2006-09-14 17:55:51.653333
|
1 делаем ссылки вида <a href="/?lang=ru"></a> <a href="/?lang=en"></a> 2 Проверяем при загрузке:
<?php
if(isset($_GET["lang"]))
{
if(/*Здесь какая-нибудь проверка на корректность параметра*/)
$lng=$_GET["lang"];
else
$lng="ru";
setcookie("lang", $lng, time()+2592000);//Устанавливаем кукис на 30 дней
}
if(isset($_COOKIE["lang"]))
{
if(/*Здесь какая-нибудь проверка на корректность параметра*/)
$lng=$_COOKIE["lang"];
else
$lng="ru";
setcookie("lang", $lng, time()+2592000);//Устанавливаем кукис на 30 дней
}
include("/lang/".$lng.".php");
?>
|
|
|
RE: Замена параметра на РНР - 2007-03-13 13:44:06.373333
|
|
|
Сhaos_Сode
Сообщений: 1049
Оценки: 0
Присоединился: 2006-01-12 11:54:12
|
Я начинал c http://www.williamspublishing.com/Books/5-8459-0862-0.html потом http://www.williamspublishing.com/Books/5-8459-0953-8.html потом http://www.williamspublishing.com/Books/5-8459-0925-2.html и наконец http://www.dialektika.com/books/5-8459-1066-8.html И советую эту http://www.ukazka.ru/kniga369121.html Мне в ней пригодилась инфа по стилю кодирования pear и по PHPDoc.
|
|
|
RE: Замена параметра на РНР - 2007-03-13 23:22:04.426666
|
|
|
Bios_inside
Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
|
24
|
|
|
RE: Замена параметра на РНР - 2007-03-14 01:02:51.613333
|
|
|
Bios_inside
Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
|
26
|
|
|
RE: Замена параметра на РНР - 2007-03-14 08:36:19.930000
|
|
|
d0lph1n
Сообщений: 411
Оценки: 0
Присоединился: 2006-09-14 17:55:51.653333
|
if($act==ru) может всех "ru" а не ru? Зы про дырявость не согласен, это ж ток кусок кода, а задумка была следующая: перед приведенным кодом читаем /lang/, пишем все файлы xx.php в массив (например $AvLang). Далее вместо quote:
/*Здесь какая-нибудь проверка на корректность параметра*/ проверяем есть ли файл $lng.".php" в массиве. Так более универсально получится, т.к. достаточно добавить в /lang/ новый языковой файл, как его можно будет сразу использовать.
|
|
|
RE: Замена параметра на РНР - 2007-03-16 20:27:19.263333
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
quote:
Я тут подумал над твоим скриптом и понял, что он немножко дырявый, как говорит товарищ на пост выше, потому написал вот что:Для <A HREF=index.php?act=uk></a><A HREF=index.php?act=ru></a><?if(isset($_GET["act"]))//если на кнопку нажали, то следующие условия выполняются: { if($act==ru) $lng="rus.php"; elseif ($act==uk) $lng="uk.php"; setcookie("act", $act, time()+2592000);}; else $lng="uk.php";// если на кнопку не нажали, то параметру присаевается uk.php if(isset($_COOKIE["act"]))//если кукис есть, то выполнится следующее условие: { if($act==ru) $lng="rus.php"; elseif ($act==uk) $lng="uk.php"; setcookie("act", $act, time()+2592000);//Устанавливаем кукис на 30 дней }; //если кукис не установлен и на кнопку не нажали, то всерамно $lng="uk.php" include $lng; ?> Так почему же не пашет скрипт, когда я его запускаю и все в 10 строке, там где елсе? Разные браузеры выдают разную ошибку Ну во первых: if($act==ru)
$lng="rus.php";
elseif ($act==uk)
$lng="uk.php";
setcookie("act", $act, time()+2592000);};
else $lng="uk.php";// если на кнопку не нажали, то параметру присаевается uk.php
У тебя сдесь 2 ошибки. Первая в том, что ты не открыл фигурную скобку после условия elseif($act==uk) Вторая в том, что после закрытия фигурной скобки ты поставил ";" Третья, как уже говорили, ru и uk заключи в кавычки Совет: setcookie("act", $act, time()+2592000); поставь после всех условий… Во вторых: if(isset($_COOKIE["act"]))//если кукис есть, то выполнится следующее условие:
{
if($act==ru)
$lng="rus.php";
elseif ($act==uk)
$lng="uk.php";
setcookie("act", $act, time()+2592000);//Устанавливаем кукис на 30 дней
};
Ты получаешь значение из кукиса таким вот способом - $_COOKIE["act"], а проверку делаешь через переменную $act. замени все $act на $_COOKIE["act"] и исправь все те же ошибки, которые встречаются и в предыдущем кусочке кода
|
|
|
|
|