Leaderboard


Popular Content

Showing content with the highest reputation on 12/19/2011 in all areas

  1. 2 points
    ShumNo Спасибо,сейчас я исправлю свою критику по поводу сайта приведенного автором.
  2. 1 point
    Здравствуйте. Прошу оценить верстку по всем критериям и дать критику... http://p.deamind.com/fifabook/index.html
  3. 1 point
    Это уже было и человеку тогда объяснили что "не вариант". Теперь люди, начинающие такие серьезные стартапы, почитали форум, стали грамотные, наученные. Думаю, тут все 4$ светят.
  4. 1 point
    Можно. Мы официально разрешаем.
  5. 1 point
    Случаем ни 3$ за первый месяц?
  6. 1 point
    Это права на пиратские копии фильмов?
  7. 1 point
    Если через addEventListener, то никак. Весело, правда? И после этого мне говорят, что навешивание обработчиков через addEventListener это true, а через атрибуты - не true, отстой, прошлый век, некошерно, по-ламерски, и вообще руки за такое отрывать.
  8. 1 point
    Нет. Php выполняется на стороне сервера, а swf player - на стороне клиента.
  9. 1 point
    Быть может это произошло по причине того, что автор попросил критики его верстки, а не чтобы ему написали, что кому-то там что-то понравилось, так как автора такой комментарий ровным счетом бесполезен, а учитывая, что у комментатора это был единственный комментарий, то можно было бы предположить, что это банальный спамер-бот. Смотрите как-бы второй минус не поставили за "обидки"
  10. 1 point
    Если "новое на сайте" будет включать в себя новые "статьи", то верстка никакая, ибо, имхо, главной задачей всегда стоит правильная расстановка приоритетов, оптимизация полезного пространства. А в данном случае сайт выглядит перегруженным и без "лица". Под лицом в таких случаях подразумевается некая "главная новость" или "новость дня" с большым полем для описания и картинки. На хабре была хорошая статья на тему оптимизации пространства, почиай http://habrahabr.ru/blogs/web_design/63358/ Мое мнение - если сайт для игрушки, то требованиям он совсем не соответствует. Нет вов-эффекта, поля перегружены ненужной лишней инфой (сам подумай, с какой целью люди заходят на сайт, посвященный игрушке?), цвета многих хэдеров абсолютно нелогично подобраны, а главное, я не вижу никакой логики в подборках рубрик (например, "статьи" и "новое на сайте"). Может быть, наши взгляды расходятся. Да, и еще. Контраста жутко мало.
  11. 1 point
    нижний рекламный баннер ужимается логотип можно было ссылкой сделать. ошибки валидации незначительные - можно было бы исправить не сильно напрягаясь. а вообще нормально
  12. 1 point
    Вы хоть сами его делали ?! http://deamind.com/ (улыбнул title) © P. Lyulya (Deamind), 2011 | Все права защищены. http://p.deamind.com/fifabook/index.html Designed by predat0r. © Copyright FIFAWORLD.RU 2011
  13. 1 point
    А добавьте там что-нибудь в коде или уберите. И все заработает, гарантирую.
  14. 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.
  15. -1 points
    Предложения есть - добавить ответы, что бы не пришлось тратить кучу времени на выкладывание вопросов в топик и выслушивать сомнительные ответы. То что кто то получит от этого удовольствие я не сомневаюсь. Я по первому ответу в топике уже догадался, что тут мозг из за ответов не у кого не ленится, так сказать, словами автора. А вот на счёт монастыря есть сомнения, как только зашёл сразу минус в репу, какой то новый тип монастыря с маленькими рожками и длинным хвостиком.
  16. -1 points
    Ребята, что это такое я только зарегистрировался а тут уже Репутация -1. Что такое, у кого это руки такие кривые. Товарищи администраторы Вы как то следите за такими вещами а особенно за такими криворукими пользователями. Я что мат написал или что ?????????!!!!!!!!!!!! Как я могу узнать кто мне поставил -1. Что это за дело, пришел на сайт самому научиться и что людям подсказать а тут сразу негативом обливают.
  17. -1 points
    передаю переменную методом $.get() перемененная кириллическая строка php ее не принимает
