Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Возможно ли в этой форме прикрутить загрузку картинок? (https://javascript.ru/forum/misc/58271-vozmozhno-li-v-ehtojj-forme-prikrutit-zagruzku-kartinok.html)

drkrol 12.09.2015 23:37

Возможно ли в этой форме прикрутить загрузку картинок?
 
Здравствуйте. Есть такая форма
<div align="left" id="cor5" class="sidebarForm">
<div align="center" id="loadBar"></div>
<form action="#" method="post" id="cForm2">
   <label>Ваш email:</label>
   <div class="input" id="cor5">
   <input value="" id="posEmail" type="text">
   </div>
   <label>Ваше сообщение:</label>
   <div class="textarea" id="cor5"><textarea id="posText"></textarea></div>
<button type="button" id="send">Отправить --></button>
</form></div>


$(document).ready(function() {
// Форма обратной связи................................./

var regVr22 = "<div><img src="../load.gif" alt="Отправка..." ><span>Сообщение обрабатывается...</span></div><br>";

$("#send").click(function(){
		$("#loadBar").html(regVr22).show();
		var posEmail = $("#posEmail").val();
		var posText = $("#posText").val();
		$.ajax({
			type: "POST",
			url: "../send.php",
			data: {"posEmail": posEmail, "posText": posText},
			cache: false,
			success: function(response){
		var messageResp = "<p">Спасибо, <strong>";
		var resultStat = "!</strong> Ваше сообщение отправлено!</p>";
		var oll = (messageResp + resultStat);
				if(response == 1){
				$("#loadBar").html(oll).fadeIn(3000);
				$("#posEmail").val("");
				$("#posText").val("");
				} else {
		$("#loadBar").html(response).fadeIn(3000); }
										}
		});
		return false;
});
});


header("Content-type: text/html; charset=utf-8");
//**********************************************
if(empty($_POST['js'])){

$log =="";
$error="no"; //флаг наличия ошибки

		$posEmail = addslashes($_POST['posEmail']);
		$posEmail = htmlspecialchars($posEmail);
		$posEmail = stripslashes($posEmail);
		$posEmail = trim($posEmail);

		$posText = addslashes($_POST['posText']);
		$posText = htmlspecialchars($posText);
		$posText = stripslashes($posText);
		$posText = trim($posText);



//Если нет ошибок отправляем email  
if($error=="no")
{
//Отправка письма админу о новом комментарии
$to = "mail@yourdomain.ru";//Ваш e-mail адрес
$mes = "Человек отправил Вам сообщение из формы обратной связи Вашего сайта: \n\n$posText";

$from = $posEmail;
$sub = '=?utf-8?B?'.base64_encode('Новое сообщение с Вашего сайта').'?=';
$headers = 'From: '.$from.'
';
$headers .= 'MIME-Version: 1.0
';
$headers .= 'Content-type: text/plain; charset=utf-8
';
mail($to, $sub, $mes, $headers);
echo "1"; //Всё Ok!
}
else//если ошибки есть
{ 
		echo "<p><strong>Ошибка !</strong></font></p><ul>".$log."</ul><br>"; //Нельзя отправлять пустые сообщения

}
}

Подскажите, возможно ли сюда прикрутить функцию отправки картинки? Или ничего не выйдет? Буду рад если вы поможете мне с кодом или дадите какие либо советы по этому поводу.

laimas 13.09.2015 09:08

Цитата:

Сообщение от drkrol
$posEmail = addslashes($_POST['posEmail']);
$posEmail = htmlspecialchars($posEmail);
$posEmail = stripslashes($posEmail);
$posEmail = trim($posEmail);

$posText = addslashes($_POST['posText']);
$posText = htmlspecialchars($posText);
$posText = stripslashes($posText);
$posText = trim($posText);

и

Цитата:

Сообщение от drkrol
$headers .= 'Content-type: text/plain; charset=utf-8

представляем что в итоге получится?

drkrol 13.09.2015 12:19

неа. Но есть предположение, что вместо картинки придёт http://my.com/kartinka.jpg . Буквами...

laimas 13.09.2015 12:32

А если "неа", то зачем же это дается? Вы сперва разберитесь с отправкой почты, а уж потом думайте о картинках.

Зачем к значению адреса применять addslashes? Это значению нужно проверять на соответствие формату, и одного значения, а не пачки адресов.

А что будет содержать тело почтового сообщения, текстового, если оно будет пропущено через htmlspecialchars?

Все действия вами прописанные, это несуразица.

drkrol 13.09.2015 13:47

Подождите. Форма работает. Всё исправно. http://pavelmakarov.ru/sajtostroenie...ezagruzki.html Вот форма. И Она бесперебойно отправляет письма на почту. Но как прикрутить туда отправку файлов (картинок), я понятия не имею. По этому написал сюда. Может быть кто то знает, как сие чудо сотворить.

laimas 13.09.2015 13:57

Цитата:

Сообщение от drkrol
Форма работает.

Открывайте руководство РНР и читайте внимательно, чтобы понять, что

$posEmail = addslashes($_POST['posEmail']);
$posEmail = htmlspecialchars($posEmail);
$posEmail = stripslashes($posEmail);
$posEmail = trim($posEmail);
$posText = addslashes($_POST['posText']);
$posText = htmlspecialchars($posText);
$posText = stripslashes($posText);
$posText = trim($posText);

это глупость. Это не код, это набор несуразицы. А в почтовом сообщении text/plain < будет отображаться &lt;. Читайте, ибо вы не понимаете назначения ни addslashes, ни stripslashes, ни htmlspecialchars, втыкая их туда, где они совсем не нужны.

drkrol 13.09.2015 15:13

laimas,
Вы бы не могли подкинуть ссылку на "нормальную" форму отправки письма без перезагрузки страницы?

laimas 13.09.2015 15:22

А какую форму вам надо? Дело разве в форме?
Вы не правильно проверяете и обрабатываете данные на сервере, а форма самая обычная. В сети о правилах отправки почты много написано, а о функциях, которые вы используете, и которые совсем не нужны в данном случае читайте в руководстве.

drkrol 13.09.2015 15:45

Не правильно выразился. Не форму, а всю эту байду с нормальным js и с нормальным php кодом. Может вы знаете где есть уже готовый вариант?

laimas 13.09.2015 16:07

Если имеется ввиду отправка формы асинхронным запросом включая и файлы, то да, есть такие готовые плагины для jQ, гугл поможет найти. Для сервера также много готовых классов по отправке почты, например phpmailer.


Часовой пояс GMT +3, время: 16:08.