Вопрос № 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 примерно вот так:
Я создаю свой сайт с помощью Денвера. Есть база данных, есть форма для ввода информации. Информация в базу записывается, а редактирование и удаление у меня неполучается. Вылазит ошибра в 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
Отвечает: Товарищ Бородин / 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, к примеру)...
Прийдётся книжки по системам управления сайтом искать.