<?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)." {$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'); ?>