Проблема с отображением

1. Dmitry Kokorin (29.04.2014 / 00:37)
Всем привет, давно тут не был, проблемка небольшая возникла, мож кто поможет? Вот код:
<?php
trim($POST_['subject']);
trim($POST_['name']);
trim($POST_['mail']);
trim($POST_['tel']);
trim($POST_['text']);
htmlspecialchars($POST_['subject']);
htmlspecialchars($POST_['name']);
htmlspecialchars($POST_['mail']);
htmlspecialchars($POST_['tel']);
htmlspecialchars($POST_['text']);
$Тема = $POST_['subject'];
$Имя = $POST_['name'];
$Откого = $POST_['mail'];
$Тел = $POST_['tel'];
$Текст = $POST_['text'];
$Письмо = "
<html>
<head>
  <title>$Тема</title>
</head>
<body>
$Имя<br />
$Откого<br />
$Тел<br />
$Текст
</body>
</html>
";
$Заголовок  = 'MIME-Version: 1.0' . "\r\n";
$Заголовок .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$Заголовок .= "From: $Имя<$Маил>" . "\r\n";
           
mail($Кому, $Тема, $Письмо, $Заголовок);
if(!mail){ echo "Произошла ошибка при отправке письма";}
exit();
?>

Добавлено через 04:56 сек.
Вот результат http://4stolb.ru/contact.php
Нажмите кнопку отправить

2. Zдешний (29.04.2014 / 05:03)
переменные русским языком? оригинально

3. DiNo (29.04.2014 / 07:59)
2. Zдешний, почему бы и нет? Если человеку так удобнее ))

4. Dmitry Kokorin (29.04.2014 / 08:23)
2. Zдешний, у меня весь движок на
UTF-8, почему бы мне не использовать русские переменные? Да и это впринципе ни на что не влияет! Лучше подскажи в чем косяк

5. Zдешний (29.04.2014 / 09:21)
DimmoS (29 Апреля 2014 / 10:23)
2. Zдешний, у меня весь движок на
UTF-8, почему бы мне не использовать русские переменные? Да и это впринципе ни на что не влияет! Лучше подскажи в чем косяк
а тебе это чем то поможет? ведь даже не весь код даёшь. во-первых не $POST_, а $_POST

Добавлено через 01:19 сек.
вот без проверок всяких накидал код:
<?php
header('Content-Type: text/html; charset=utf-8');


if($_POST){
$Кому = '***@mail.pp';

trim($_POST['subject']);
trim($_POST['name']);
trim($_POST['mail']);
trim($_POST['tel']);
trim($_POST['text']);
htmlspecialchars($_POST['subject']);
htmlspecialchars($_POST['name']);
htmlspecialchars($_POST['mail']);
htmlspecialchars($_POST['tel']);
htmlspecialchars($_POST['text']);
$Тема = $_POST['subject'];
$Имя = $_POST['name'];
$Откого = $_POST['mail'];
$Тел = $_POST['tel'];
$Текст = $_POST['text'];
$Письмо = "
<html>
<head>
  <title>$Тема</title>
</head>
<body>
$Имя<br />
$Откого<br />
$Тел<br />
$Текст
</body>
</html>
";
$Заголовок  = 'MIME-Version: 1.0' . "\r\n";
$Заголовок .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$Заголовок .= "From: $Имя<$Маил>" . "\r\n";
           
mail($Кому, $Тема, $Письмо, $Заголовок);
if(!mail){ die("Промазали!");}
die("OK!");}
?> 


<form method="post">
Тема:
<input type="text" name="subject" value="" /><br />
Имя:
<input type="text" name="name" value="" /><br />
От кого:
<input type="text" name="mail" value="" /><br />
Тел:
<input type="text" name="tel" value="" /><br />
Текст:
<input type="text" name="text" value="" /><br />
<input type="submit" value="Погнали" />

</form>

всё работает ок

6. Dmitry Kokorin (29.04.2014 / 09:57)
Вот тебе весь код:
sendmail.php
<?php
trim($_POST['subject']);
trim($_POST['name']);
trim($_POST['mail']);
trim($_POST['tel']);
trim($POST['text']);
htmlspecialchars($_POST['subject']);
htmlspecialchars($_POST['name']);
htmlspecialchars($_POST['mail']);
htmlspecialchars($_POST['tel']);
htmlspecialchars($_POST['text']);
$Тема=$_POST['subject'];
$Имя=$_POST['name'];
$Откого=$_POST['mail'];
$Тел=$_POST['tel'];
$Текст=$_POST['text'];
$Письмо="<h3>$Тема</h3><br /><h4>$Имя<br />$Откого<br />$Тел<br />$Текст</h4>";
$Заголовок  = 'MIME-Version: 1.0' . "\r\n";
$Заголовок .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$Заголовок .= 'From: $Имя<$Откого>' . "\r\n";


7. Zдешний (29.04.2014 / 10:01)
6. DimmoS, ты видимо смеёшься. спасибо, оценил

Добавлено через 01:03 сек.
где это - "Верхний блок
$Имя
$Откого
$Тел
$Текст '; $Заголовок = 'MIME-Version: 1.0' . "\r\n"; $Заголовок .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $Заголовок .= "From: $Имя<$Откого>" . "\r\n"; if(empty($Имя)){ echo "Не введено имя
вернитесь назад и повторите ввод
"; exit(); }; if(empty($Маил)){ echo "Не введен E-mail
вернитесь назад и повторите ввод
"; exit(); }; if(empty($Текст)){ echo "Не введен текст
вернитесь назад и повторите ввод
"; exit(); }; mail($Кому, $Тема, $Письмо, $Заголовок); if(!mail){ echo "Произошла ошибка при отправке письма";} exit(); ?>
Нижний блок "

либо это в шаблоне, либо что ещё. автор, ты не даёшь нам нужной информации и просишь помощи. хз что ты добиваешься

8. Dmitry Kokorin (29.04.2014 / 10:03)
if(empty($Имя)){
echo "Не введено имя<br />вернитесь назад и повторите ввод<br />
     <form method="post" action="contact.php">    
           <input type="hidden" name="message" value="Введите имя">
           <input type="hidden" name="mail" value="$Маил">
           <input type="hidden" name="tel" value="$Тел">
           <input type="hidden" name="text" value="$Текст">
           <input type="submit" name="submit" value="Вернуться">";
     </form>
exit();
}
if(empty($Маил)){
echo "Не введен E-mail<br />вернитесь назад и повторите ввод<br />
     <form method="post" action="contact.php">
           <input type="hidden" name="message" value="Введите E-mail">
           <input type="hidden" name="name" value="$Имя">
           <input type="hidden" name="tel" value="$Тел">
           <input type="hidden" name="text" value="$Текст">
           <input type="submit" name="submit" value="Вернуться">";
</form>
exit();
}
if(empty($Текст)){
echo "Не введен текст<br />вернитесь назад и повторите ввод<br />
     <form method="post" action="contact.php">
           <input type="hidden" name="message" value="Введите текст">
           <input type="hidden" name="name" value="$Имя">
           <input type="hidden" name="tel" value="$Тел">
           <input type="hidden" name="mail" value="$Маил">
           <input type="submit" name="submit" value="Вернуться">";
     </form>
exit();
}

mail($Кому, $Тема, $Письмо, $Заголовок);
if(!mail){ echo "Произошла ошибка при отправке письма";}
exit();
?>

Добавлено через 01:16 сек.
А ты не можешь пару минут подождать?

Добавлено через 02:09 сек.
...это в шаблоне(и там косяков нет! )

9. Dmitry Kokorin (29.04.2014 / 10:11)
Это contact.php
<center><b>

<?php
     $Сообщение = $POST['message'];
     if(!empty($Сообщение)){
     echo $Сообщение;}
     else{
?>

Вы можете связаться с  нами следующими способами:<br />
<table>
   <tr>
      <td>Тел:</td>
      <td>[quote][quote][quote][/quote][/quote][/quote]</td>
   </tr>
   <tr>
      <td>E-mail:</td>
      <td><a href="mailto:remont@4stolb.ru">remont@4stolb.ru</a></td>
   </tr>
</table>
<br />
или заполнив форму ниже:<br />
<form method="post" action="sendmail.php">
<input type="hidden" name="subject" value="Письмо с сайта 4stolb.ru">
<table>
     <tr>
          <td>
               Ваше имя:
          </td>
          <td>
               <input type="text" name="name" maxlenght="20"><br />
          </td>
     </tr>
     <tr>
          <td>
               E-mail:
          </td>
          <td>
               <input type="text" name="mail" maxlenght="30" value="mail@example.com"><br />
          </td>
     </tr>
     <tr>
          <td>
               Номер:
          </td>
          <td>
               <input type="text" name="tel" maxlenght="15" value="+7 XXX XXX XXXX"><br />
          </td>
     </tr>
     <tr>
          <td>
               Текст:
          </td>
          <td>
               <textarea name="text" maxlenght="1000"></textarea>
          </td>
     </tr>
     <tr>
          <td>
          </td>
          <td>
               <input type="submit" name="submit" value="Отправить"><br />
          </td>
     </tr>
</table>
</form>
</b>
<?php
     }
?>


10. Zдешний (29.04.2014 / 11:04)
офигеть какой код о_О
"if(empty($Маил)){
echo "Не введен E-mail<br />вернитесь назад и повторите ввод<br />
<form method="post" action="contact.php">
<input type="hidden" name="message" value="Введите E-mail">
<input type="hidden" name="name" value="$Имя">
<input type="hidden" name="tel" value="$Тел">
<input type="hidden" name="text" value="$Текст">
<input type="submit" name="submit" value="Вернуться">";
</form>
exit();
} "

зачем такие нагромождения?

11. Zдешний (29.04.2014 / 11:04)
давай так напишем (шаблон оставим пока в покое):

<?php




if($_POST){

function redirect($url, $message = false){

if ($message){
$_SESSION['message'] = $message; 
}

header('Location: '.$url);
exit();
}


$abonent = "наш_адрес_мыла";

try{
$subject = (isset($_POST['subject']))?htmlspecialchars(trim($_POST['subject'])):'';
$name = (isset($_POST['subject']))?htmlspecialchars(trim($_POST['name'])):'';
$mail = (isset($_POST['subject']))?htmlspecialchars(trim($_POST['mail'])):'';
$tel = (isset($_POST['subject']))?htmlspecialchars(trim($_POST['tel'])):'';
$text = (isset($_POST['subject']))?htmlspecialchars(trim($_POST['text'])):'';

if($subject == '')
throw new Exception("Вы не ввели тему письма!");

if($name == '')
throw new Exception("Вы не ввели ваше имя!");

if($text == '')
throw new Exception("Вы не ввели текст письма!");

if(!preg_match('/^\+?[0-9]{7,30}$/', $tel))
throw new Exception("Введите номер телефона правильно!");

$mail = filter_var($mail, FILTER_VALIDATE_EMAIL);
              
if($mail == FALSE)
throw new Exception("Введите email!");
              
$letter="<h3>$subject</h3><br /><h4>$name<br />$mail<br />$tel<br />$text</h4>";
$head  = 'MIME-Version: 1.0' . "\r\n";
$head .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$head .= 'From: $name<$mail>' . "\r\n"; 

if(!mail($abonent, $subject, $letter, $head))
throw new Exception("Произошла ошибка при отправке письма!");

}
catch(Exception $ex){
redirect("contact.php?text=".$text, $ex->getMessage());}

redirect("contact.php", "Сообщение успешно отправлено!");
}


12. Zдешний (29.04.2014 / 11:05)
и в шаблоне заменим
"<?php
$Сообщение = $POST['message'];
if(!empty($Сообщение)){
echo $Сообщение;}
else{
?> "

на


<?php if(isset($_SESSION['message'])){ ?>
<h1><?=$_SESSION['message']?></h1>
<?php unset($_SESSION['message']); } ?>


<?php $text = (isset($_GET['text'])):htmlspecialchars(trim($_GET['text'])):'';?>

а то увидел, что у тебя $_POST['message'] обрабатывается

Добавлено через 03:06 сек.
неидеально, могут быть ошибки, потому что тут в форме ввода начеркалsmile

13. Dmitry Kokorin (07.05.2014 / 21:20)
еще подскажите чо за.....
(unexpected '{' in............line 40)
щас код скину

Добавлено через 05:28 сек.
<?php
$ОткогоИмя = trim(htmlspecialchars($_POST['from']));
$ОткогоТелефон = trim(htmlspecialchars($_POST['tel']));
$ОткогоПочта = trim(htmlspecialchars($_POST['mail']));
$ТекстСообщения = trim(htmlspecialchars($_POST['text']));
$ТемаПисьма = 'Письмо с сайта 4stolb.ru';
$Кому = 'remont@4stolb.ru';
$Сообщение ="
<html>
<head>
<title>$ТемаПисьма</title>
</head>
<body>
<table>
<tr>
<td>Имя:</td>
<td>$ОткогоИмя</td>
</tr>
<tr>
<td>E-mail:</td>
<td>$ОткогоПочта</td>
</tr>
<tr>
<td>Телефон:</td>
<td>$ОткогоТелефон</td>
</tr>
<tr>
<td>Сообщение:</td>
<td>$ТекстСообщения</td>
</tr>
</table>
";
$Заголовки = "MIME-Version: 1.0\r\n";
$Заголовки .= "Content-type: text/html; charset=utf-8\r\n";
$Заголовки .= "From: 4stolb.ru <robot@4stolb.ru>\r\n";
$ОтправкаПисьма = mail($Кому, $ТемаПисьма,$Сообщение,$Заголовки);
if(strlen($ОткогоИмя) > 25) {
$Ошибка = "Имя слишком длинное, макс. 25 символов!";
} else {$Ошибка = '';}
if(empty($ОткогоИмя) {
$Ошибка = "Не введено имя!";
}  else {$Ошибка = '';}
if(strlen($ТекстСообщения) > 1000 || ($ТекстСообщения) < 50) {
$Ошибка = "Текст слишком длинный или короткий, макс. 1000 символов, мин. 50!";
} else {$Ошибка = '';}
if(!filter_var("$ОткогоПочта",FILTER_VALIDATE_EMAIL)) {
$Ошибка = "Некорректно введен E-mail!";
} else {$Ошибка = '';}
if(!preg_match("/^[0-9]{10,10}+$/",$ОткогоТелефон)) {
$Ошибка = "Некорректно введен номер телефона!";
} else {$Ошибка = '';}
echo $Ошибка;
//echo $ОтправкаПисьма;
?>


14. Zдешний (08.05.2014 / 05:09)
13. DimmoS, в 40 строке не наблюдается {. Переводи текст ошибки. strlen кстати возвращает количество байт, для длины строки используется mb_strlen

15. Dmitry Kokorin (08.05.2014 / 12:11)
14. Zдешний, я перевел ошибку, но, 40я строка
if(empty($ОткогоИмя)){.......}
а 39я
if(strlen($ОткогоИмя) > 25){......}
если даже значение не введено всё равно ругается...

Добавлено через 06:27 сек.
вот сам файл, там есть $Ошибка1,$Ошибка2......$Ошибка7
нужно сделать чтобы при true хотябы одной из этих переменных выводилась форма и сообщение об ошибке else аля отправлено

16. Dmitry Kokorin (08.05.2014 / 12:37)
<?php
$ОткогоИмя = trim(htmlspecialchars($_POST['from']));
$ОткогоТелефон = trim(htmlspecialchars($_POST['tel']));
$ОткогоПочта = trim(htmlspecialchars($_POST['mail']));
$ТекстСообщения = htmlspecialchars($_POST['text']);
if(empty($ОткогоИмя)){
$Ошибка1 = "Не введено имя, повторите ввод";}
if(empty($ОткогоТелефон)){
$Ошибка2 = "Не введен номер телефона, повторите ввод";}
if(empty($ТекстСообщения)){
$Ошибка3 = "Не введен текст сообщения, повторите ввод";}
if(strlen($ОткогоИмя) > 25) {
$Ошибка4 = "Имя не введено либо слишком длинное, макс. 25 символов!";}
if(strlen($ТекстСообщения) > 1000 || strlen($ТекстСообщения) < 50) {
$Ошибка5 = "Текст слишком длинный или короткий, макс. 1000 символов, мин. 50!";}
if(!filter_var($ОткогоПочта,FILTER_VALIDATE_EMAIL)) {
$Ошибка6 = "Некорректно введен E-mail";}
if(!preg_match("/^[0-9]{10,10}+$/",$ОткогоТелефон)) {
$Ошибка7 = "Некорректно введен номер телефона!";}
$ТемаПисьма = 'Письмо с сайта 4stolb.ru';
$Кому = 'remont@4stolb.ru';
$Сообщение ="
<html>
<head>
<title>$ТемаПисьма</title>
</head>
<body>
Имя:$ОткогоИмя<br />
E-mail:$ОткогоПочта<br />
Телефон:$ОткогоТелефон<br />
Сообщение:$ТекстСообщения<br />
";
$Заголовки = "MIME-Version: 1.0\r\n";
$Заголовки .= "Content-type: text/html; charset=utf-8\r\n";
$Заголовки .= "From:Robot 4stolb.ru <robot@4stolb.ru>\r\n";
$ОтправкаПисьма = mail($Кому, $ТемаПисьма,$Сообщение,$Заголовки);
 
/*тут эти $Ошибка1-7 если false то продолжаем*/

ob_start();
?>
<form method="post" action="contact.php">
Ваше имя:( мах. 25 симв)<br />
<input type="text" name="from" value="<?= $ОткогоИмя; ?>"><br />
Номер:( 9ХХ ХХХ ХХХХ)<br />
<input type="text" name="tel" value="<?= $ОткогоТелефон; ?>"><br />
Ваш E-mail:<br />
<input type="text" name="mail" value="<?= $ОткогоПочта; ?>"><br />
Текст:( мах. 1000 симв)<br />
<textarea name="text" value="<?= $ТекстСообщения; ?>"></textarea><br />
<input type="submit" name="button" value="Отправить">
<input type="reset" name="button" value="Сбросить">
</form>
<?
$ФормаСвязи = ob_get_clean();
echo $ФормаСвязи;}
else {
echo $ОтправкаПисьма;
?>


URL: https://visavi.net/topics/40551