Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Замена параметра на РНР

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Замена параметра на РНР
Имя
Сообщение << Старые топики   Новые топики >>
Замена параметра на РНР - 2007-03-11 12:38:25.960000   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
15
Post #: 1
RE: Замена параметра на РНР - 2007-03-11 12:52:40.683333   
Сhaos_Сode

Сообщений: 1049
Оценки: 0
Присоединился: 2006-01-12 11:54:12
Все реально.

1. Тебе нужно, чтобы без перегрузки страницы язык менялся?
2. Покажи лучше сам чат, сорсы.
Я могу подсказать, но лучше знать обстановку)
Post #: 2
RE: Замена параметра на РНР - 2007-03-11 14:08:39.233333   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
17
Post #: 3
RE: Замена параметра на РНР - 2007-03-11 14:35:31.963333   
Сhaos_Сode

Сообщений: 1049
Оценки: 0
Присоединился: 2006-01-12 11:54:12
Разница большая. Современные чаты работают на AJAX :)
И сделать несложно)
Вот напиши чат на PHP с использованием AJAX и сразу все сам поймешь)
Post #: 4
RE: Замена параметра на РНР - 2007-03-11 15:47:17.056666   
ZneP

Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
Просто при нажатии на картинку с англ флагом делай переход по ссылке на чат и передавай параметр, например: http://……/chat.php?lang=en, а в самом скрипте поставь switch() и по значению параметра lang загружай нужный тебе файл…
Post #: 5
RE: Замена параметра на РНР - 2007-03-11 18:44:20.063333   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
19
Post #: 6
RE: Замена параметра на РНР - 2007-03-11 19:07:42.893333   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
20
Post #: 7
RE: Замена параметра на РНР - 2007-03-11 20:56:35.440000   
d0lph1n

Сообщений: 411
Оценки: 0
Присоединился: 2006-09-14 17:55:51.653333
Сохраняй lang в кукисы или добавь в форму
поле lang типа hidden
Post #: 8
RE: Замена параметра на РНР - 2007-03-12 00:11:18.753333   
Сhaos_Сode

Сообщений: 1049
Оценки: 0
Присоединился: 2006-01-12 11:54:12
quote:

Сохраняй lang в кукисы или добавь в форму
поле lang типа hidden


Если чат на сессиях, лучше хранить в сессии)
Post #: 9
RE: Замена параметра на РНР - 2007-03-12 09:21:21.686666   
d0lph1n

Сообщений: 411
Оценки: 0
Присоединился: 2006-09-14 17:55:51.653333
Неа, лучше в куках, чтоб выбор при следующем заходе сохранялся.
Post #: 10
RE: Замена параметра на РНР - 2007-03-12 09:51:57.086666   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
22
Post #: 11
RE: Замена параметра на РНР - 2007-03-12 20:49:26.913333   
ZneP

Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
quote:

&lt; a href=index.php?lang=eng.php&gt;
&lt; a href=index.php?lang=rus.php&gt;

Лучше так не делать, любой сможет отредактировать хтмл код и в место rus.php или eng.php можно ввести название другого пхп скрипта. Лучше просто передавать какой то параметр типа 1, 2 или ru, eng, а в index.php проверять значение в переменной lang, если 1 или ru, тогда подгружаем rus.php

и еще один советик, вместо прямого обращения к переменной $lang используй массивы $_POST или $_GET, в зависимости от метода отправки данных. У меня был случай, когда из-за прямого обращения к передаваемым переменным дома на локальном веб-сервере работало, а как только выложил на хост, перестало работать из-за того что большенство хостингов (а может даже и все нормальные) блокируют работу с передаваемыми данными на прямую…
Post #: 12
RE: Замена параметра на РНР - 2007-03-12 23:54:58.900000   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
23
Post #: 13
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:

&lt; a href=index.php?lang=eng.php&gt;
&lt; a href=index.php?lang=rus.php&gt;

Лучше так не делать, любой сможет отредактировать хтмл код и в место rus.php или eng.php можно ввести название другого пхп скрипта. Лучше просто передавать какой то параметр типа 1, 2 или ru, eng, а в index.php проверять значение в переменной lang, если 1 или ru, тогда подгружаем rus.php

и еще один советик, вместо прямого обращения к переменной $lang используй массивы $_POST или $_GET, в зависимости от метода отправки данных. У меня был случай, когда из-за прямого обращения к передаваемым переменным дома на локальном веб-сервере работало, а как только выложил на хост, перестало работать из-за того что большенство хостингов (а может даже и все нормальные) блокируют работу с передаваемыми данными на прямую…
Твой ответ не внес ясность в мой вопрос, но всеравно спасибо, пойду читать в книжке дальше. Там 500 страниц, а я прочитал всего 200 за месяц. А все из-за того, что автор (гражданин Котеров) не приводит примеры для конкретных случаем вэб-програмирования. Надеюсь дальше будет чуть яснее. Но во всей книжке ни разу не упоминается о $_GET или&nbsp;$_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" и качай книги, я например по книге Ларри Ульмана обучался
Post #: 14
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 Проверяем при загрузке:
&lt;?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"); ?&gt;
Post #: 15
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.
Post #: 16
RE: Замена параметра на РНР - 2007-03-13 23:22:04.426666   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
24
Post #: 17
RE: Замена параметра на РНР - 2007-03-14 01:02:51.613333   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
26
Post #: 18
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/ новый языковой файл, как его можно будет сразу использовать.
Post #: 19
RE: Замена параметра на РНР - 2007-03-16 20:27:19.263333   
ZneP

Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
quote:

Я тут подумал над твоим скриптом и понял, что он немножко дырявый, как говорит товарищ на пост выше, потому написал вот что:Для&nbsp;&lt;A HREF=index.php?act=uk&gt;&lt;/a&gt;&lt;A HREF=index.php?act=ru&gt;&lt;/a&gt;&lt;?if(isset($_GET["act"]))//если на кнопку нажали, то следующие условия выполняются:
{
if($act==ru)
&nbsp;&nbsp; $lng="rus.php";
elseif ($act==uk)
&nbsp;&nbsp; $lng="uk.php";
&nbsp;&nbsp;&nbsp; setcookie("act", $act, time()+2592000);};
else $lng="uk.php";// если на кнопку не нажали, то&nbsp;параметру присаевается&nbsp;&nbsp;uk.php
&nbsp;&nbsp;
if(isset($_COOKIE["act"]))//если кукис есть, то выполнится следующее условие:
{
if($act==ru)
&nbsp;&nbsp; $lng="rus.php";
elseif ($act==uk)
&nbsp;&nbsp; $lng="uk.php";
&nbsp;&nbsp; setcookie("act", $act, time()+2592000);//Устанавливаем кукис на 30 дней
};
//если кукис не установлен и на кнопку не нажали, то всерамно $lng="uk.php"
include $lng;
?&gt; Так почему же не пашет скрипт, когда я его запускаю&nbsp; и все в 10 строке, там где елсе? Разные браузеры выдают разную ошибку

Ну во первых:
if($act==ru) &nbsp;&nbsp; $lng="rus.php"; elseif ($act==uk) &nbsp;&nbsp; $lng="uk.php"; &nbsp;&nbsp;&nbsp; setcookie("act", $act, time()+2592000);}; else $lng="uk.php";// если на кнопку не нажали, то&nbsp;параметру присаевается&nbsp;&nbsp;uk.php У тебя сдесь 2 ошибки. Первая в том, что ты не открыл фигурную скобку после условия elseif($act==uk)
Вторая в том, что после закрытия фигурной скобки ты поставил ";"
Третья, как уже говорили, ru и uk заключи в кавычки
Совет: setcookie("act", $act, time()+2592000); поставь после всех условий…

Во вторых:
if(isset($_COOKIE["act"]))//если кукис есть, то выполнится следующее условие: { if($act==ru) &nbsp;&nbsp; $lng="rus.php"; elseif ($act==uk) &nbsp;&nbsp; $lng="uk.php"; &nbsp;&nbsp; setcookie("act", $act, time()+2592000);//Устанавливаем кукис на 30 дней }; Ты получаешь значение из кукиса таким вот способом - $_COOKIE["act"], а проверку делаешь через переменную $act. замени все $act на $_COOKIE["act"] и исправь все те же ошибки, которые встречаются и в предыдущем кусочке кода
Post #: 20
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Замена параметра на РНР







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.