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

  Все выпуски  

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


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

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

Выпуск № 422
от 07.08.2006, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 336, Экспертов: 40
В номере:Вопросов: 5, Ответов: 16


Вопрос № 50830: Здравствкйте эксперты. Подскажите на PHP можно строить графики типа как в Excel простые лини или точки, чтобы маштаб менялся в зависимости от кол-ва точек и можно было оси координат разный выбирать(допустим дата). Киньте ссылочку или подскажи...
Вопрос № 50880: Добрый день Ув. эксперты!!! Как получить строку адрес которую отображает браузер (не локальный путь к скрипту, а именно полную строку)? Заранее благодарен всем откликнувшимся....
Вопрос № 50898: Уважаемые эксперты! Если я заменяю набор однотипных страниц вызовом только одной страницы (на PHP) с параметрами (типа http://.../theme=472&subt=47), будут ли такие страницы хуже индексироваться поисковыми машинами? И вообще, удобен ли т...
Вопрос № 50918: Уважаемые эскперты! Скажите пожалста, каким образом реализуется вывод посетителей он-лайн в скрипте форума. Я так понял, что когда участник или гость входят на форум, в БД заносится соответствуящая информация. А вот как она оттуда удаляется, когда уч...
Вопрос № 50929: Есть страничка, в которой находится куча (большая) форм. Формы выпадающих меню берут данные из БД mysql. 1. Как можно связать между собой формы "ГОСУДАРСТВО" и "ГОРОД" так, чтобы при выборе определенного государства в форму &q...

Вопрос № 50.830
Здравствкйте эксперты.
Подскажите на PHP можно строить графики типа как в Excel простые лини или точки, чтобы маштаб менялся в зависимости от кол-ва точек и можно было оси координат разный выбирать(допустим дата).
Киньте ссылочку или подскажите с помощью какого компанента можно это реализовать.
Отправлен: 01.08.2006, 23:09
Вопрос задал: Gray (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Яруллин Азат Рифкатович
Здравствуйте, Gray!
Вот пример создания:
- графического счетчика посещений
- линейного графика средствами библиотеки GD
- круговой диаграммы
http://www.iworld.ru/magazine/index.phtml?do=show_article&p=99781702
Удачи!
Ответ отправил: Яруллин Азат Рифкатович (статус: 6-ой класс)
Ответ отправлен: 02.08.2006, 00:18
Оценка за ответ: 5
Комментарий оценки:
Спасибо посмотрю

Отвечает: Cimus
Здравствуйте, Gray!
Пр помощи функции imageline() можно рисовать прямые линии, мазки кисти и пунктир.
Ещё нужна библиотека GD.

Приложение:

---------
Достичь можно любых высот !

Ответ отправил: Cimus (статус: 5-ый класс)
Ответ отправлен: 02.08.2006, 01:25
Оценка за ответ: 5
Комментарий оценки:
Спасибо просто я думал что есть компанет который это делает а так самому надо все рисовать да еще и маштаб учитывать


Вопрос № 50.880
Добрый день Ув. эксперты!!!

Как получить строку адрес которую отображает браузер (не локальный путь к скрипту, а именно полную строку)?

Заранее благодарен всем откликнувшимся.
Отправлен: 02.08.2006, 10:44
Вопрос задал: Топорков Алексей Иванович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PVS
Здравствуйте, Топорков Алексей Иванович!
Максимально близко к тому, что Вы ищите $_SERVER["REQUEST_URI"] . Запрашиваемое имя сервера можно получить через $_SERVER["HTTP_HOST"]. Таким образом полная строка будет
$browser_url="http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 02.08.2006, 10:53
Оценка за ответ: 5

Отвечает: Saw
Здравствуйте, Топорков Алексей Иванович!

Попробуйте $_SERVER['QUERY_STRING']
Ответ отправил: Saw (статус: 2-ой класс)
Ответ отправлен: 02.08.2006, 10:58


Вопрос № 50.898
Уважаемые эксперты!

Если я заменяю набор однотипных страниц вызовом только одной страницы (на PHP) с параметрами (типа http://.../theme=472&subt=47), будут ли такие страницы хуже индексироваться поисковыми машинами?
И вообще, удобен ли такой способ построения сайта для пользователей (если, например, ссылка на одну из страниц добавлена в Избранное или была указана на другом сайте для перехода по ней)?
Отправлен: 02.08.2006, 13:27
Вопрос задал: Михеев Александр Владимирович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PVS
Здравствуйте, Михеев Александр Владимирович!
Для пользователя - без разницы, а вот поисковики их не любят. Хотя для поисковиков можно .htaccess настроить.
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 02.08.2006, 13:41

Отвечает: Cimus
Здравствуйте, Михеев Александр Владимирович!
На мой взгляд поисковики всёравно проиндексируют (хотя не особо и жалуют), а вот для пользователя это неудобно.
К примеру понравилась мне некоторая страничка с адрессом вида --- http://www.yandex.ru/yandsearch?text=%C3%F0%E0%EC%EC%E0%F2%E8%F7%E5%F1%EA%E8%E9+%F1%EB%EE%E2%E0%F0%FC+%F0%F3%F1%F1%EA%EE%E3%EE+%FF%E7%FB%EA%E0+%28%F1%EB%EE%E2%E0%F0%FC+%C7%E0%EB%E8%E7%ED%FF%EA%E0%29+-+%FD%EB%E5%EA%F2%F0%EE%ED%ED%E0%FF+%E2%E5%F0%F1%E8%FF&stype=www ---
, а в закладки я её не сунул и тогда, чтобы повторно зати на эту страницу мне нужно будет изрядно поломать голову дабы вспомнить её адрес и не факт, что я его вообще вспомню.
Поэтому лучьше делать человеко понятные урлы (чпу), подробней об этом можно прочитать вот тут http://spectator.ru/technology/php/user_friendly_urls и тут http://www.artlebedev.ru/kovodstvo/48/
---------
Достичь можно любых высот !
Ответ отправил: Cimus (статус: 5-ый класс)
Ответ отправлен: 02.08.2006, 17:13


Вопрос № 50.918
Уважаемые эскперты! Скажите пожалста, каким образом реализуется вывод посетителей он-лайн в скрипте форума. Я так понял, что когда участник или гость входят на форум, в БД заносится соответствуящая информация. А вот как она оттуда удаляется, когда участник не кликнет на ссылку "Выход", а просто закроет страницу в своем браузере?
Отправлен: 02.08.2006, 16:31
Вопрос задал: RebornDemon (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PVS
Здравствуйте, RebornDemon!
Просто при каждом запросе данных обновляется время последней активности пользователя, и если оно превышает, скажем 5 минут, то пользователь считается ушедшим.
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 02.08.2006, 16:37

Отвечает: Nik-VB
Здравствуйте, RebornDemon!
Например, раз в минуту проверяется время последнего посещения. Если пользователь не был ни на одной странице, например, в течение 5 минут, запись удаляется.
Или куда-нибудь записываются номера сессий, а через определенное время (например, каждую минуту) проверяется их существование (при закрытии браузера сессия уничтожается).
---------
Нет ничего невозможного!
Ответ отправил: Nik-VB (статус: 1-ый класс)
Ответ отправлен: 02.08.2006, 16:45

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

Просто в БД заносится также время последнего обращения к серверу для каждого пользователя (разные гости идентифицируются по IP). А при каждом выводе "кто on-line" проверяется, обращался ли каждый пользователь к серверу за последние, например, полчаса. Если нет - он удаляется из таблицы online-пользователей. Тогда те, кто остался в таблице - это on-line.
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 02.08.2006, 16:45

Отвечает: Cimus
Здравствуйте, RebornDemon!
Я всою очереди реализовал это так :

1) При входе пользователя записываем его логин и текущее время в базу данных,
также удаляем записи где раздница во времени более 5 минут.
2) При открытии страницы (любой) обновляем время доступа в таблице для этого пользователя и удаляем записи с раздницой во времени старше 5 минут
3) При выходе пользователя - удаляем его запись из таблицы и все записи с раздницой во времени 5 минут

Соответственно ели после удаления записей с раздницей 5 минут то это и есть пользователи в он-лайн.

Также можно вести учёт и не зарегистрированных пользователей, для этого можно в базу данных записывать не ники, а идентификаторы сессий и время последнего обращения к сайту.

Также можно вывести статистику кто где находиться, для этого надо в таблице предусмотреть дополнительное поле для урла страницы к которой обратился пользователь.
---------
Достичь можно любых высот !
Ответ отправил: Cimus (статус: 5-ый класс)
Ответ отправлен: 02.08.2006, 17:00

Отвечает: Saw
Здравствуйте, RebornDemon!

Тут недавно задавался подобный вопрос, вот посмотрите, тут достаточно хорошо все описано: http://rusfaq.ru/info/question/50455 , возможно вам это подойдет.
Ответ отправил: Saw (статус: 2-ой класс)
Ответ отправлен: 03.08.2006, 09:12


Вопрос № 50.929
Есть страничка, в которой находится куча (большая) форм. Формы выпадающих меню берут данные из БД mysql.
1. Как можно связать между собой формы "ГОСУДАРСТВО" и "ГОРОД" так, чтобы при выборе определенного государства в форму "ГОРОД" выводились только те города, которые соответствуют этому государству.
2. При нажатии Кнопки "ОТПРАВИТЬ" все эти данные передаются в отдельную таблицу БД с соответствующими полями.
3. Каким образом связывается определенное поле формы (например Год выпуска) с таблицей auto_year. Где именно это указывается?
4. Есть ли такая возможность, как "мультиформа", т. е. все данные содержатся в одной форме (а не каждый раз писать <form name="form2" method="post" action="">) Или так делать нельзя.

БУДУ РАД ВСЕМ ОТВЕТАМ, ОСОБЕННО ТАКИМ, КОТОРЫЕ РАССЧИТАНЫ НА ЧАЙНИКОВ... ПОМОГИТЕ ПОЖАЛУЙСТА...

Заранее спасибо!

Приложение:

Отправлен: 02.08.2006, 18:28
Вопрос задал: Сычев Роман (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Physicist
Здравствуйте, Сычев Роман!

1. Если стран и городов очень много - лучшим выходом будет использование технологии AJAX (или просто асинхронного JavaScript, без XML). Поищи в интернете - ссылок по этой теме (с примерами) в последнее время достаточно. Получив данные с сервера, нужно в innerHTML обрамляющего элемента вывести <select> со всеми полученными <option> (на JavaScript, в цикле)
2. Это не вопрос :-)
3. Все зависит от того, что и как ты хочешь записывать в БД. Почитай документацию с примерами по командам INSERT INTO, UPDATE, SELECT, WHERE (последнее - не команда). Тщательно продумай структуру таблиц.
4. Так и делают. Когда много форм - легко запутаться. Можно в начале страницы (после <body>) написать
<form method="post" action="">
а перед </body>, соответственно </form> - и всё, можно жить спокойно.
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 02.08.2006, 18:55

Отвечает: PVS
Здравствуйте, Сычев Роман!
4. Если формы одинаковые, то можно писать 3. Никак не связывается, просто при формировании формы Вы берете данные для выпадающего списка или radiobutton'ов из нужной таблицы
2. Если надо записать все полученные данные в таблицу используйте
mysql_query("insert into table_name values(...[здесь переменные через запятую, строки и дата в кавычках, числа - как есть]....)");
1. Если не использовать JavaScript, а только PHP, то надо позволить пользователю выбрать государство, передать его выбор на сервер и сформировать новую форму выбора в которой будут города только нужного государства mysql_query("select city_name from city where country='$selected_country'");

Чтобы лучше разобратся с SQL'ями, которые судя по 1 и 2 Вам все-тки будут нужны найдите какой-нибудь учебник. Если получится постарайтесь найти в Internet'e "Понимание SQL" М. Грубера - очень доходчиво написаная книга.
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 02.08.2006, 18:57

Отвечает: Ерёмин Андрей
Здравствуйте, Сычев Роман!
1. Смотрите пример, созданный мной, в приложении. Это можно реализовать на JavaScript. Правда немного неудобно - каждый список нужно создавать в отдельности, но всё равно вариант. Ещё одна особенность - это код почему-то не сработал у меня в IE... Хотя в Opera всё прекрасно.
3. Когда вы передаёте данные из формы в php-скрипт, они становятся доступны по соответствующим именам переменных. Например, если текстовое поле в форме имеет имя year, то в php-скрипте это значение будет в $year. А дальше - выполняются все необходимые операции (например, добавление в таблицу базы данных).
4. Вопрос непонятен... В любой форме вы можете размещать сколько угодно много компонент.

Приложение:

---------
Нет правила без исключений. Правило без исключений - исключение из правил.

Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 02.08.2006, 18:59

Отвечает: Nik-VB
Здравствуйте, Сычев Роман!
1) Для каждого государства нужен свой ID в таблице, а в таблице с городами у каждого указываем ID государства. И когда надо, выбираем по этому полю.
2) При нажатии "Отправить" данные передаются в скрипт на обработку... Именно скрипт и выполняет все действия с БД. Можно указывать скрытые параметры в форме, по ним скрипт может определить, что надо делать.
3) Варианты для выбора должны заполнятся в PHP-скрипте. Просто выбираем из MySQL-базы нужные варианты и выводим.
4) В одну форму можно вставить сколько угодно полей, но тогда и заполнять всю форму нужно будет разом (все поля заполняются, а потом вся форма обрабатывается).
Если Вам нужно заполнять все поля без перезагрузки страницы (то есть выбираем страну и сразу грузятся города), то это можно сделать с помощью JavaScript. Так же можно сделать и проверку правильности данных. Подробности здесь: http://www.codenet.ru/cat/Languages/JavaScript/AJAX/
Про реализацию на PHP - см. приложение.
Удачи!

