RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 462
от 18.09.2006, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 363, Экспертов: 50
В номере:Вопросов: 6, Ответов: 12


Вопрос № 55168: Здравствуйте! Подскажите, пожалуйста, можно ли только средствами PHP сформировать страницу в отдельном окне фиксированного размера (наподобие рекламного, только с информацией)? Необходимо выводить информацию об объекте, не загромождая страницу-ис...
Вопрос № 55190: Здравствуйте уважаемые эксперты! Нужна Ваша помощь создал сайт www.elovo.ru на хостинге www.majordomo.ru. Страницы состоят из отдельных частей вложенных с помощью функции include. Так вот проблема в томчто кодирвка во вложенныхфайлах отображаевтся ка...
Вопрос № 55193: У меня есть каркас форума (www.box.h10.ru/forum). В статистике этого форума необходимо указать количество человек, находящихся в данный момент на форуме, хотелось бы ещё указать их логины(имена). Я на форуме использую авторизацию по средствам сес...
Вопрос № 55208: Есть форма с набором радиобаттонов. Необходимо при нажатии кнопки submit определить имя помеченного радиобаттона. Сделать кучу if нельзя, ибо количество радио может быть любым....
Вопрос № 55253: Здравствуйте, уважаемые эксперты! Очень надеюсь на Вашу помощь. На каком-то форуме видел вот такую штуку: http://img.thedelphi.ru/danasoft.com.png. Подскажите, пожалуйста, как можно реализовать показ этой информации на моем сайте? Я имею ввид...
Вопрос № 55268: Уважаемые эксперты! Вопрос 1) Имеется html-таблица с рядами данных из базы MySQL, в каждом ряде в первой ячейке имеется элемент checkbox. Элементы можно включать/выключать в произвольном порядке. Научите, плз, как сделать скрипт, при помощи которого ...

Вопрос № 55.168
Здравствуйте!
Подскажите, пожалуйста, можно ли только средствами PHP сформировать страницу в отдельном окне фиксированного размера (наподобие рекламного, только с информацией)? Необходимо выводить информацию об объекте, не загромождая страницу-источник. Заранее благодарен.
JSU
Отправлен: 12.09.2006, 15:30
Вопрос задал: JSU (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: PVS
Здравствуйте, JSU!
В каком окне откроется информация Вы можете управлять только на стороне клиента, тоесть тэгами HTML'я или JavaScript'ом.
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 13.09.2006, 10:13


Вопрос № 55.190
Здравствуйте уважаемые эксперты! Нужна Ваша помощь создал сайт www.elovo.ru на хостинге www.majordomo.ru. Страницы состоят из отдельных частей вложенных с помощью функции include. Так вот проблема в томчто кодирвка во вложенныхфайлах отображаевтся как KOI8-R, хотя на всех страницах в мета тегах прописана кодировка Windows-1251. Может подскажет кто как решить эту проблему.
За ответы большое спасибо
Отправлен: 12.09.2006, 19:31
Вопрос задал: Чугаев Сергей Павлович (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Загиров Рустам
Здравствуйте, Чугаев Сергей Павлович!
Просто у вас не все файлы в одиноковой кодировке. Проверьте файлы, которые Вы "инклюдите", чтобы они были в кодировке windows-1251
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Загиров Рустам (статус: Практикант)
Ответ отправлен: 12.09.2006, 21:33

Отвечает: SPEKTR
Здравствуйте, Чугаев Сергей Павлович!
У меня была подобная проблема. И верьте-не верьте, но я просту убрал метатег с указанием кодировки. Всё исправилось.

---------
Кто эксперт? Я эксперт?! Не, вы меня с кем-то путаете...
Ответ отправил: SPEKTR (статус: 2-ой класс)
Ответ отправлен: 13.09.2006, 10:16


Вопрос № 55.193
У меня есть каркас форума (www.box.h10.ru/forum).
В статистике этого форума необходимо указать количество человек, находящихся в данный момент на форуме, хотелось бы ещё указать их логины(имена). Я на форуме использую авторизацию по средствам сессий.
/* Я думал, что количество зарегистрированный пользователей находящихся в текущий момент времени можно определить при помощи конструкции sizeof($_SESSION); так я думал, когда читал книгу летом, а когда на практике это применил, то оказалось, что в массиве хранится информация только по текущему конкретному пользователю, а не о всех текущих пользователях. Я вошел на форум с 3-х различных браузеров под тремя различными логинами, а результат sizeof($_SESSION)==1;(если хранить там login) . */

Приложение:

Отправлен: 12.09.2006, 19:39
Вопрос задал: PetrKi. (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: NoOne
Здравствуйте, PetrKi.!
Объясню общий принцип, как считаются пользователи на форумах. При входе пользователя сведение (например, его имя и время входа) об этом заносится в таблицу БД (в вашем случае MySQL). Далее, при обращении к любой странице форума эта информация обновляется - устанавливается текущее время для этого пользователя. И вот, когда надо вывести информацию о пользоателях в онлайне, просто выбирается эта таблица. Чтобы исключить пользователей, которые уже возможно ушли со страниц форума, проверяется по времени, чтобы промежуток между последним простмотром и текущим временем не превышал, к примеру, 10 минут.
Вот и весь ответ ;)
Если будут дополнительные вопросы, можно обратиться в личку.
---------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (c) М.Фаулер
Ответ отправил: NoOne (статус: 2-ой класс)
Ответ отправлен: 12.09.2006, 21:12
Оценка за ответ: 4

Отвечает: C4tnt
Здравствуйте, PetrKi.!

Вот кусочек скрипта, который делает нужное вам:

session_start();
define("MAX_IDLE_TIME", 3);
function getOnlineUsers(){
if ( $directory_handle = opendir( session_save_path() ) ) {
$count = 0;
while ( false !== ( $file = readdir( $directory_handle ) ) ) {
if($file != '.' && $file != '..'){
if(time()- fileatime(session_save_path() . '' . $file) < MAX_IDLE_TIME * 60) {
$count ;
}
} }
closedir($directory_handle);
return $count;
} else {
return false;
}}
echo 'Пользователей онлайн: ' . getOnlineUsers() . ';

P.S. Это скрипт с WOWeb.ru, автор - Динман Максим, хотя этой статьи там может уже и не быть.

---------
Теперь к нашим ответам осталось лишь найти вопросы
Ответ отправил: C4tnt (статус: 3-ий класс)
Ответ отправлен: 13.09.2006, 13:49
Оценка за ответ: 3


Вопрос № 55.208
Есть форма с набором радиобаттонов. Необходимо при нажатии кнопки submit определить имя помеченного радиобаттона. Сделать кучу if нельзя, ибо количество радио может быть любым.
Отправлен: 12.09.2006, 21:11
Вопрос задал: Romooseek (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Олег Владимирович
Здравствуйте, Romooseek!

Для каждого радиобатона задаём одинаковое имя, вроде NAME=rs, и разные VALUE=1,2,3,..... . Тогда скрипт на PHP получит параметр $rs со значением 1,2,3..... соответственно.
Good luck!
---------
Факультет ПМ-ПУ - лучший в СПбГУ!
Ответ отправил: Олег Владимирович (статус: 3-ий класс)
Ответ отправлен: 12.09.2006, 21:46

Отвечает: Загиров Рустам
Здравствуйте, Romooseek!
Можно, только у "радиобаттона" не должно быть атрибута value. Стандартно в PHP у включённых "радиобаттонов" проставляються значения "on", по ним можно определить, что это "радиобаттон". Только надо помнить, что "чекбоксы" работают по такому же принципу, значит, надо ставить атрибут value у checkbox'ов.

Приложение:

---------
Этот мир обречён на нас
©Сергей Маврин

Ответ отправил: Загиров Рустам (статус: Практикант)
Ответ отправлен: 12.09.2006, 22:07


Вопрос № 55.253
Здравствуйте, уважаемые эксперты!
Очень надеюсь на Вашу помощь. На каком-то форуме видел вот такую штуку: http://img.thedelphi.ru/danasoft.com.png. Подскажите, пожалуйста, как можно реализовать показ этой информации на моем сайте?
Я имею ввиду как самому написать эту штуку?
Заранее благодарен!
Отправлен: 13.09.2006, 09:06
Вопрос задал: Н.В. (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 11)

Отвечает: Козлов Алексей Сергеевич
Здравствуйте, Н.В.!
Это делается с помощью следующих переменных:

$_SERVER[HTTP_X_FORWARDED_FOR] - определяем IP адрес.
$_SERVER[HTTP_REFERER] - откуда зашел на эту страничку.
$_SERVER[HTTP_USER_AGENT] - броузер, которым пользуется пользователь
Полный список переменных окружения надо смотреть в документации по PHP.

---------
Вы доставили мне истинное удовольствие парни, взвалив на меня Ваши проблемы (М. Фрай).
Ответ отправил: Козлов Алексей Сергеевич (статус: 7-ой класс)
Ответ отправлен: 13.09.2006, 09:18
Оценка за ответ: 5

Отвечает: Physicist
Здравствуйте, Н.В.!

Примерно так (см. приложение). Думаю, всё понятно без комментариев.

Приложение:

Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 13.09.2006, 09:23
Оценка за ответ: 5

Отвечает: PVS
Здравствуйте, Н.В.!
Почитайте информацию, которую выводит функция phpinfo() - там вы узнаете что в какой переменной лежит, а нарисовать все это на картинке можно с помощью функий библиотеки gd :
$im = ImageCreateFromPNG('/путь/к/заготовке.png');
$tc = ImageColorAllocate ($im, 0, 0, 0);
ImageString ($im, 1, $x_pos, $y_pos, $info, $tc);
ImagePNG($im);
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 13.09.2006, 10:24
Оценка за ответ: 5


Вопрос № 55.268
Уважаемые эксперты! Вопрос 1) Имеется html-таблица с рядами данных из базы MySQL, в каждом ряде в первой ячейке имеется элемент checkbox. Элементы можно включать/выключать в произвольном порядке. Научите, плз, как сделать скрипт, при помощи которого можно отметить все элементы checkbox или снять выделение со всех элементов, чтобы выделенные ряды можно было либо удалить, либо редактировать. Вопрос 2) В приложении имеется скрипт запроса $result2 внутри запроса $result, при выполнении которого выходит сообщение об ошибке: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource on line 05. Что я делаю неправильно, из-за чего появляется ошибка?

Приложение:

Отправлен: 13.09.2006, 12:26
Вопрос задал: Vicbar (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Козлов Алексей Сергеевич
Здравствуйте, Vicbar!
1. Средствами PHP это не сделать, но можно сделать на JAVA. Код в приложении. Как это работает посмотри на http://filepost.ru
2. Во-первых, все запросы должны заканчиваться ; т.е.
"SELECT * FROM $table LIMIT 0, 10;"
"SELECT * FROM $table2 WHERE var='$var';"
Во-вторых, приравнивай функцию mysql_fetch_array разным переменным.
В-третьих, слова var и text в $myrow["var"] и $myrow["text"] заключается в одинарные кавычки $myrow['var'] и $myrow['text']
в-четвертых, в переменной $text окажится последнее значение из второго запроса. Или примените соединение строк, или переместите вывод на 9 позицию.

P.S. В случае вопросов по PHP пиши в личку.

Приложение:

---------
Вы доставили мне истинное удовольствие парни, взвалив на меня Ваши проблемы (М. Фрай).

Ответ отправил: Козлов Алексей Сергеевич (статус: 7-ой класс)
Ответ отправлен: 13.09.2006, 12:58
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Все получилось!

Отвечает: HookEst
Здравствуйте, Vicbar!
1. Сначала нужно получить коллекцию всех checkbox -ов, для этого можно или поместить таблицу в форму и всем checkbox-ам задать

одинаковое имя(например chkrow), тогда Form1.chkrow - будет массив этих checkbox-ов, перебрав который в цикле мы получим доступ ко все

элементам, или же можно использовать коллекцию Table1.all.tags("INPUT") если в таблице нет больше никаких INPUT-ов
>
function CheckTbl1(v){
for(var i=0;i<Form1.chkrow.length;i++){
Form1.chkrow(i).checked=v
}
}
function CheckTbl2(v){
var chks=Table1.all.tags("INPUT")
for(var i=0;i<chks.length;i++){
chks(i).checked=v
}
}
</script>

2. Проверьте значение $result2, скорее всего оно False, а это возможно только если второй запрос выполняется с ошибкой, попробуйте заключить

$table2 в "`" - обратная кавычка, и для $var использовать mysql_escape_string():
$result2=mysql_query("SELECT * FROM `$table2` WHERE var='".mysql_escape_string($var)."'")
Ответ отправил: HookEst (статус: 2-ой класс)
Ответ отправлен: 13.09.2006, 13:23
Оценка за ответ: 3
Комментарий оценки:
Не смог разобраться с функциями, очень сложно для начинающего без примера..


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное