П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3503 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6104 раз(а).

Учебник HTML.
Просмотров 3267 раз(а).

Руководство по PHP5.
Просмотров 5486 раз(а).

Хостинг через призму DNS.
Просмотров 4125 раз(а).

Подборка текстов стандартных документов.
Просмотров 55763 раз(а).

Учебник PHP - Самоучитель
Просмотров 3078 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5485 раз(а).

Внешние атаки...
Просмотров 3824 раз(а).

Учебник PHP.
Просмотров 2819 раз(а).

SSI в примерах.
Просмотров 37454 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





ГЛАВА 10. Формы

Проект: гостевая книга

С первых дней World Wide Web разработчики сайтов стремились к тому, чтобы посетители могли поделиться своими мыслями и комментариями по поводу сайта. На сайтах эта возможность обычно называется «гостевой книгой»(guestbook). Я покажу, как легко создать гостевую книгу при помощи форм HTML, средств обработки форм РНР и текстового файла.

Прежде всего создается инициализационный файл, содержащий некоторые глобальные переменные и функции приложения(листинг 10.10).

Листинг 10.10. Файл init.inc, используемый при создании гостевой книги

<?
// Файл: init.inc
// Назначение: глобальные переменные и функции для проекта гостевой книги

// Заголовок страницы по умолчанию
$title = "My Guestbook";

// Цвет фона
$bg_color = "white";

// Гарнитура шрифта
$font_face = "Arial, Verdana, Times New Roman";

// Цвет шрифта
$font_color = "black";

// Дата отправки 
$post_date = date("M d y");

// Файл данных гостевой книги
$guest_file = "comments.txt";

// Функция читает данные гостевой книги и отображает их в браузере
function view_guest($guest_file) {

  GLOBAL $font_face, $font_color;

  print "Return to <a href=\"index.php\">index</a>,<br><br>";

  // Если в файле гостевой книги имеются данные...
  if(filesize($guest_file) > 0) :

    // Открыть файл данных гостевой книги
    $fh = fopen($guest_file. "r") or die("Couldn't open $guest_file");

    print "<table border=1 cellpadding=2 cellspacing=0 width=\"600\">";

    // Повторять до конца файла
    while(! feof($fh)) :

      // Прочитать следующую строку
      $line <= fgetsdfh, 4096);

      // Разбить строку на компоненты и присвоить каждый компонент переменной
      list($date. $name, $email, $comments) = explode("|", $line):

      // Если указано имя посетителя, вывести его
      if($name != "") :
        print "<tr>":
        print "<td><font color=\"$font_co!or\" face=\"$font_face\">Date:</font></td>";
        print "<td><font color=\"$font_color\" face=\"$font_face\">$date</font></td>";
        print "</tr>";
        print "<tr>";
        print "<td><font color=\"$font_color\" face=\"$font_face\">Name:</font></td>";
        print "<td><font color=\"$font_color\" face=\"$font_face\">$name</font></td>";
        print "</tr>";
        print "<tr>";
        print "<td><font color=\"$font_color\" face=\"$font_face\">Email:</font></td>";
        print "<td><font color=\"$font_color\" face=\"$font_face\">$email</font></td>";
        print "</tr>";
        print "<tr>";
        print "<td valign=\'top\"><font color=\"$font_color\" face=\"$font_face\">Message:</font></td>";
        print "<td><font color=\"$font_color\" face=\"$font_face\">$comments</font></td>";
        print "</tr>";
        print "<tr><td colspan=\"2\">&nbsp:</td></tr>";
      endif;

    endwhile;

    print "</table>";

    // Закрыть файл
    fclose($fh);

  else :

    print "<h3>Currently there are no entries in the guestbook!</h3>";
  endif;
} // view_guest

// Функция сохраняет новую информацию в файле данных
function add_guest($name, $email, $comments) {

  GLOBAL $post_date, $guest_file;

  // Отформатировать данные для ввода ,
  $contents = "$post_date|$name|$email |$comments\n";

  // Открыть файл данных
  $fh = fopen($guest_file. "a") or dieC'Could not open $guest_file!");

  // Записать данные в файл
  $wr = fwrite($fh, $contents) or die("Could not write to $guest_file!");

  // Закрыть файл
  fclose($fh);

} // add_guest

?>

Затем создаются еще три файла: файл ссылок index.php, файл add_guest.php для вывода информации гостевой книги и файл view_guest.php для ввода новых данных. Файл index.php(листинг 10.11) просто отображает две ссылки для выполнения основных функций гостевой книги — просмотра и добавления новых данных. Эти ссылки легко включаются в сайт, имеющий более сложную структуру.

Листинг 10.11. Файл index.php со ссылками для просмотра и добавления новых данных в гостевую книгу

<html>
<?
INCLUDE("init.inc");
?>
<head>
<title><?=$page_title;?></title>
</head>
<body bgcolor="<?=$bg_color;?>" text="#000000" link="#808040" vlink="#808040" alink="#808040">
<a href="view_guest.html.php">View the guestbook!</a><br>
<a href="add_guest.html.php">Sign the guestbook!</a><br>
</body>
</html>

Файл view_guest.php(листинг 10.12) выводит всю информацию гостевой книги, хранящуюся в файле данных.

Листинг 10.12. Файл view_guest.php

<html>
<?
INCLUDE("init.inc");
?>
<head>
<t1tle><?=$page_title;?></t1tle>
</head>
<body bgcolor="<?=$bg_color:?>" text="#000000" link=" vlink="#808040" alink="#808040">

view_guest( $guest_file );

?>

Файл add_guest.php(листинг 10.13) запрашивает у пользователя новые данные для внесения в гостевую книгу. Введенная информация записывается в файл данных.

Листинг 10.13. Файл add_guest.php

<html>
<?
INCLUDE("init.inc");
?>
<head>
<title><?=$page_title:?></title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#808040" vlink="#808040" alink="#808040">
?<

// Если форма еще не отображалась - запросить данные у пользователя
if(! $seenform) :
  ?>
  <form action="add_guest.php" method="post">
  <input type="hidden" name="seenform" value="y">
  Name:<br>
  <input type="text" name="name" size="15" maxlength="30" value=""><br>
  Email:<br>
  <input type="text" name="email" size="15" maxlength="35" value=""><br>
  Comment: <br>
  <textarea name="comment" rows="'3" cols="40"></textarea><br>
  <input type="submit" value="submit">
  </form>

// Форма уже отображалась - добавить данные в текстовый файл.
else :
  add_guest($name, $email, $comment);
  print "<h3>Your comments have been added to the guestbook.
  <a href=\"index.php\">Click here</a> to return to the index. </h3>";
endif;
?>

К числу основных преимуществ модульной разработки приложений относится простота адаптации для других систем. Допустим, вы решили перейти от хранения данных в текстовом файле к использованию базы данных. Стоит изменить содержимое add_guest() и view_guest(), и ваша гостевая книга перейдет на работу с базой данных.

На рис. 10.8 показано, как выглядит гостевая книга после сохранения пары записей.

 

Рис. 10.8. Просмотр гостевой книги(view_guest.php)

Информация, показанная на рис. 10.8, хранится в файле данных в следующем виде:

Oct 29 00|Michele|michelle@latorre.com|I love cheese!

Oct 29 00|Nino|nino@latorre.com|Great site!

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru