Просмотр файла addmessage.php

Размер файла: 8.48Kb
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
/***************************************************************************
 *                     addmessage.php  (S-A WAP)
 *                            -------------------
 *      Разработка: Антон Федорченко.
 *      Оптимизация под WAP: Felis.
 *          2008 год
 ***************************************************************************/
?>
<?
  session_start();
  include('functions.php');
  include('config.php');
  include("lang/{$Lng}_lng.php");
  include('filename.php');
  include ('templates/header.php');
  //антифлуд
  if($Antiflood == 'yes')
    if(!empty($_SESSION['msg_added']))
      echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=guestbook.php'></HEAD></HTML>";
?>
<script language='JavaScript'>
  function PurgeForm()
  {
    document.Forma.name.value='';
    document.Forma.city.value='';
    document.Forma.email.value='';
    document.Forma.url.value='';
    document.Forma.messagebody.value='';
    document.Forma.name.focus();
  }
</script>
<?php

  //определяем константы
  define("XML_HEAD", "<?xml version='1.0' encoding='windows-1251' ?> \n <guestbook>\n");
  define('XML_END', "</guestbook>");
  //инициализируем переменные
  $FileForHided = 'txt/hide.txt';
  if($_POST['Action']=='write' && $_POST['Blague'] == session_id())
  {
    //Инициализируем переменные
    $Name=$_POST['name'];
    $City=$_POST['city'];
    $Email=$_POST['email'];
    $Url=$_POST['url'];
    $MessageBody=$_POST['messagebody'];
    $Date=date('j M Y G:i');
    $Admin='%nbsp%';
    //Проверяем введенные данные на корректность и подготавливаем их для вставки в XML документ
    //Имя
    if($Name=='')
      $Errors[]=$Cpt_ErrName;
    else {
      $Name=htmlspecialchars(stripslashes($Name));
      $Name=substr($Name, 0, 200);
      $Name=ConvertBack($Name);
    }
    //Город
    if($City == '')
      $City = '%nbsp%'; else
    {
      $City=substr($City, 0, 200);
      $City=htmlspecialchars(stripslashes($City));
      $City=ConvertBack($City);
    }
    //E-mail
    if($Email != '')
    {
      $Email=substr($Email, 0, 60);
      if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $Email))
        $Errors[]=$Cpt_ErrEmail;
    } else $Email='%nbsp%';
    //Url
    if($Url == '')
      $Url = '%nbsp%';
    else {
      if(ereg('http://', $Url)==false)
        $Url = 'http://'.$Url;
      $Url=substr($Url, 0, 60);
      $Url=htmlspecialchars(stripslashes($Url));
    }
    //Текст сообщения
    if($MessageBody=='')
      $Errors[]=$Cpt_ErrText;
    else {
      $MessageBody=str_replace("\r", '', $MessageBody);
      $MessageBody=str_replace("\n", '+endln+', $MessageBody);
      $MessageBody=htmlspecialchars(stripslashes($MessageBody));
      $MessageBody=ConvertBack($MessageBody, $Lng);
      $MessageBody = NoLongWords($MessageBody, $MaxWordLength);
      $MessageBody = substr($MessageBody, 0, 7000);
    }
    //Дата
    $Date=TranslateMonths($Date, $Lng);
    //Если файл не существует - создаем его и дописываем конечный тэг

    //Формируем сообщение и записываем его в xml файл, если не было ошибок
    if(empty($Errors))
    {
      //Заключаем посланное сообщение в теги XML
      $Str .= "<name>{$Name}</name>\n<date>{$Date}</date>\n<city>{$City}</city>\n<email>{$Email}</email>\n<url>{$Url}</url>\n<messagebody>{$MessageBody}</messagebody>\n<admin>{$Admin}</admin>\n";
      if($HideSentMessages == 'no')
      {
        $Str = XML_HEAD."<message>\n".$Str."</message>\n";
        if(!file_exists($File))
	      {
	        $WriteEnd=true; //записать тэг </guestbook> в конец файла
	        $fp=fopen($File, 'w');
	        fclose($fp);
	      }
	      $XmlArray=file($File);
	      $XmlArray=array_slice($XmlArray, 2); //убираем заголовок xml+открывающий тэг <guestbook>
	      //Обрезаем старые сообщения, исходя из параметра MaxMessagesCount
	      $MaxStrCount=9*($MaxMessagesCount-1);// Мы еще не добавили сообщение
	      if(count($XmlArray)>($MaxStrCount+1))//+1 конечный тэг </guestbook>
	      {
	        array_pop($XmlArray); //обрезаем конечный тэг </guestbook>
	        while(count($XmlArray)!=$MaxStrCount)
	          array_pop($XmlArray);
	        $WriteEnd=True;
	      }

	      $XmlStr=implode("", $XmlArray);
	      $XmlStr=$Str.$XmlStr;
	      if($WriteEnd==true)
	        $XmlStr=$XmlStr.XML_END;
      }  // if($HideSentMessages == 'no')

      if($HideSentMessages == 'no')
      {
        $ErrorCode = SaveStringInFile($File, $XmlStr, 'w');
      }
      elseif($HideSentMessages == 'yes')
      {
        if(file_exists($FileForHided))
          $HidedArr = file($FileForHided);
        $HidedStr = @implode('', $HidedArr);
          $Str = $Str.$HidedStr;
        $ErrorCode = SaveStringInFile($FileForHided, $Str, 'w');

      }
      if(empty($ErrorCode))
      {
        $msg_added = $Cpt_MessAdded;
        session_register('msg_added');
        echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=guestbook.php'></HEAD></HTML>";
      }
      elseif($ErrorCode == 0)
        $Errors[] = $Cpt_CantSendMessage;
      elseif($ErrorCode == 1)
        $Errors[] = $Cpt_Error;
    } // if(empty($Errors))
  } //if($_POST('action')='write')
    $MessageBody=str_replace("+endln+", "\n", $MessageBody);
?>

<!--Выводим форму-->
<center>
<form name='Forma' action='' method='post'>
<form name=Forma action='' method='post'>
  <?php
    //ошибки
    print "<br>";
    if(!empty($Errors))
    {
      print "<div class=onquote>";
            for($i = 0; $i < count($Errors); $i++)
              print ($i + 1)."&nbsp;&nbsp;{$Errors[$i]}<br>";
          print "</div>";
    } else
    {

      print "<div class=header>";
	  print $Cpt_AddEntry;
	  print "<br>";
            print "[<a href=rules.php>правила написания</a>]";
          print "</div>";
    }
    //форма
    if($City == '%nbsp%')
       $City = '';
    if($Email == '%nbsp%')
      $Email = '';
    if($Url == '%nbsp%')
      $Url = '';
    print "<div class=quote>";
        //print "<tr><td colspan='3'><img src='admin/img/px6.gif' height='6'></td></tr>";
	         print "{$Cpt_Author} *<br>";
	         print "<input class='EditInput' type='text' name='name' size='' maxlength='' value=\"{$Name}\"><br>";
	         print "{$Cpt_City}<br>";
	         print "<input class='' type='text' name='city' size='' maxlength='' value=\"{$City}\"><br>";
	         print "{$Cpt_Email}<br>";
	         print "<input class='' type='text' name='email' size='' maxlength='' value=\"{$Email}\"><br>";
	         print "{$Cpt_Url}<br>";
	         print "<input class='' type='text' name='url' size='' maxlength='' value=\"{$Url}\"><br>";
	       print "</div>";

	     print "<div class=quote>";
	         print "{$Cpt_Text}: *<br>";
	         print "<textarea rows='7' class='' name='messagebody'>{$MessageBody}</textarea><br>";
      if($ShowSmiles=="yes")
       { print('[<a href="smilebox.php">список смайликов</a>]'); }
	   else
	   { print ('[смайлы отключены]'); }
	       print "</div>";
	     //кнопки
	     print "<table class='' cellspacing='0' cellpadding='0' border='0'>";
	       print "<tr>";
	         print "<td class='' align=center>";
	           print "<input class='addmsg' type='submit' value='{$Cpt_AddMessage}'>";
            print "<input class='resetmsg' type='button' value='{$Cpt_Reset}' onClick='PurgeForm()'>";
            print "<input class='goback' type='button' value='{$Cpt_Back}' onClick='location.href=\"guestbook.php\"'>";
	         print "</td>";
	       print "</tr>";
	     print "</table>";
    print "</td></tr></table>";
  ?>
  <input type='Hidden' name='Blague' value='<? print session_id() ?>'>
  <input type='Hidden' name='Action' value='write'>
  <input type='Hidden' name='MessInitPos' value='<? echo $MessInitPos?>'>
  <input type='Hidden' name='MessEndPos' value='<? echo $MessEndPos?>'>
</form>
</center>
<?php require_once ('templates/footer.php'); ?>