This leaderboard is set to Kiev/GMT+03:00
  • Upcoming Events

    No upcoming events found
  • Blog Entries

  • Сообщения форума

    • Если в кратце, проблема возникает из за того что когда заходим на страницу изначально текущий урл страницы
      http://localhost:3004/tablets/tablet_1
      Если мы покликаем по табам (у которых тоже реализован роутинг и к урлу добавляется еще значение)
      То урл будет менять свое значение например на 
      http://localhost:3004/tablets/tablet_1/characteristics
      И вот, допустим у нас сейчас этот урл и если страница перезагрзиться, то реакт будет считать что текущий урл уже
      http://localhost:3004/tablets/tablet_1/characteristics
      а не 
      http://localhost:3004/tablets/tablet_1 как предполагается
      И из за этого возникают проблемы
      Могут быть вот такие страницы 
      localhost:3004/tablets/tablet_1/characteristics/characteristics А так быть не должно. Подскажите как решить такую проблему
      Если подробнее:
      Делаю Интернет-магазин на Реакте (в рамках учебного проекта)
      На данный момент сделал роуты для нескольких страниц 
      [JS]
      <Route path="/" ... /> // главная страница
      <Route path="/tablets"  ... />  // страница категорий
      <Route path="/tablets/:id"  ... /> // детальная страница товара
      [/JS]
      И это все работает хорошо Проблема с роутингом началась когда я начал делать табы на детальной странице товара. Их я тоже хотел сделать через роутинг.
      [JS]
      <Route path="/tablets/:id/characteristics"  ... />
      <Route path="/tablets/:id/opinion"  ... />
      <Route path="/tablets/:id"  ... /> // по дефолту
      [/JS]
      Пути у табов:
      [JS]
      to=`${ текущий урл страницы }/characteristics` // Таб "Характеристки"
      to=`${ текущий урл страницы }/opinion` // Таб Отзывы
      to=`${ текущий урл страницы }` // Таб "Описание" (по дефолту)
      [/JS] http://skrinshoter.ru/s/221019/1f36Q0Gw И это работает исправно, до тех пор пока страница не перезагрузиться.
      Прикол в том, что если мы кликали по табам, урл менялся и допустим стал таким : http://localhost:3004/tablets/tablet_1/characteristics
      И потом вдруг страницу перезагрузили А при перезагрузке страницы текущий адрес получается уже http://localhost:3004/tablets/tablet_1/characteristics     а не   http://localhost:3004/tablets/tablet_1     как задумывалось.     Из-за этого возникают проблемы когда кликаешь по табам:     адрес получается уже      http://localhost:3004/tablets/tablet_1/characteristics/characteristics     http://skrinshoter.ru/s/221019/eTe8ZW5F Вот в этом и проблема. Как такое решить?
      Дело в том что location.pathname я передаю через props дочернему компоненту, он принимает его и в state я добавляю ему
      [JS]`${ this.props.pathName }/characteristics`[/JS]Вот код, как это выглядит:
        class App extends Component {   render() {     <Switch>         <Route path="/" exact={true} component={ CategoriesList }/>       <Route path="/tablets/:id/characteristics"         render={ ({ match, location }) => {           const { id } = match.params;           return <DetailPage itemId={ id } currentTab="characteristics" pathName={ location.pathname } />         }}/>       <Route path="/tablets/:id/opinion"         render={ ({ match, location }) => {           const { id } = match.params;           return <DetailPage itemId={ id } currentTab="opinion" pathName={ location.pathname } />         }}/>       <Route path="/tablets/:id"         render={ ({ match, location }) => {           const { id } = match.params;           return <DetailPage itemId={ id } currentTab="description" pathName={ location.pathname } />         }}/>       <Route path="/tablets"         render={({ location }) =>           <CategoryPage             goodList={goodsList.tablets}             title="Tablets"             location={ location }             exact={true}             />}       />     </Switch>   } } class DetailPage extends Component {   state = {     tabs: {       opinion: {         tabId: 'opinionTab',         tabTitle: 'Отзывы',         tabPathTo: `${ this.props.pathName }/opinion`,         tabContent: 'Контент отзывов'       },       characteristics: {         tabId: 'characteristicsTab',         tabTitle: 'Характеристики',         tabPathTo: `${ this.props.pathName }/characteristics`,         tabContent: 'Контент Характеристик'       },       description: {         tabId: 'descriptionTab',         tabTitle: 'Описание',         tabPathTo: `${ this.props.pathName }`,         tabContent: 'Контент описания'       }     }   };   findCurrentGood(goodsList, itemId) {     for (let key in goodsList) {       goodsList[key].forEach(category => {         if (category.id === itemId) {           this.currentGood = category         }       })     }   }   findCurrentTab() {     for (let key in this.state.tabs) {       if (key === this.props.currentTab) {         this.activeTab = this.state.tabs[key];       }     }   }   render() {     const { goodsList, itemId, currentTab, pathName } = this.props;     const { tabs } = this.state;     this.findCurrentGood(goodsList, itemId);     this.findCurrentTab();               return() {       <div className="tabs">             <div className="tabs__menu">               {                 Object.keys(tabs).map(tab => {                   const tabClass = classNames('tabs__link', {                     'tabs__link--active' : tab === currentTab                   });                   return (                     <Link key={ tabs[tab].tabId }                           to={  tabs[tab].tabPathTo }                           className={ tabClass } >                       { tabs[tab].tabTitle }                     </Link>                   )                 })               }             </div>             <div className="tabs__content">               <h3 className="info__title">{ this.activeTab.tabTitle }</h3>               <div className="info__text">                 { this.activeTab.tabContent }               </div>             </div>           </div>     }   } }  
    • Создали Landing Page на тематику "Межевание земельного участка" Сделано: - С нуля разработана концепция и структура Landing page;
      - Разработан стильный и современный дизайн;
      - Наполнили контентом;
      - Качественная верстка и программирование сайта (быстрая загрузка, чистый, валидный код);
      - Подобрали хостинг и домен для клиента, установили и настроили сайт, установили админку Клиент на выходе получил полностью готовый для работы Landing Page Срок изготовления - 2 недели Если вам нужен качественно представить свою услугу, товары или компанию пишите по контактам ниже, сделаем вам крутой веб-ресурс, будь то Landing Page, Сайт многостраничник, Интернет-магазин.
      По невысокой цене и разумные сроки
      Контакты: Телеграм: @Nikker
      Скайп: smo_perviy
      E-Mail: Golllandec@gmail.com    
    • Здравствуйте. Предоставьте, пожалуйста, ссылку на сайт
    • Файл стилей работает на компьютере, а на телефоне просто слетает.
    • да я про это. Только здесь ошибка. Так слово Вам зависнет на верхней строке. Короткие слова нужно привязывать к тем длинным словам, что идут после коротких. Если ширина блока фиксированная, можно так обработать только концы строк, но если блок резиновый желательно пройтись по всему тексту. Если позволяет редактор можно процесс ускорить набрать текст, а потом с зажатым Ctrl прокликать мышью все места в которых возможно зависание, а уже затем вписывать неразрывный пробел.