Leaderboard
Popular Content
Showing content with the highest reputation on 12/19/2011 in Posts
-
2 points
-
Здравствуйте. Прошу оценить верстку по всем критериям и дать критику... http://p.deamind.com/fifabook/index.html1 point
-
Это уже было и человеку тогда объяснили что "не вариант". Теперь люди, начинающие такие серьезные стартапы, почитали форум, стали грамотные, наученные. Думаю, тут все 4$ светят.1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
Если через addEventListener, то никак. Весело, правда? И после этого мне говорят, что навешивание обработчиков через addEventListener это true, а через атрибуты - не true, отстой, прошлый век, некошерно, по-ламерски, и вообще руки за такое отрывать.1 point
-
1 point
-
Быть может это произошло по причине того, что автор попросил критики его верстки, а не чтобы ему написали, что кому-то там что-то понравилось, так как автора такой комментарий ровным счетом бесполезен, а учитывая, что у комментатора это был единственный комментарий, то можно было бы предположить, что это банальный спамер-бот. Смотрите как-бы второй минус не поставили за "обидки"1 point
-
Если "новое на сайте" будет включать в себя новые "статьи", то верстка никакая, ибо, имхо, главной задачей всегда стоит правильная расстановка приоритетов, оптимизация полезного пространства. А в данном случае сайт выглядит перегруженным и без "лица". Под лицом в таких случаях подразумевается некая "главная новость" или "новость дня" с большым полем для описания и картинки. На хабре была хорошая статья на тему оптимизации пространства, почиай http://habrahabr.ru/blogs/web_design/63358/ Мое мнение - если сайт для игрушки, то требованиям он совсем не соответствует. Нет вов-эффекта, поля перегружены ненужной лишней инфой (сам подумай, с какой целью люди заходят на сайт, посвященный игрушке?), цвета многих хэдеров абсолютно нелогично подобраны, а главное, я не вижу никакой логики в подборках рубрик (например, "статьи" и "новое на сайте"). Может быть, наши взгляды расходятся. Да, и еще. Контраста жутко мало.1 point
-
нижний рекламный баннер ужимается логотип можно было ссылкой сделать. ошибки валидации незначительные - можно было бы исправить не сильно напрягаясь. а вообще нормально1 point
-
Вы хоть сами его делали ?! http://deamind.com/ (улыбнул title) © P. Lyulya (Deamind), 2011 | Все права защищены. http://p.deamind.com/fifabook/index.html Designed by predat0r. © Copyright FIFAWORLD.RU 20111 point
-
А добавьте там что-нибудь в коде или уберите. И все заработает, гарантирую.1 point
-
Базы данных или файлы? Перед тем как сесть писать новый скрипт вы точно хоть раз, но задумывались ? писать его с использованием баз данных(БД) или все так же, как привыкли ? на файлах? Эта статья на примере гостевой книги поможет вам сделать выбор в правильную сторону. Как мы работаем с файлами? Заранее условимся, что функция file() это упрощение того, что описано ниже? Работать с файлами легко. Это делается примерно в 3 этапа: 1. Открыл файл 2. Считал всю(или часть) информацию 3. Закрыл файл Теперь(с точки зрения скрипта) мы имеем просто кучу символов разделенных переводом строки. Делаем разбиение по строкам и получаем уже массив строк файла. Но заранее, когда мы создавали файл, мы условились, что данные будут разделены символом ?|?. 1. a) Павел б) pavel@mail.ru в) 43284343 г) Привед, классный у тебя сайтик?! 2. а) Александра б) alex-sashka@gmail.com в) 384323 г) Приветик, кот?нок, суперовый сайтик! 3. а) Евгений б) gg_potstolom@pochta.ru в) 11132342 г) ЫЫЫ... Здарова, чертяко! a) ? имя посетителя ? адрес почтового ящика c) ? номер ICQ d) ? сообщение Теперь перебирая каждую строку, разбиваем е? на ?подстроки?. Зная позицию каждой подстроки, мы можем сказать где находиться имя посетителя, а где его сообщение. Дело за малым ? вывести все красиво на страницу. Чтобы добавить сообщение нам нужно: 1. Открыть файл для добавления 2. Записать в конец данные 3. Закрыть файл Еще нам нужно следить за тем, чтобы в файл попали данные без специального, условленного символа-разделителя ? ?|? и данные без ?перевода строки?! Итак, мы формируем строчку вида: ?имя пользователя?|?адрес почты?|?номер ICQ?|?сообщение? Сохраняем в файл и радуемся жизни! Как выглядит работа с файлами в Php-коде: <html> <head> <title>Пример гостевой книги на файлах</title> </head> <body> <form action="?action=add_post" method="post"> <p>* Имя посетителя:</p> <p><input name="name" type="text"></p> <p>* Электронная почта:</p> <p><input name="email" type="text"></p> <p>ICQ:</p> <p><input name="icq" type="text"></p> <p>* Сообщение:</p> <p><textarea name="message" rows=5 cols=20></textarea></p> <p><input type="submit" value="Добавить сообщение"></p> </form> <?php if( @$_GET['action'] == "add_post" ) // Если мы хотим добавить сообщение { if( !empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']) ) // Проверяем на наличие обязательных данных { // Удаляем запрещенные символы $name = str_replace('|', '!', htmlspecialchars(strip_tags($_POST['name']))); $email = str_replace('|', '!', htmlspecialchars(strip_tags($_POST['email']))); $icq = str_replace('|', '!', htmlspecialchars(strip_tags($_POST['icq']))); $message = str_replace('|', '!', htmlspecialchars(strip_tags($_POST['message']))); $fp = @fopen ("guestbook.txt", "a+"); // Открываем файл для добавления в конец if( @fwrite ($fp, "$name|$email|$icq|$messagen") ) // Проверяем на успешность записи в файл { print "<p style='color:green;'>Сообщение успешно добавлено!</p>"; } @fclose ($fp); // Закрываем файл } else { print "<p style='color:red;'>Введены не все данные!</p>"; } } ?> <hr> <?php $fp = @fopen ("guestbook.txt", "r"); // Открываем файл для чтения $gb_content = @fread($fp, filesize("guestbook.txt")); // Читаем все символы из файла @fclose ($fp); // Закрываем if( !empty($gb_content) ) { $gb_content = split("n", $gb_content); // Разбили на строки for( $i=0; $i<count($gb_content)-1; $i++ ) { list( $gb_name, $gb_email, $gb_icq, $gb_message ) = explode('|', $gb_content[$i]); // Разбиваем на подстроки и получаем соответствующие данные // Выводим сообщение print "<p style='color:blue;'><a href='mailto:$gb_email'>$gb_name</a> ICQ: $gb_icq</p>n"; print "<p>$gb_message</p>n"; print " n"; } } else { print "Гостевая, увы, пуста!"; } ?> </body> </html> Как мы работаем с базой данных(БД)? Что бы работать с БД нам необходим хостинг с поддержкой хотя бы MySQL. В этом конечно виден явный минус БД, но все по порядку? Работать с БД не так уж и сложно, как это представляется начинающим программистам! Главное научиться составлять запросы(а это просто как 2*2), и не бояться столкнуться с десятком новых терминов. БД работает почти точно так же как и файлы: 1. Открываем БД 2. Читаем/записываем данные 3. Закрываем Главным отличием является то, что мы получаем не кучу символов, а уже упорядоченный массив данных! То есть мы не морочим себе голову вопросами ? ?А какой поставить разделитель??, ?Как разбить на подстроки??, ?Каким по порядку идет поле, к примеру, номер ICQ??, ?Как отфильтровать входные данные на предмет перевода строки??. Вс? это уже предусмотрено базой данных? Созда?м БД, в ней таблицу guestbook с соответствующими полями: 1) ? имя посетителя 2) ? адрес почтового ящика 3) ? номер ICQ 4) ? сообщение Заполняем данными? Получаем: +——-+———+——-+——————-+ | Имя | Email | ICQ | Сообщение | +——-+———+——-+——————-+ | Павел | pav... | 123232| Привет.. | +——-+———+——-+——————-+ | Лелик | lelik.. | 23232 | Здароф.. | +——-+———+——-+——————-+ ...................................... Осталось только соедениться с БД и сделать запрос на выборку данных: SELECT * FROM guestbook Слово SELECT означает операцию ?чтения? данных. Символ ?*? ? что нам нужны поля: ?имя посетителя?, и ?почтовый адрес?, и ?номер ICQ?, и ?сообщение?, В общем все данные. FROM guestbook ? означает, что данные мы хотим прочитать из таблицы ?guestbook?. Грубо говоря таблица ? это и есть файл. Чтобы записать данные в БД просто выполняем запрос: INSERT INTO guestbook(?имя посетителя?, ?адрес почтового ящика?, ?номер ICQ?, ?сообщение? ) VALUES (?Иван?, ?ivan@sobaka.ru?, ?123456?, ?Я Иван! Повелитель гостевых книг!?) INSERT ? говорит нам, что это операция вставки, ?guestbook? ? таблица для вставки, дальше перечислены поля в которые необходимо записать данные, VALUES ? означает что дальше идет перечисление самих данных через запятую. Этой операции вполне достаточно чтобы в гостевой книге появилась новая запись. Как выглядит работа с БД в Php-коде: Прежде чем опробовать код вам нужно создать БД с названием guestbook. В этой БД создать таблицу guestbook с полями id, name, email, icq, message. Или просто выполнить SQL запрос: CREATE TABLE `guestbook` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR( 50 ) NOT NULL , `email` VARCHAR( 70 ) NOT NULL , `icq` VARCHAR( 10 ) NOT NULL , `message` TEXT NOT NULL , PRIMARY KEY ( `id` ) ); Код гостевой: <html> <head> <title>Пример гостевой книги с использованием БД</title> </head> <body> <form action="?action=add_post" method="post"> <p>* Имя посетителя:</p> <p><input name="name" type="text"></p> <p>* Электронная почта:</p> <p><input name="email" type="text"></p> <p>ICQ:</p> <p><input name="icq" type="text"></p> <p>* Сообщение:</p> <p><textarea name="message" rows=5 cols=20></textarea></p> <p><input type="submit" value="Добавить сообщение"></p> </form> <?php $db = mysql_connect('localhost', 'root', ''); // Подключаемся к базе данных mysql_select_db('guestbook', $db); // Выбираем таблицу guestbook с которой будем работать if( @$_GET['action'] == "add_post" ) // Если мы хотим добавить сообщение { if( !empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']) ) // Проверяем на наличие обязательных данных { // Удаляем запрещенные символы $name = htmlspecialchars(strip_tags($_POST['name'])); $email = htmlspecialchars(strip_tags($_POST['email'])); $icq = htmlspecialchars(strip_tags($_POST['icq'])); $message = htmlspecialchars(strip_tags($_POST['message'])); // Формируем запрос для добавления $query = "INSERT INTO guestbook(name, email, icq, message) VALUES ('$name', '$email', '$icq', '$message')"; $result = mysql_query( $query, $db ); // Выполняем запрос if( $mysql_error = mysql_error( $db ) ) // Если возникли какието ошибки, то выводим их { print $mysql_error; } else { print "<p style='color:green;'>Сообщение успешно добавлено!</p>"; } } else { print "<p style='color:red;'>Введены не все данные!</p>"; } } ?> <hr> <?php // Формируем запрос на получение данных $query = "SELECT * FROM guestbook"; $result = mysql_query( $query, $db ); // Выполняем запрос if( mysql_num_rows( $result ) > 0 ) // Проверяем колличество полученных строк { while( $gb_content = mysql_fetch_array( $result ) ) // Читаем по-очереди каждую строку { // Выводим сообщение print "<p style='color:blue;'><a href='mailto:$gb_content[email]'>$gb_content[name]</a> ICQ: $gb_content[icq]</p>n"; print "<p>$gb_content[message]</p>n"; print " n"; } } else { print "Гостевая, увы, пуста!"; } ?> </body> </html> Про безопасность Львиную долю времени занимает обеспечение безопасности скрипта. То есть зачем нам скрипт, если его легко могут вывести из строя? Ситуация с файлами обстоит плачевна? Иногда забывают ?закрывать? файлы от чтения из вне и вс? содержимое гостевой, а может и списка зарегистрированных пользователей с паролями и почтовыми адресами попадает в руки к злоумышленникам. Забывают экранировать ввод нового сообщения и вся информация в гостевой превращается в кашу? Базы данных тоже не лишены недостатков. Если программист не проверяет передаваемые из формы данные на правильность, то злоумышленник спокойно может прочитать, к примеру, список всех пользователей, или зайти под другим ником. Данный вид хака называется SQL Injection. Работы в улучшении защиты уже ведутся давно. Например, в библиотеке DbSimple от DKLab это решено с помощью placeholder-ов. Выводы Я, например, работаю с БД, выбирая тем самым безопасность и структурированность моих данных, но и не отрицаю использование файлов. Например, есть хорошие способы хранения данных в файлах: 1. Использование функций serialize() и unserialize() 2. Хранение в ini-файлах Иногда приходиться пользоваться и такими способами. Список литературы для углубленного изучения 1. Основы работы с MySQL в PHP 2. "Работа с MySQL в PHP: с чего начать?" 3. Работа с MySQL в PHP: подробно (PHP, MySQL, веб-программирование) 4. Обучающая статья от ведущего разработчика phpMyAdmin Марка Делисла 5. Работа с MySQL: Подробнее(Как формировать запросы) 6. Библиотека DbSimple от DKLab Статьи не сильно объемные и не займут много времени, но зато ваш exp значительно возрастет. Для тех, кто привык читать документы MS Word.1 point
-
Предложения есть - добавить ответы, что бы не пришлось тратить кучу времени на выкладывание вопросов в топик и выслушивать сомнительные ответы. То что кто то получит от этого удовольствие я не сомневаюсь. Я по первому ответу в топике уже догадался, что тут мозг из за ответов не у кого не ленится, так сказать, словами автора. А вот на счёт монастыря есть сомнения, как только зашёл сразу минус в репу, какой то новый тип монастыря с маленькими рожками и длинным хвостиком.-1 points
-
Ребята, что это такое я только зарегистрировался а тут уже Репутация -1. Что такое, у кого это руки такие кривые. Товарищи администраторы Вы как то следите за такими вещами а особенно за такими криворукими пользователями. Я что мат написал или что ?????????!!!!!!!!!!!! Как я могу узнать кто мне поставил -1. Что это за дело, пришел на сайт самому научиться и что людям подсказать а тут сразу негативом обливают.-1 points
-
-1 points
This leaderboard is set to Kiev/GMT+02:00
-
Upcoming Events
No upcoming events found -
Сообщения форума
-
Доброго всем времени суток. Прошу помощи. Научите принципу изменения футера. Движок Xenforo. Версия 2.2.10. Стиль дефолтный. Что именно нужно в итоге на фото примере. Мой шаблон app.footer less имеет следующее значение. .p-footer { .xf-publicFooter(); a { .xf-publicFooterLink(); } } .p-footer-inner { .m-pageWidth(); .m-pageInset(); padding-top: @xf-paddingMedium; padding-bottom: @xf-paddingLarge; } .p-footer-row { .m-clearFix(); margin-bottom: -@xf-paddingLarge; } .p-footer-row-main { float: left; margin-bottom: @xf-paddingLarge; } .p-footer-row-opposite { float: right; margin-bottom: @xf-paddingLarge; } .p-footer-linkList { .m-listPlain(); .m-clearFix(); > li { float: left; margin-right: .5em; &:last-child { margin-right: 0; } a { padding: 2px 4px; border-radius: @xf-borderRadiusSmall; &:hover { text-decoration: none; background-color: fade(@xf-publicFooterLink--color, 10%); } } } } .p-footer-rssLink { > span { position: relative; top: -1px; display: inline-block; width: 1.44em; height: 1.44em; line-height: 1.44em; text-align: center; font-size: .8em; background-color: #4682B4; border-radius: 2px; } .fa-rss { color: white; } } .p-footer-copyright { margin-top: @xf-elementSpacer; text-align: center; font-size: @xf-fontSizeSmallest; } .p-footer-debug { margin-top: @xf-paddingLarge; text-align: right; font-size: @xf-fontSizeSmallest; .pairs > dt { color: inherit; } } @media (max-width: @xf-responsiveMedium) { .p-footer-row-main, .p-footer-row-opposite { float: none; } .p-footer-copyright { text-align: left; padding: 0 4px; // aligns with other links } }
-
Нужны сайты с примерами верстки, типа https://css-tricks.com/. Типовые приемы и нестандартные на все случаи жизни. Накидайте ссылок.
-
By Katerina23 · Posted
Да, подходит. Спасибо. -
<input type="number">
-
By Katerina23 · Posted
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке. Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
-