My:PHP:Guest

Материал из synset
Перейти к: навигация, поиск

Файл guest.php

 
<HTML>
<HEAD>
<TITLE>Гостевая книга</TITLE>
</HEAD>
<BODY>
<?
   $d = dir("records");
   $i=0;
   while($entry=$d->read()) {
      if (substr($entry,0,3)=="rec"){
         $names[$i]=substr($entry,4);
         $i++;
      }
   }
   $d->close();
   @rsort($names);
   $count=$i;
   $cnt=$count;
   if (empty($start)) $start=0;
   $start=intval($start);
   if ($start<0) $start=0;

   print "<center>";
   if ($count>$start+10) $count=$start+10;
   if ($start!=0)
   print "[ <A href=guest.php?start=".($start-10).">Предыдущие</A> ]";
   print " [ <a href=guest_add.php>Добавить запись</A>] ";
   if ($cnt>$start+10)
      print "[ <A href=guest.php?start=".($start+10).">Следующие</A> ]\n";
   print "</center><br>";

   for ($i=$start;$i<$count;$i++) {
      $entry=$names[$i];
      $data = file("records/rec.".$entry);
      $date    =$entry;
      $name    =trim($data[0]);
      $email   =trim($data[1]);
      $city    =trim($data[2]);
      $www     =trim($data[3]);
      $question=trim($data[4]);
      $answer  =trim($data[5]);

      print "<table border=0 cellspacing=0 cellpadding=2 width=100%><tr bgcolor=#F0F0F0><td> ";
      if (!empty($email)) print "<a href=mailto:$email>$name</A>\n"; else print $name;
      if (!empty($www))   print "[<a href=$www>$www</A>]";
      print "</td><td align=right>".date("H-i-s <b>d-m-Y</b>",$date)."</td></tr>\n<tr><td colspan=2>\n";
      print "<P>".$question."</P>\n";
      if (!empty($answer)) print "<P><B><I>$answer</I></B></P>\n";
      print "</td></tr></table>\n<br><br>\n";
   }

   print "<center>";
   if ($start!=0) print "[ <A href=guest.php?start=".($start-10).">Предыдущие</A> ]";
   print " [ <a href=guest_add.php>Добавить запись</A>] ";
   if ($cnt>$start+10) print "[ <A href=guest.php?start=".($start+10).">Следующие</A> ]\n";
   print "</center>";
?>
</BODY>
</HTML>

Файл guest_add.php

 
<?
   $err="";
   $action=$_POST["action"];  
   //------------------------------------------- сюда попадаем после post (кнопки добавить):
   if (!empty($action))              
   {
      $name = substr($_POST["name"], 0,32);  $name  = htmlspecialchars(stripslashes($name));
      $email= substr($_POST["email"],0,64);  $email = htmlspecialchars(stripslashes($email));
      $www  = substr($_POST["www"],  0,64);  $www   = htmlspecialchars(stripslashes($www));
      $city = substr($_POST["city"], 0,64);  $city  = htmlspecialchars(stripslashes($city));
      $msg  = substr($_POST["msg"],0,1024);  $msg   = htmlspecialchars(stripslashes($msg));

      $name=trim($name);             // имя и сообщение не должны быть пустыми
      $msg =trim($msg);
      if (empty($msg))  {$action="" ; $err=$err."<LI>Вы не ввели сообщение\n";}
      if (empty($name)) {$action="";  $err=$err."<LI>Вы не ввели имя\n";}

      if (empty($err)) {
         $msg=nl2br($msg);

         $msg=str_replace("[u]","<u>",$msg);
         $msg=str_replace("[i]","<i>",$msg);
         $msg=str_replace("[b]","<b>",$msg);
         $msg=str_replace("[/u]","</u>",$msg);
         $msg=str_replace("[/i]","</i>",$msg);
         $msg=str_replace("[/b]","</b>",$msg);
         $msg=eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$msg);
         $msg=str_replace("\n"," ",$msg);
         $msg=str_replace("\r"," ",$msg);

         $fp=fopen("records/rec.".time(),"w"); // записываем в файл:
         fputs($fp,$name."\n");
         fputs($fp,$email."\n");
         fputs($fp,$city."\n");
         fputs($fp,$www."\n");
         fputs($fp,$msg."\n");
         fclose($fp);

         print "<HTML><HEAD>\n";               // возвращаемся в список записей в книге
         print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=guest.php'>\n";
         print "</HEAD></HTML>\n";
      }
   }
   //------------------------------------------- сюда попадаем при вызове скрипта без post (кнопка не нажималась):
   if(empty($action)) {
?>
<HTML>
<HEAD>
<TITLE>Гостевая книга - добавить запись</TITLE>
</HEAD>
<BODY>
<H3>Добавление записи.</H3>
<? 
      if (!empty($err)) {
         print "<P><font color=red>Во время добавления записи произошли следующие ошибки: </font></P>\n";
         print "<UL>\n";
         print $err;
         print "</UL>\n";
      }  
?>
<center>
<table width=1 border=0>
<form action=guest_add.php method=post>
<input type=hidden name=action value=post>
<tr><td width=50%>Имя<font color=red><sup>*</sup></font>:</td><td align=right><input type=text name=name maxlength=32 value='<? echo $name; ?>'></td></tr>
<tr><td width=50%>E-Mail:</td><td align=right><input type=text name=email maxlength=64 value='<? echo $email; ?>'></td></tr>
<tr><td width=50%>Домашняя страница (WWW):</td><td align=right><input type=text name=www maxlength=64 value='<? echo $www; ?>'></td></tr>
<tr><td width=50%>Город:</td><td align=right><input type=text name=city maxlength=64 value='<? echo $city; ?>'></td></tr>
<tr><td colspan=2>Сообщение<font color=red><sup>*</sup></font>:<br><textarea cols=50 rows=8 name=msg><? echo $msg; ?></textarea></td></tr>
<tr><td colspan=2><input type=submit value='Добавить'></td></tr>
</form>
</table>
</center>
<P>Используйте размету для [b]<B>выделения текста</B>[/b] и вставки [url]гиперссылок[/url] </P>
</BODY>
</HTML>
<?
   }// if(empty($action))
?>