Отправляет email-рассылки с помощью сервиса Sendsay

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

  Все выпуски  

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 965
от 06.06.2008, 07:05

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 138290: Всем привет! Вопрос такой: можно ли делать включение файла (инклюд), расположенного на другом сайте? Пробовал - не вышло. Что зависит от хостера, что - нет? И вообще возможно ли?...
Вопрос № 138442: Здравствуйте ув. эксперты вопрос такой: Нашел на одном сайте такую статейку для постраничной навигации, поставил у себя, вот только выводится такая ошибка: Notice: Undefined variable: PHP_SELF in T:homevirtualprimefunc.ini.php o...
Вопрос № 138453: Добрый день, Уважаемые эксперты. Возник следующий вопрос. Есть 2 таблицы меню сайта: table ->tables field->id field->name table->table_structure field->table_id field->parent_id <br...
Вопрос № 138500: Здраствуйте Уважаемы Эксперты проблема в следующем: у меня в базе данных 5 полей: id title autor text data Есть функция постраничной навигации, как сделать так чтобы скрипт работал, выводит вот эти ошибки: ...
Вопрос № 138604: Добрый вечер уважаемые эксперты. Сделал регистрацию на сайте,состоящую из двух файлов,самой формы регистрации и обработчика. Проблема возникла в следующем. Когда данные передаются обработчику,делается проверка и даже если есть ошибки при ...
Вопрос № 138829: Здравствуйте! Подскажите пожалуйста как в PHP создать массив...и как сним работать...например сделать ввод элментов с клавиатуры...отсортировать его... Заранне благодарен!...

Вопрос № 138.290
Всем привет!

Вопрос такой: можно ли делать включение файла (инклюд), расположенного на другом сайте?

