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

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

  Все выпуски  

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


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

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

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

Выпуск № 924
от 17.03.2008, 23:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 484, Экспертов: 46
В номере:Вопросов: 4, Ответов: 10

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


Вопрос № 126871: Доброе время суток. Можно ли с помощью php сделать ссылку для загрузки изображений, флешек и т.д. Т.е. чтобы не объект не открывался в окне браузера, а выводилось окно "сохранить объект как" ..
Вопрос № 126936: Я создаю свой сайт с помощью Денвера. Есть база данных, есть форма для ввода информации. Информация в базу записывается, а редактирование и удаление у меня неполучается. Вылазит ошибра в PHP. Вот эта ошибка для редактирования: Warning: mysql_fetc...
Вопрос № 126997: Здравствуйте, гуру! Как целесообразнее "разобраться" с кавычками (одинарными, косыми и двойными) и с обратными косыми чертами при вставке данных (текста) в поле базы данных через РНР? Заменять ли их лучше кодировками символов, добавлять...
Вопрос № 127048: Вопрос сторонникам ООП. Каковы его преимущества? Структуру и синтаксис объяснять не нужно....

Вопрос № 126.871
Доброе время суток.
Можно ли с помощью php сделать ссылку для загрузки изображений, флешек и т.д.
Т.е. чтобы не объект не открывался в окне браузера, а выводилось окно "сохранить объект как"
Отправлен: 11.03.2008, 22:38
Вопрос задал: Ігор (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Ігор!
Это делается подменой типа файла, который нужно загрузить, в файле .htaccess.
_______________________________
Changing MIME-Types

Changing Mime-types is easy. Just create a .htaccess file that looks like this:

AddType new-mime-type extension

If you want to force a 'save file as' message, you can set the mime-type to application/octet-stream
_______________________________
(источник)

В приложении пример строка, которую Вам нужно вписать в файл .htaccess, чтобы появился такой диалог для файлов с расширением gif.
Обратите внимание: диалог загрузки будет появляться для всех файлов данного типа, находящихся в папке с этим .htaccess.

Удачи!

Приложение:

Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 11.03.2008, 22:42

Отвечает: Шпилевский Евгений Васильевич
Здравствуйте, Ігор!
Да можно. Для этого надо воспольщоваться функицей header примерно вот так:

header('Content-Type: image/jpeg');
header('Content-Disposition: attachment; filename="downloaded.jpg"');
readfile('downloaded.jpg');

Более подробно тут: http://php.net/header
Ответ отправил: Шпилевский Евгений Васильевич (статус: 2-ой класс)
Ответ отправлен: 11.03.2008, 22:47


Вопрос № 126.936
Я создаю свой сайт с помощью Денвера. Есть база данных, есть форма для ввода информации. Информация в базу записывается, а редактирование и удаление у меня неполучается. Вылазит ошибра в PHP. Вот эта ошибка для редактирования:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in z:homewww.мой сайт.ruwwwspyLib1.php on line 208

Warning: mysql_fetch_field(): supplied argument is not a valid MySQL result resource in z:homewww.мой сайт.ruwwwspyLib1.php on line 210

Warning: Invalid argument supplied for foreach() in z:homewww.мой сайт.ruwwwspyLib1.php on line 223

Приложение:

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

Отвечает: Товарищ Бородин / Borodul
Здравствуйте, Константин Кабак!
Если с помощью функции получается запись в базу, а редактирование и удаление не получается, то возможен вариант, что у Вас неправильно составлены запросы на редактирование и удаление. Соответственно, при передаче такого неправильного запроса mysql_query возвращает false, который, конечно же, не может быть идентификатором ресурса, подставляемым в mysql_num_rows и mysql_num_fields (эти функции при подстановке в них false тоже дадут false, который, в свою очередь, является неправильным аргументом для foreach). Мне не надо было даже вчитываться в код Вашего приложения, чтобы понять это, потому что когда я начинал учиться программировать на PHP, у меня было все то же самое.

Если бы Вы еще вдобавок привели запросы, которыми Вы оперируете, конечно, это существенным образом облегчило бы решение Вашей проблемы.

Итак, суммируя... Ошибка у Вас не в 208 строке, а в параметре $query, который Вы передаете функции в самом начале. От него все и идет, скорее всего. Это раз. Хочу на всякий случай заметить, что идентификаторы, возвращаемые функцией mysql_query при запросах типа "INSERT" или "UPDATE" передавать функции mysql_num_rows нельзя. Чтобы узнать число измененных строк, следует вызывать функцию mysql_affected_rows сразу после выполнения запросов. Ее можно вызывать без параметров. Это, значит, два.
Кроме того, я бы советовал Вам проверять возвращаемые значения на валидность с помощью булевых функций PHP. Например, проверить значение на предмет того, что оно ресурс, можно с помощью функции is_resource. Это решит многие Ваши проблемы, потому что код станет более ошибкоустойчивым, а проверять его станет гораздо легче. Это три.
С уважением, Товарищ Бородин / Borodul
---------
- Я вчера коньяк пил, 25 лет выдержки, вот это выдержка!
- Ерунда! Вот я вчера выпил 5 литров пива и поехал от Сочи до Иваново на автобусе без остановок. Вот это выдержка...
Ответ отправил: Товарищ Бородин / Borodul (статус: Профессионал)
Россия, Новосибирск
Тел.: +7-923-245-3366
ICQ: 346988855
----
Ответ отправлен: 12.03.2008, 12:56

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

Ошибка означает, что у Вас некорректно выполнился запрос SQL (к сожалению, Вы его текст не привели). Либо синтаксическая ошибка, либо что-то намудрили с внешними ключами (сделайте триггеры OnDelete и OnUpdate Cascade). Попробуйте выполняемый запрос редактирования/удаления выполнить в клиенте MySQL (например phpMyadmin/mySQL Query Browser) - он покажет, в чем дело. Также возможно, что сам запрос выполняется корректно, но Вы ведь зачем-то пытаетесь считать результат с помощью функции mysql_fetch_assoc(), что в общем-то бессмысленно - Вы ведь не выборку делаете.
И вообще, в дальнейшем, делайте проверку на корректность выполнения SQL-запроса (например, if ($result) {} else {}).

Ответ отправил: Иван Сергеевич (статус: 4-ый класс)
Ответ отправлен: 12.03.2008, 13:03


Вопрос № 126.997
Здравствуйте, гуру!
Как целесообразнее "разобраться" с кавычками (одинарными, косыми и двойными) и с обратными косыми чертами при вставке данных (текста) в поле базы данных через РНР? Заменять ли их лучше кодировками символов, добавлять слеши и т.д. Что посоветуете? Есть ведь, думаю, давно наработанные стандарты. Как лучше?
Отправлен: 12.03.2008, 18:28
Вопрос задал: magnifiko (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Serge R. Bochkareff
Здравствуйте, magnifiko!
Скорее всего вам нужны вот эти следующие функции
string addslashes ( string str )
Возвращает сроку str, в которой перед каждым спецсимволом добавлен обратный слэш (), например для последующего использования этой строки в запросе к базе данных. Экранируются одиночная кавычка ('), дойная кавычка ("), обратный слэш () и NUL (байт NULL).

string stripslashes ( string str )
Удаляет экранирующие бэкслэши. (' преобразуется в ', и т.д.). Двойные бэкслэши (\) преобразуется в одиночные().
Ответ отправил: Serge R. Bochkareff (статус: 2-ой класс)
Ответ отправлен: 12.03.2008, 21:09
Оценка за ответ: 4
Комментарий оценки:
Спасибо. Это я знаю, как и проверку режима магических кавычек. Подумал, а вдруг есть ещё какие-то фигуры высшего пилотажа. Подождём-увидим :) У меня бывают проблемы с обратным извлечением из базы данных (MySQL). Теряются слеши. Такое ощущение, что addslashes два раза нужно провести для вставки в базу.

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

Перед вставкой любого значения в базу данных используйте функцию htmlspecialchars($value, ENT_QUOTES)
Описание:

Производятся следующие преобразования:

'&' (амперсанд) преобразуется в '&'
'"' (двойная кавычка) преобразуется в '"' когда ENT_NOQUOTES не выставлено.
''' (одиночная кавычка) преобразуется в ''' только в режиме ENT_QUOTES.
'<' (знак "меньше чем") преобразуется в '<'
'>' (знак "больше чем") преобразуется в '>'

Таким образом, преобразуйте все кавычки в их безопасные аналоги. Обратный перевод Вам уже не понадобится, если потребуется просто вывести на экран данные (например, комментарий на форуме). Обратное преобразование (на случай, если в БД будет храниться какой-нибудь код) - функция htmlspecialchars_decode($value, ENT_QUOTES);
ВНИМАНИЕ - функция htmlspecialchars_decode доступна в пятой версии php. Для предыдущих версий используйте html_entity_decode() с теми же параметрами.
Ответ отправил: Иван Сергеевич (статус: 4-ый класс)
Ответ отправлен: 12.03.2008, 22:15
Оценка за ответ: 5
Комментарий оценки:
За htmlspecialchars_decode спасибо. Не знал о ней. Визуализация преобразования забавная вышла... но я понял. Вернее, знаю, что там должно быть.

Отвечает: Шпилевский Евгений Васильевич
Здравствуйте, magnifiko!
Возможно вам будет полезна вот эта функция:
$s = mysql_real_escape_string($s);
Ответ отправил: Шпилевский Евгений Васильевич (статус: 2-ой класс)
Ответ отправлен: 12.03.2008, 23:02
Оценка за ответ: 5
Комментарий оценки:
Ух-ты! С миру по нитке... и я уже одетый.


Вопрос № 127.048
Вопрос сторонникам ООП.
Каковы его преимущества?
Структуру и синтаксис объяснять не нужно.
Отправлен: 12.03.2008, 23:01
Вопрос задал: magnifiko (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, magnifiko!

Основы ООП
В последнее время идея объектно-ориентированного программирования (ООП), кардинально новая идеология написания программ, все более занимает умы программистов.

Объектно-ориентированные программы более просты и мобильны, их легче модифицировать и сопровождать, чем их "традиционных" собратьев. Кроме того, похоже, сама идея объектной ориентированности при грамотном ее использовании позволяет программе быть даже более защищенной от различного рода ошибок, чем это задумывал программист в момент работы над ней. Однако ничего не дается даром: сами
идеи ООП довольно трудны для восприятия "с нуля", поэтому до сих пор очень большое количество программ (различные системы Unix, Apache, Perl, да и сам PHP) все еще пишутся на старом добром "объектно-неориентированном" Си.

PHP до недавнего времени обеспечивал лишь некоторую поддержку ООП. Однако, после выхода PHP5 поддержка ООП в PHP стала практически полной.

Стратегию ООП лучше всего описать как смещение приоритетов в процессе программирования от функциональности приложения к структурам данных. Это позволяет программисту моделировать в создаваемых приложениях реальные объекты и ситуации. Технология ООП обладает тремя главными преимуществами:

* она проста для понимания: ООП позволяет мыслить категориями повседневных объектов;
* повышенно надежна и проста для сопровождения — правильное проектирование обеспечивает простоту расширения и модификации объектно-ориентированных программ. Модульная структура позволяет вносить независимые изменения в разные части программы, сводя к минимуму риск ошибок программирования;
* ускоряет цикл разработки — модульность и здесь играет важную роль, поскольку различные компоненты объектно-ориентированных программ можно легко использовать в других программах, что уменьшает избыточность кода и снижает риск внесения ошибок при копировании.

Специфика ООП заметно повышает эффективность труда программистов и позволяет им создавать более мощные, масштабируемые и эффективные приложения.

источник

Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 12.03.2008, 23:08
Оценка за ответ: 4
Комментарий оценки:
Спасибо. Я ожидал более личных ответов, наподобие: "Вот для меня..."

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

ИМХО, это философский вопрос.
Погуглите в интернете по поводу плюсов и минусов. Я пару ссылок кину, остальные и сами найдете ;)

Приложение:

Ответ отправил: Иван Сергеевич (статус: 4-ый класс)
Ответ отправлен: 13.03.2008, 00:03
Оценка за ответ: 4
Комментарий оценки:
Спасибо. Гляну. А для Вас лично?

Отвечает: Serge R. Bochkareff
Здравствуйте, magnifiko!
Для меня ООП это масштабируемость кода.
Есть у меня движок для любого сайт. Если делаю какой либо сайт. То я наследую классы моего движка и модифицирую всего лишь потомка - который и выводит, обрабатывает данные и пр.
Получается ускорение работы в разы и , в следствии, удешевление разработки.
Ответ отправил: Serge R. Bochkareff (статус: 2-ой класс)
Ответ отправлен: 13.03.2008, 09:29
Оценка за ответ: 5
Комментарий оценки:
Спасибо. У меня начинают прорисовываться мысли. Например, сделать массив content[], разные элементы которого будут вставляться туда, куда в данный момент нужно (разные по размеру и расположению ячейки таблицы HTML, к примеру)... Прийдётся книжки по системам управления сайтом искать.


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

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.72.5 от 17.03.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное