|
Written by Master
|
|
Friday, 22 February 2008 |
Что такое Upload files, или почему не работает copy ("c:\images\sample.jpg", "c:\uploads\ sample.jpg ")
Даже если у Вас в распоряжении всего один компьютер, на котором совмещен и сервер и рабочая станция, не стоит забывать о том, что php использует технологию клиент/сервер. Файл, который мы хотим загрузить, как правило, находится на машине клиента, т.е. пользователя, обыкновенного посетителя сайта. Место назначения - сервер. Для того чтобы совершить процесс передачи файла, нам понадобиться следующая форма:
<form enctype="multipart/form-data" action="/upload.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> Send this file: <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> | | | При этом в поле action должен быть указан URL Вашего php-скрипта, который в дальнейшем будет заниматься обработкой загружаемых файлов. Скрытое поле MAX_FILE_SIZE должно предшествовать полю выбора файла, и содержать максимально допустимый размер файла в байтах. Его назначение - проверка размера файла еще до момента отправки файла на сервер. Это должно избавить пользователя от длительной и безрезультатной загрузки файла на сервер и образования лишнего трафика, но не стоит особо полагаться на это ограничение, так как его легко обойти. Be first to comment this article | Views: 942 |
|
Last Updated ( Thursday, 21 August 2008 )
|
|
Read more...
|
|
Written by Master
|
|
Friday, 25 January 2008 |
|
Одной из интересных вещей, которые вы можете сделать с помощью библиотеки работы с графикой в PHP GD, может быть класс, который ставит водяные знаки (watermarks) на изображение. Если говорить вкратце, то watermark - это технология для защиты цифровых изображений от несанкционированного использования путем нанесения на них водяных знаков или подписей. Как следствие из этого, ее можно применять (а в основном так и есть) для определения владельца авторского права на изображение. Итак, поехали дальше. Вступление На данном этапе своего развития PHP предлагает программистам широкий набор функций для динамической генерации изображений и работы с ними. В этой статье я покажу методику создания класса, который будет ставить водяные знаки на эти изображения. Этот класс будет работать с двумя изображениями: исходное и водяной знак. Как дополнение, введен еще третий параметр - наш класс будет содержать альфа-переменную. Это позволит использовать для нашего водяного знака альфа-канал. Be first to comment this article | Views: 1062 |
|
Read more...
|
|
Written by Master
|
|
Friday, 25 January 2008 |
|
Как правило, каждый автор сайта старается сделать дизайн сайта и его функциональность как можно уникальней. Это касается как коммерческих сайтов так и домашних страничек. Все направлено на то, чтоб привлечь внимание посетителя сайта не только тематикой, но и удобной навигацией в море информации. Количество информации постоянно увеличивается, а желание посетителя тратить свое время и деньги на бесплодные поиски интересующей его информации уменьшаются с каждым неудачным результатом поиска и посещением очередной ненужной ссылки. Наиболее красиво решили эту задачу авторы всемирно известного поисковика "google", где в выводе результатов поиска выделяются искомые ключевые слова. Что служит нескольким целям, с одной стороны показывает пользователю, что данная строка была включена в результат поиска именно потому, что найдено соответствие, а главное посетителю легче ориентироваться. Не тратя зря времени на анализ вывода, где же то, что я искал и почему выведено то, что мне не нужно. Задача становится особенно актуальной если, например, вам необходимо произвести поиск в таблице, по нескольким столбцам одновременно, и результатом поиска будет соответственно все та же таблица. В такой ситуации будет гораздо удобней просматривать уже заранее выделенный текст, а не высматривать его самостоятельно в каждой колонке. Be first to comment this article | Views: 762 |
|
Last Updated ( Monday, 15 September 2008 )
|
|
Read more...
|
|
Written by Master
|
|
Saturday, 05 January 2008 |
|
Транзакции - одно из фундаментальных понятий, отличающих базу данных от обычной файловой системы и от простого набора таблиц. Транзакция - это группа последовательно выполняемых операторов SQL, которые либо должны быть выполнены все, либо не должен быть выполнен ни один из них. Главная задача транзакций - обеспечить целостность данных в случаях, когда несколько SQL-операторов выполняют зависящие друг от друга изменения данных. Классический пример, приводимый, наверно, во всех учебниках по базам данных - перевод денег с одного счета на другой:
UPDATE accounts SET AccSum = AccSum - 1000 WHERE AccNumber = 12345; UPDATE accounts SET AccSum = AccSum + 1000 WHERE AccNumber = 67890; Что будет, если первый оператор выполнится, а второй по какой-то причине - нет (сбой сервера, неправильный номер счета, переполнение... - мало ли какая может быть ошибка)? Деньги с одного счета списаны, а на другой не поступили... Механизм транзакций как раз и позволяет корректно выходить из подобных ситуаций. Объединив эти два оператора UPDATE в одну транзакцию, мы обеспечим выполнение (или невыполнение) их обоих как одного целого. Стандарт SQL-92 предусматривает, что транзакция в текущей сессии начинается неявно при выполнении первого из SQL-операторов, изменяющих данные, а завершена может быть либо явно - операторами COMMIT [WORK] или ROLLBACK (COMMIT [WORK] подтверждает транзакцию и фиксирует внесенные изменения, ROLLBACK транзакцию откатывает и возвращает данные в базе к тому состоянию, в каком они были до начала транзакции), либо неявно - при завершении текущей сессии или при системном сбое. К сожалению, стандарт SQL-92 не определяет, что должно делаться по умолчанию при завершении текущей сессии - подтверждение транзакции или откат, и в разных СУБД (и даже, бывает, в разных клиентах для одной СУБД) это реализуется по-разному. Поэтому на действия по умолчанию лучше не полагаться и всегда делать COMMIT / ROLLBACK явно. Be first to comment this article | Views: 759 |
|
Read more...
|
|