Пробовал - не вышло. Что зависит от хостера, что - нет? И вообще возможно ли?
Отправлен: 28.05.2008, 15:04
Вопрос задал: Прим Палвер (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Иван Сергеевич
Здравствуйте, Прим Палвер!
1. Проверьте значение переменной allow_url_fopen (должна быть "1").
2. Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.
Ответ отправил: Иван Сергеевич (статус: Студент)
Ответ отправлен: 28.05.2008, 15:40
Оценка за ответ: 5
Комментарий оценки:
PHP Version 5.2.6

phpinfo показывает, что значение allow_url_fopen "on"

Что ещё не так?


Вопрос № 138.442
Здравствуйте ув. эксперты вопрос такой:

Нашел на одном сайте такую статейку для постраничной навигации, поставил у себя, вот только выводится такая ошибка:

Notice: Undefined variable: PHP_SELF in T:homevirtualprimefunc.ini.php on line 85

Там написано что $PHP_SELF это урл для элементов навигационной панели

Как мне исправить ошибку? и отку дого взять урл?

Приложение:

Отправлен: 29.05.2008, 09:52
Вопрос задал: Сурыев Назар (статус: 10-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Иван Сергеевич
Здравствуйте, Сурыев Назар !

PHP_SELF - переменная, хранящая имя запущенного скрипта относительно DOCUMENT_ROOT. Однако доступ к ней надо получать через глобальный массив $_SERVER, т.е. так: $_SERVER['PHP_SELF']. Очевидно, у автора был включен register_globals.

PS. Мне кажется, использование внешнего скрипта JS для формирования меню навигации не самый удобный способ. Проще его формировать средствами php.
Ответ отправил: Иван Сергеевич (статус: Студент)
Ответ отправлен: 29.05.2008, 10:08
Оценка за ответ: 5
Комментарий оценки:
Спасибо Огромное

Отвечает: Райкин Сергей Александрович
Здравствуйте, Сурыев Назар !
Со статьей не разбирался, но попробуй вместо поставить $PHP_SELF $_SERVER['PHP_SELF'], у тебя на сервере отключены глобальные переменные.
---------
программист должен работать в свое удовольствие
Ответ отправил: Райкин Сергей Александрович (статус: 5-ый класс)
Ответ отправлен: 29.05.2008, 10:12
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вопрос № 138.453
Добрый день, Уважаемые эксперты.

Возник следующий вопрос.
Есть 2 таблицы меню сайта:

table ->tables
field->id
field->name

table->table_structure
field->table_id
field->parent_id

Код в приложении выводит полное дерево меню.

Например, в таблице содержится следующее дерево:

Категория 1
Категория 1.1
Категория 1.2
Категория 1.2.1
Категория 2

Вопрос: как вывести категорию 1.2.1 и всех ее родителей?
Т.е.: Категория 1->Категория 1.2->Категория 1.2.1

Приложение:

Отправлен: 29.05.2008, 11:00
Вопрос задал: Armaniden (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Загиров Рустам / Stamm
Здравствуйте, Armaniden!
Получаем в цикле все подразделы в обратном порядке:
$kroshki=array();
while ($par_id)
{
$res=@mysql_fetch_assoc(mysql_query(
'SELECT id,name FROM tables WHERE id=(SELECT table_id FROM table_structure WHERE parent_id ='.$par_id.' LIMIT 1)'
));
if (@$res)
{
$kroshki[$res['id']]=$res['name'];
$par_id=@$res['id'];
}
}

Переворачиваем массив:
$razdeli=array_reverse($kroshki);

И объединяем значения элементов массива:
print implode(' -> ',razdeli);
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Загиров Рустам / Stamm (статус: Специалист)
Ответ отправлен: 29.05.2008, 12:05


Вопрос № 138.500
Здраствуйте Уважаемы Эксперты проблема в следующем:

у меня в базе данных 5 полей:
id
title
autor
text
data

Есть функция постраничной навигации, как сделать так чтобы скрипт работал, выводит вот эти ошибки:

Notice: Undefined variable: page_size in T:homevirtualprimefunc.ini.php on line 27
Warning: Division by zero in T:homevirtualprimefunc.ini.php on line 27
Notice: Undefined variable: page in T:homevirtualprimefunc.ini.php on line 29
1...Назад
Notice: Undefined variable: page in T:homevirtualprimefunc.ini.php on line 30
Notice: Undefined variable: page in T:homevirtualprimefunc.ini.php on line 31
...Вперед0

Приложение:

Отправлен: 29.05.2008, 15:48
Вопрос задал: Сурыев Назар (статус: 10-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Иван Сергеевич
Здравствуйте, Сурыев Назар !

Ответ простой - задайте $page_size :)

Собственно говоря, это количество новостей на странице.
А $page - номер текущей страницы (берется из $_GET['page']), по умолчанию =1
Ответ отправил: Иван Сергеевич (статус: Студент)
Ответ отправлен: 29.05.2008, 16:05

Отвечает: Николай Анатольевич
Здравствуйте, Сурыев Назар !
Вначале определить переменную $page_size
Потом сделать проверку чтобы всего новостей!=0
Передать в функцию $page
Ответ отправил: Николай Анатольевич (статус: 3-ий класс)
Ответ отправлен: 29.05.2008, 16:22
Оценка за ответ: 5
Комментарий оценки:
Спасибо....но все равно не работает (


Вопрос № 138.604
Добрый вечер уважаемые эксперты.
Сделал регистрацию на сайте,состоящую из двух файлов,самой формы регистрации и обработчика.
Проблема возникла в следующем.
Когда данные передаются обработчику,делается проверка и даже если есть ошибки при вводе данных всё равно происходит регистрация.
При выводе ошибок пробовал использовать exit(),всё работало хорошо,но тогда портился весь внешний вид странички,а при использовании echo,выводятся сообщения об ошибках при вводе данных,но и происходит регистрация.
Хотелось бы сделать так,что при появлении ошибки выводилось не только сообщение об ошибке,но и сама форма.
Подскажите,пожалуйста, как правильно поступить в этом случае.
скрипт обработчика приложил с сокращением несущественного кода html.

Приложение:

Отправлен: 30.05.2008, 00:53
Вопрос задал: Slo_nik (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Иван Сергеевич
Здравствуйте, Slo_nik!

1. Проверяйте введенные данные на стороне клиента:

<form method='POST' action='login.php' onsubmit='return checkData()'>
....
</form>

В функции checkData() делаете проверку введенных пользователем полей. Если все ОК, то возвращаете true и форма передает данные скрипту, если нет - прерываете передачу через return false

2. Поскольку в скрипте все же желательно оставить проверку данных, сделайте некий флажок (например, $validdata = true). Если в каком-то месте блока проверки данные не проходят валидацию, присваиваем флажку значение false, проверка идет дальше. В момент регистрации проверяем значение флага, если true - регистрируем.
Таким образом, мы не прерываем вывод страницы, а пользователь получает сообщения об ошибках в данных.

PS. Советую объединить оба метода, так первый позволяет показать пользователю ошибки без перезагрузки страницы, а второй закрывает дыру в скрипте, если кто-то попробует загрузить данные без использования Вашей формы.
Ответ отправил: Иван Сергеевич (статус: Студент)
Ответ отправлен: 30.05.2008, 09:02
Оценка за ответ: 5


Вопрос № 138.829
Здравствуйте!

Подскажите пожалуйста как в PHP создать массив...и как сним работать...например сделать ввод элментов с клавиатуры...отсортировать его...

Заранне благодарен!
Отправлен: 31.05.2008, 22:00
Вопрос задал: Гальцов Андрей (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Миленин Александр
Здравствуйте, Гальцов Андрей!

Ссылки:
php.mirror.camelnetwork.com
kurepin.ru
vvz.nw.ru
В PHP можно определять т.н. ассоциативные массивы, представляющие собой наборы пар ключ - значение. В отличие от многих других языков, где "ключами" (индексами) могут быть только целые неотрицательные числа, в PHP ключ может быть строкой (а может - и целым неотрицательным числом).

Объявление массива без инициализации
$data = array();

Объявление массива с инициализацией
Пусть, например, мы хотим хранить в ассоциативном массиве $textOptions некие параметры шрифта, а в массиве $days с целочисленными ключами - названия дней недели. Их можно объявить с инициализацией ряда элементов, а потом при необходимости добавлять новые элементы.

$textO ptions = array( 'font-family'=>'Arial' , 'color'=>'red' , 'font-size'=>12 );

$days = array( 0=>'Monday' , 1=>'Tuesday');
или
$days = array( 'Monday','Tuesday');

Добавление элементов в массив
В определенные выше массивы можно добавлять элементы:
$textOptions['background-color'] = '#EEEEEE';
$textOptions['border'] = 'green dotted 3px';

$days[2] = 'Wednesday';
$days[3] = 'Thursday';

В случае массива с целочисленными ключами ключи можно не указывать:

$days[] = 'Friday';
$days[] = 'Suturday';
$days[] = 'Sunday';

При этом значения ключам присваиваются последовательно, начиная со значения, на единицу большего уже существующего максимального ключа.
Примеры и примечания
Для перебора всех элементов массива очень удобно использовать оператор foreach. Определим такие (кстати, многомерные) массивы:

$student['Mitina'] = array('name'=>"Maria", 'age'=>19);
$student['Bor isova'] = array('name'=>"Alexandra", 'age'=>19);
$teacher['Zakharkina'] = array('name'=>"vvz", 'age'=>'NA');
$teacher['Pankratov'] = array('name'=>"pan", 'age'=>'NA');

и выведем значения с помощью операторов

foreach ( $student as $k=>$v )
{
echo "<b>$k</b>
";
echo $v['name']." (".$v['age']." years)<p>";
};

Вот результат:

Mitina
Maria (19 years)

Borisova
Alexandra (19 years)

Исправлено по просьбе отвечающего
-----
∙ Отредактировал: Устинов С.Е. (Профессионал)
∙ Дата редактирования: 01.06.2008, 00:13 (MCK)
Ответ отправил: Миленин Александр (статус: Студент)
Ответ отправлен: 01.06.2008, 00:03
Оценка за ответ: 5
Комментарий оценки:
спасибо!

Отвечает: Peremordit
Здравствуйте, Гальцов Андрей!
создать можно так
$arr=array(1,2,3,4,5);
php не выдвигает жестких требований к переменным, как, например, delphi, и массив можно предварительно не объявлять, а просто заполнить очередной элемент массива (например, так: $arr['dlja']['primera']='1234567890'; )

>сделать ввод элментов с клавиатуры
дело в том, что php отрабатывает на сервере. Поэтому для передачи текста с клавиатуры надо сделать обычную html-страничку с полями ввода. action тэга form этой страницы должен указывать на php скрипт.

>отсортировать его
на помощь придут функции
sort($arr) - обычная сортировка по возрастанию
rsort($arr) - сортировка по убыванию
asort($arr) - сортировка ассоциативного массива по возрастанию
arsort($arr) - cортировка ассоциативного массива по убыванию
natsort($arr) - "естественная" сортировка массива

еще полезно посмотреть http://www.php.net/manual/ru/
Ответ отправил: Peremordit (статус: 5-ый класс)
Ответ отправлен: 02.06.2008, 08:10
Оценка за ответ: 5
Комментарий оценки:
спасибо!


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.92 pre 5.0 RC2 от 09.05.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное