hummermania
User-
Posts
38 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by hummermania
-
А можно и вообще без else сделать. В условии проверить на isset ($_GET/$_POST['имя кнопки формы']) - если да то внутри скобок идет основной алгоритм скрипта. Дополнительно нужно проверить данные пришедшие из каждого поля! (не доверяйте даже скрытым полям, которые сами же и задали) - потом логика скрипта. А на else - можно поставить вывод опять той же формы! if(isset ($_GET/$_POST['имя кнопки формы']) { // 1-проверка первого поля на тип данных и на недопустимые символы ..... // 2 -проверка второго и т.д. полей ..... // 3 логика скрипта } else { // вывод формы } А и еще. Чтобы выводить сообщения об ошибках - их надо собирать по мере проверок полей формы. т.е. завести себе переменную в которую конкатенацией добавлять сообщения об ошибках если таковые будут появляться по логике скрипта или по результатам проверок. Если на сайте предполагается большое кол-во полей и форм - то я себе сделал класс который накапливает сообщения и может их все скопом распечатывать перебирая элементы массива. и универсальную ф-цию проверки поля. Использую eregi_replace для проверки на недопустимые символы.
-
Спасибо Вадиму за полноценный анализ. Согласен с ним почти по всем пунктам. Ваш анализ будет основой на встрече учредителей и первым серьезным этапом для кардинальных изменений. Наша команда постоянно говорит, что чего-то нехватает. И это что-то четко подмечено и указано Вадимом.
-
А файлы есть в папке? Судя по тому что на место $rezult - выдается в таблице пустая ячейка - то файлы хоть и есть но пустые. И как должна тогда отображаться таблица?
-
тут не только дизайнер - еще и верстальщик-ценз и кодер-руки-из-жопы Вместо оскорблений лучше бы конкретно указывали что вот это - полная ...ня, здесь - надо бы так то и так то. А то как опускать чужую работу - так мы первые. Профессионалами становятся а не рождаются.
-
И ч? ты врешь, ставя значек CSS-valid? http://jigsaw.w3.org/css-validator/validat...rning=1〈=en Вот теперь ЦСС - валид!
-
=) Спасибо за комменты - передам дизайнеру. Я в дизе не силен, так по мелочи.
-
Позвольте не согласиться. Все надо использовать когда уместно. если мне надо включить десяток простых html страничек с выводом значением допустим одной переменной, то да require() то что нужно. Но если у меня есть ветвистый алгоритм и эта сотня страничек в свою очеред содержит дальнейшее ветвление и выполнение операций, то тащить их все require() в первоначальный файл не имеет смысла. только память забиваем и увеличиваем время распарсивания. потому что то что подключено require(), еще не значит что может понадобиться. а парсер по ненужному содержанию все-равно пройдется. Согласен. Инклудом удобно подключать файлы содержащие наборы ф-ций - бибилотеки, констант, или классов. А рекуайр больше для построения страниц из шаблонов.
-
По идее должно. Парсер вначале считает код в память, потом содержимое файла рек.пхп и включит в памяти как продолжение -НЕЗАВИСИМО от того сработает ли условие. Т.е. на этапе непосредственно парсинга, обработки, а не на этапе исполнения кода.
-
- для профи конечно вкусненькие куски кода, а для новичка - бред сумасшедшего. Такая же ботва получается если на Визуал Си писать сетевые проги на API - вот там бред полный
-
Хм, а почему ДВЕ формы???? Если хотите двумя скриптами: form.php - файл скажем формы <form action='add_img.php' method='POST' enctype='multipart/form-data'> Фото: <input type='file' name='t_item'> <input type='submit' name='ok' value='Добавить' /> </form> Имеем форму а в ней поле с кнопкой обзор справа и кнопку отправки. После выбора файла путь к нему высветится в текстовом поле. А после нажатия браузер вызовет скрипт add_img.php, в который и обьединяем оба кода: занесение в базу, и копирование в папку на сервере. if (isset($_POST['ok'])) { $success=0; $upfiledir=$upfile=$uplink=''; // копируем пришедший из формы файл в папку с фотками $upfiledir = $_SERVER['DOCUMENT_ROOT']."/MySite/foto_img/";/* Определяем директорию на сервере. */ $upfile = $upfiledir.$_FILES['t_item']['name']);/* Полное имя загружаемого файла */ if (move_uploaded_file($_FILES['t_item']['tmp_name'], $upfile ) )/* если файл перемещен в нужную директорию выводим информацию */ { $uplink = "/MySite/foto_img/".$_FILES['t_item']['name'];/* Данная переменная хранит относительную ссылку, которую можно поместить в БД */ $success++; } // фиксируем название файла в базе, только в том случае если он успешно скопировался if ($success) { $result = mysql_query ('INSERT INTO data (img) VALUES ("'.$uplink.'")'); if (mysql_affected_rows($result)==1) // если вставка была успешна $success++; } if($success==2) // Если успешны обе операции! { echo "Файл ".$_FILES['t_item']['name']." успешно загружен на сервер! Размер: ".$_FILES['t_item']['size']." байт. тип: ".$_FILES['t_item']['type']." } } Кстати $_FILES['t_item']['name'] - должен содержать только имя файла, путь на локальной машине откуда берется этот файл браузер же никогда не передает. ( в данном случае - aaa.jpg)
-
Ну вот в статье ясно сказано что быстродействие снизится если инклудом подключать много файлов, из-за множественных переключений (скорее всего из-за многочисленных вызовов открытия, чтения и закрытия файлов во время исполнения). Если надо подключить немного файлов -то разницы по большому счету нет - и include и require дадут одинаковый результат. ошибки вылезут в случае отсутствия файла. А если файлов много - то конешна рекуайр.
-
Можно еще прочувстовать разницу между ними если знать как ПХП обрабатывает файлы. Допустим мы запросили файл index.php - в корне сайта. ПХП считывает его, разбирая синтаксис. После анализа формирует в памяти внутреннее предсатвление считанного файла в виде конкретных инструкций. И затем выполняет их последовательно. В результате получаем ХТМЛ ответ. Если попадается инструкция include - парсер ПХП останавливает обработку текущего файла, и переключается на тот который в инклуде. Например include("news.php") - ищет и разбирает по строкам файл новостей. Потом опять возвращается к Индекс. Если не ошибаюсь то для всех обрабатываемых файлов создаются отдельные таблицы внутреннего для ПХП представления переменных и функций. Что приводит к некоторым накладным расходам. Если подключаемый файл отсутствует - выдается лишь ворнинг и обработка Индекс продолжается. Если же вместо include будет require - то весь текст файла вставляется в индекс, т.е. в памяти он становится одним. И все рекуайр аналогично. Весь индекс пхп становится одним, состоящим из кода всех подключаемых файлов. И при анализе уже одного большого файла создается одна таблица ф-ций и переменных, которая потом используется для трансляции во внутреннее представление. В этом случае -если файл отсуствует получим фатал еррор, и остановку дальнейшей обработки. Вся страница будет прервана после первого же отсутвующего файла в рекуайр. В итоге: какой то из методов дает выигрыш в производительности, кажись рекуайр - так как транслятору пхп быстрее обработать один файл и создать едину таблицу и внутренний код инструкций, чем переключаться между разными файлами и обрабатывать каждый по отдельности. Но так как сейчас сервера доведены до предела мощностей - выигрыш в долях секунды вряд ли будет заметен. Хотя можно поэкспериментировать сравнив время генерации страницы.
-
проверка на кнопку - это верно, в случае если в будущем вдруг надо срочно сменить название на кнопке или name кнокпи - то попутно надо рыскать по пхп коду где все эти проверки. А скрытыми полями можно унифицировать все формы сайта, завести скажем серию констант, а потом подставлять их значения в скрытое поле action например. define("USER_REGISTER", 12); define("USER_LOGIN", 17); define("USER_OPTIONS", 24); а при создании формы ... echo ' ... .... ';
-
не забывайте резать данные пришедшие от пользователя на чужеродные символы $str=eregi_replace('[^-a-z0-9]','',$_POST['user']); т.е. любой символ кроме тире, англ букв, и чифр вырезаем.
-
да, птичка это выход. Кстати как насчет того чтобы разработать максимально трудный для взлома и компроментации алгоритм авторизации? HTTPS не в счет, а такую авторизацию которую можно и новичку и профи сделать вручную на пхп.
-
А зачем в базу-то? не проще ли в саму сессию писать IP? а потом сравнивать $_SERVER['REMOTE_ADDR'] и $_SESSION['REMOTE_ADDR'] (внесенный туда при первой авторизации). имхо, разница в безопасности этих двух подходов не очень велика, потому зачем грузить мускул неррациональной задачей? может конечно база нужна в данном случае не только чтоб получать только IP и часть сессии, но и еще к-л информацию, но этого hummermania не указал А как насчет ситуации когда я сел за комп в общественном месте, авторизовался в защищенную часть сайта, и потом закрыл страницу, не закрывая браузер! Что получится. В его кукисах до самого закрытия для этого хоста будет храниться SESSID, набрав адрес хоста можно легко и просто попасть в защищеную часть сайта. Возможна ли такая ситуация? Конечно. А если в табле с юзверами храниться и время, когда последний раз запрашивалсь страничка любая, из защищенной части сайта. И при каждом вызове это время обновлять. Причем обновлять в случае когда время последнего захода не превысило определенный таймаут. Т.е. если я авторизованный пользователь. Для меня в сессиях храниться мой ИП, логин. А в табле в строке с моей учеткой дополнительно еще и время полсденей запрошенной страницы, еще раз ИП, часть сессИД. если я отошел оставив открытой страничку с админкой - то при попытке обновить старницу скрипт увидит что время последнего обнолвения превысило скажем 3-5 минут. вроде бы юзверь тот же, но а вдруг не тот же. Интервал превышен - в табле сбрасываю ИП, сессИД, время. А последующие строки проверок увидят что с этого адреса никто не авторизовывался! и всю процедуру можно начинать заново. Может немножко неудобно для модераторов - но безопасность превыше всего!
-
www.business-pmr.com Бизнес-справочник предпринимателей и бизнесменов Приднестровья. Плюс бесплатные объявления. Прошу оценить верстку, общий дизайн, и юзабилити - в плане навигации, добавления обьявлений, сообщений в гостевой. И если возможно такое - проанализировать на взлом ))) SQL инъекции, дефейс и че там еще хацкеры придумывают.
-
Можно ли закруглить таблицу с CSS без изображений?
hummermania replied to Eternal's question in HTML Coding
бордер у таблы = 0 и вставляем картинки со скругленными краями - и всем хорошо. -
а кто заметил что картинка налезает на панель инструментов фаерфокса? думаю никакие ухищрения и коды не сделают так чтобы картинка легла поверх браузера. Или пишите плагин на C++ или Дельфи для браузера - тогда по эркану можно и бегающих кошек понапускать... )))
-
а обычная проверка на валидность ЦСС разве не помогает?
-
Кажись на форуме уже проскакивала эта тема и ктось любезно подкинул ссылку про мод-реврайт http://sitemaker.ru/technologies/webserver/mod_rewrite/
-
Как? Деактивация ссылки на время посещения.
hummermania replied to 100kd's topic in Tricks and solutions
пишите сайт с нуля - там можно сделать все что заблагорассудится -
буферизация вывода може помочь. при вызове сешин-старт что происходит? в недрах апача на вебсервере в недоступной для внешнего мира папке создается файл с именем session_сессионИД - если я верно помню. а внего толкаются переменные при вызовах сешин-регистер. А кроме того пхп готовит отослать Header для этого файла. А хедер не отсылается если был вывод.
-
точнее if(isset($_post['check']) AND $_post['check']=='check_form')
-
я бы добавил в форму скрытое поле а в пхп скрипте проверял бы его. Тогда уж точно форма была отправлена. а в скрипте if(isset($_post['check']) AND $_post['check']=='check') { работаем дальше....