Приложение:

---------
Нет ничего невозможного!

Ответ отправил: Nik-VB (статус: 1-ый класс)
Ответ отправлен: 02.08.2006, 19:49

Отвечает: Козлов Алексей Сергеевич
Здравствуйте, Сычев Роман!
1. Если писать на чистом PHP, то в пределах одного запроса этого не сделать. Т.е., или придется делать пошаговый выбор, или заносить это в переменные и выводить потом с помощью JavaScript. Есть еще такой вариант, что при выборе страны JavaScript передает на сервер код страны и выводится обновленая страница с перечнем городов данного государства. Но некоторые пользователи отключают поддержку Java, так что могут возникнуть проблемы.

2. После передачи формы на сервер мы можем обратиться к переданным данным в таком виде:
$name = $_REQUEST['name']
где NAME это имя поля, в твоем случае это SELECT, SELECT2, RadioGroup1 и т.д.

3. Связывание полученной переменной с некоторым полем таблицы зависит от того, что тебе нужно - вставить или обновить данные. Конкретную реализацию кода необходимо смотреть по месту.

4. Да, все приведенные формы можно свести в одну.

P.S. Есть одно замечание по использованию CheckBox'а. Передача значения на сервер произойдет только если он будет ВЫБРАН (установлен), т.е. в нулевом (сброшенном) состоянии НИЧЕГО передано не будет. Для решения этой проблемы необходимо вместо этого CheckBox'а вставить код приведенный в приложении. Так же на мой взгляд в качестве значения правильнее использовать не буквы и слова, а '0' или '1'

Приложение:

---------
Версий еще много будет, пока есть фантазия...

Ответ отправил: Козлов Алексей Сергеевич (статус: 3-ий класс)
Ответ отправлен: 03.08.2006, 01:27
Оценка за ответ: 5
Комментарий оценки:
Отлично! Мне нравятся ваши ответы! Все понятно.


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное