Проблема с отображением
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 сек.
неидеально, могут быть ошибки, потому что тут в форме ввода начеркал
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