Контакты

Для связи с нами можно использовать:
irc://irc.chatnet.ru:#gfs
icq://546460
email://cobalt[@]gfs-team.ru

Все материалы предоставлены только с ознакомительной целью
ГлавнаяСтатьиКодингПишем guestbook
© Cobalt 17.05.2006 статья не оптимизирована

 Написать гостевуху просто как два пальца об асфальт. Как ты наверно уже догадался
писать будем на великом и могучем (т.е. на PHP). Наша маленькая тулуза будет
сохранять сообщения от пользователей в базу данных (для этого мы заюзаем MySQL),
и позволять пользователю с ником Admin удалять непонравившиеся посты. Как
видешь сложного ни чего не будет.

 Для начала необходимо определиться какие будут храниться данные в базе. После
не долгого размышления не сложно догадатьсмя что понадобиться нам три поля. А
именно: дата, имя юзера и собственно сам текст. Все это мы успешно поместим
в одной таблице, которую назовем book. Кроме этих трех полей нам понядобиться
служебное поле ID с идентификатором поста. Это поле будет иметь свойство
AUTO_INCREMENT. Т.е. оно автоматически будет каждый раз увеличивать свое значение
на единицу.
 И так, создадим пустую таблицу в БД. Сделать это необходимо следующей командой:
 
 CREATE TABLE book (ID     INT(22)   AUTO_INCREMENT,
                    PDate  DATE,
                    Nick   VARCHAR(22),
                    Post   TEXT);
                    
 Созданая таким образом таблица будет оправдывать себя лишь только в том случае
если у нас очень маленькая гостевуха и в ней мало постов. А все по тому что
мы не указали тут ключей. Система ключей и индексов позволяет многократно
оптимизировать структуру БД. Выборка из таблицы с индексами осуществляется не
в пример быстрее. Во вторых, я думаю, тебе не хочется чтобы юзеры начали флудить
в твоем творении. Необходимо как-то их ограничить. Например запретить
повторяющиеся посты и ограничить их длинну. Поэтому давайте немного изменим наш
запрос:

 CREATE TABLE book (ID     INT(22)   AUTO_INCREMENT PRIMARY KEY,
                    PDate  DATE,
                    Nick   VARCHAR(22),
                    Post   VARCHAR(255) UNIQUE);
                    
 Теперь представь себе как должен выглядеть пользовательский интерфейс твоей
guestbook, и напиши его на HTML. Получиться у тебя (если упростить все и убрать
дизайн) что-то вроде этого:

 <form action="" method="POST">
 <table align="center">
  <tr>
   <td> 12.01.2006 Вася Пупкин: </td>
  </tr>
  <tr>
   <td> Клевый сегодня день! </td>
  </tr>
  <tr>
   <td> Ник: <input type="text" name="nick" value=""></td>
  </tr>
  <tr>
   <td><textarea name="post"></textarea></td>
  </tr>
  <tr>
   <td align="center"><input type="submit" name="b_post" value="Отправить"></td>
  </tr>
 </table>
 </form>

 Дальше надо заменить повторяющиеся участки кода на PHP. Для этого сначала выберем
все записи из базы данных.

 $connect=mysql_connect($host, $user, $pass); // замени на твои значения
 mysql_select_db($db);                        // $db - бд где наша таблица
 $sql="SELECT ID,                             //
              Nick,                           //
              Post,                           //
              DATE_FORMAT(PDate,'%d.%m.%Y') as PDate
         FROM book                            // собственно запрос
        ORDER BY PDate";                      //
 $res=mysql_query($sql);                      // выполняем запрос
 $i=0;
 while($m=mysql_fetch_assoc($res)){           // пока есть строки в таблице
    $mass[$i]=$m;                             // добавляем строку в массив
    $i++;
 }
 mysql_close($connect);
 
 В итоге в переменной $mass у нас будет массив со всеми постами. Как ты наверное
заметил, этот код упрощен донельзя. В нем отсутствет проверка на результат
конекта к бд, проверка на результат запроса и в случае если в таблице нет ни
одного поста, массив возвращен не будет. Втавлять проверки я предоставлю тебе
самому. Скажу лиш что перед этим кодом желательно вставить $mass=array();
 Отлично, теперь немного видоизменим наш HTML блок:
 
 <form action="" method="POST">
 <table align="center">
  <?php
   rsort($mass);
   foreach($mass as $m){
     print('<tr>
             <td> '.$m['PDate'].' '.htmlspecialchars($m['Nick']).':</td>
            </tr>
            <tr>
             <td> '.htmlspecialchars($m['Post']).' </td>
            </tr>');
    }
   ?>
  <tr>
   <td> Ник: <input type="text" name="nick" value=""></td>
  </tr>
  <tr>
   <td><textarea name="post"></textarea></td>
  </tr>
  <tr>
   <td align="center"><input type="submit" name="b_post" value="Отправить"></td>
  </tr>
 </table>
 </form>

 Массив с постами отсортирован в порядке возрастания, нам же необходимо чтобы
самые последние посты были вверху. По этому делаем rsort($mass). Функция
htmlspecialchars() призвана защитить нас от неблагонадежных юзеров которые решат
попытать твою гостевуху на XSS.
 Теперь сделаем добавление постов. Для этого в самое начало страницы поместим
следующий код:

 <?php
  if(isset($_POST['b_post'])){                      // проверяем нажатую кнопку
    if($_POST['post']=="" or $_POST['nick']==""){   // проверяем заполненость
      die("Не все поля заполнены");                 // полей
    }                                               //
    $connect=mysql_connect($host, $user, $pass);    // замени на твои значения
    mysql_select_db($db);                           // $db - бд где наша таблица
    $sql="INSERT INTO book SET                      //
                 Nick='".$_POST['nick']."',         //
                 Post='".$_POST['post']."',         //
                 PDate=SYSDATE()";                  //
    $res=mysql_query($sql);                         // выполняем запрос
  }
  mysql_close($connect);
 ?>

 Нам осталось сделать совсем не много. А именно систему удаления "кривых" постов.
Для этого можно создать страницу подобную этой, но с авторизацией. В цикле
вывода постов добавить print('<a href="?del='.$m['ID'].'">Удалить</a>');
и функцию добавления поста заменить на:

 <?php
  if(isset($_GET['del'])){                          // проверяем нажатую кнопку
    $connect=mysql_connect($host, $user, $pass);    // замени на твои значения
    mysql_select_db($db);                           // $db - бд где наша таблица
    $sql="DELETE FROM book WHERE ID='".$_GET['del']."'";
    $res=mysql_query($sql);                         // выполняем запрос
  }
  mysql_close($connect);
 ?>

 Ну вот собственно и все. Конечно в созданой нами тулузе отсутствует много того
чтобы хотелось иметь на свой страничке, но автор, при написании данной статьи,
не задавался целью создать комерческий продукт способный тягаться по
функциональности с гигантами програмного мира. Моя цель была в том чтобы показать
как реально использовать связку PHP - MySQL. Как известно все начинается с малого,
и смотришь, уже через пару лет ты станешь специалистом по разработке СУБД )

 Успехоф тебе в твоем начинании!



© Cobalt 17.05.2006 статья не оптимизирована

e-Commerce Partners Network
MaxMaw написал:

Всем привет. Буду рад общению.

DarioHug написал:


Подойдёт к такому домофон? Трубка УКП-66

JorgeSnivy написал:

I like all your posts. You've done really good job
writingcollegeessay37.blogspot.com/
howtowriteanintroforanessay.blogspot.com/
websitethatwritesessaysforyou129.blogspot.com/
howtowriteanessayconclusion74.blogspot.com/
howtowriteagreatessay724.blogspot.com/

valkoiset kesakengat написал:

At any berate you on to teach your kids to suppress, on no account erase that it’s in your pecuniary affinity to to dayfa.tiodto.se/kaunis-talo/valkoiset-kesaekengaet.php occupied in possession of that they recognize how to manage and flourish their own gelt as a replacement championing years to come. After all, you potency rely on your kids’ parsimonious habits to nurture you longing after you hang up your hat in the progress of good.

Tamara Gairbekov написал:

I shot myself in the foot by NOT negotiating with the collection agencies from removing me from the noty list. After paying off a +$8k car loan that went to collections in 2016 NOT knowing I was able to negotiate such deals. Now the company won’t get my name off & the collection won't leave my credit report even after the debt has been paid thus killing my credit. I called King Zeus on +1 4 0 7 9 0 0 6 2 9 9 after reading about his services on Youtube credit fix videos and he was able to remove the collection from my report in 3 days & also raised my score. This is absolutely miraculous and I'm telling y'all that he's a GENIUS!

lounas tampere lauantai написал:

How you pick upon to coach your kids to retrieve, not under any condition avoid that it’s in your pecuniary soft on of to guere.tiodto.se/hyvaeae-elaemaeae/lounas-tampere-lauantai.php sign unshakable that they arrogate in how to assume and multiply their own lolly in support of the purpose years to come. After all, you clout rely on your kids’ sensible habits to procure up the cudgels because you extensive after you shelved up your hat with a look at good.

esifgesqx написал:

Приглашаем инвесторов в проекты по Строительству в Респ Беларусь!



Предлагаем Вам участие в высокодоходном бизнесе с быстрой окупаемостью - строительство жилой и коммерческой недвижимости в Минске и Республике Беларусь.
Собран собственный пул проверенных подрядчиков по строительству и поставщиков материалов.
Сумма инвестиций от $ 200 000 до $ 10 000 000, в зависимости от проекта.
Срок реализации проектов 12-36 мес.
Быстрый старт выбранного проекта, поэтапное финансирование, полный контроль и прозрачная система работы. Бизнес-план на каждый проект отвечающий международным стандартам.
Доходность инвестиций 10-50% годовых.

Условия участия :
1. Инвестиции осуществляются посредством продажи долей юридического лица-Заказчика строительства, владеющего правами на зем. участок, проект, все разрешения; Возможно частичное и полное участие в проекте. Полная продажа девелоперского проекта.
2. Сумма инвестиций рассматривается от $ 200 000 до $ 10 000 000, Деньги, Банк гарантия, и др;
3. Срок инвестиций 12-36 месяца;
4. Промежуточные выплаты;
5. Доходность инвестиций 10-50% годовых.
Подрядная организация - Опыт строительства домов 20 лет.

Разные варианты входа и выхода в проект, 100% гарантия возврата вложений, подробности оговариваются
в индивидуальном порядке.
Большой и успешный опыт в сфере строительства жилых комплексов, ряд проектов реализовано.

Инвест.компания Республики Беларусь

Телефон: +375293629000

XRumerTest написал:

Hello. And Bye.

XRumerTest написал:

Hello. And Bye.

XRumerTest написал:

Hello. And Bye.

Don Alan написал:

Debt Almost took off my head, it's has been a serious problem dealing with debt My banks couldn't allow me to rest a bit. They keep texting and sending letters because they need their money back and i have no way out to get that before i ran to a friend for help and explain my worried to him. he advise me to meet with Rich Hacker wish i did with immediately effect, He was so kind with affordable price and i agree to his condition. He pay off the debt worth of $205,000.00 and help me Apply for A Business Loan of 50,000 dollars. If you really need his help also get him: RICHSKRENTACYBERSERVICE at GMAIL dot COM

XRumerTest написал:

Hello. And Bye.

meld deg pa tv program написал:

A quarters media apartment allows the viewer to pick what to conserve and when to watchful of it, including giving them the faculty to moratorium purport fitting on the side of bathroom breaks or rewind alblan.se/vakkert-hus/meld-deg-p-tv-program.php if they missed something. The plethora of get-at-able contentedness providers means that viewers can pet from a widespread slack the stamp heterogeneity of stacks, including one-time and eg tame and unskilled at films, TV shows, sporting events, and documentaries.

XRumerTest написал:

Hello. And Bye.

XRumerTest написал:

Hello. And Bye.

RachaelByday написал:

Желание унизить студентов и заработатьна этом у Сорокиной Екатерины Александровны просыпаются перед защитой диплома!
Она не по-наслышке знает, как защита важна и ДОРОГА для студентов.
Доцент кафедры Сорокина Екатерина Александровна, войдя в сговор с Климовой Д.В., заведующим кафедрой - В.А. Аксеновым, не то что кошельки вытрясут бедным студентам, но и душу!
Нескончаемые надуманные недостатки по оформлению работ с намеком на возрастающую стоимость защиты!
Ввиду своей личной несостоятельности, Сорокина Екатерина Александровна особое внимание уделяет своим одногодкам. С особой жестокостью относится к будущим мамам.

uusi suomen kielen sanakirja написал:

How you pick upon to direct your kids to sponsor, not at all consign to extinction that it’s in your pecuniary tip to tiobi.tiodto.se/kaeytaennoen-artikkeleita/uusi-suomen-kielen-sanakirja.php convey fixed that they knock off in how to head and mellow their own gelt in the course of years to come. After all, you muscle rely on your kids’ thrifty habits to promote you ravenousness after you be standing on up your hat recompense good.

KennyCoori написал:

Twitter hack
Hack Twitter
Twitter hacking
Twitter account hack
Twitter hack account
hacking Twitter
Twitter password hack
Twitter hack account
hack Twitter account
Twitter password
Twitter crack
Twitter password hackin

Ник:

Текст:
P Br B I Qute



Код: обновить
Последние комментарии
20.11.2019 16:44:39 KennyCoori написал:
Twitter hack Hack Twitter Twitter hacking Twitter account hack Twitter hack...
Пишем guestbook
20.11.2019 14:16:06 uusi suomen kielen sanakirja написал:
How you pick upon to direct your kids to sponsor, not...
Пишем guestbook
20.11.2019 00:22:12 RachaelByday написал:
Желание унизить студентов и заработатьна этом у Сорокиной Екатерины Александровны просыпаются...
Пишем guestbook
Реклама

Тут должна была быть ваша реклама, но мы потеряли глиняную табличку с ее текстом. SapeId: 665044

Rambler's Top100