@ashita98
20 лет, студент.

Как сделать кнопку отправки вложения?

<!--Форма ввода ответов!--> 
<form action="index.php" method="POST">
	<h1>Операции с целыми числами</h1>
	<!--Объект questions для вывода текста заданий!-->
	<div id="questions">
		<h2>Задание № 1</h2>
		<p>
			Cоставьте выражение для вычисления в интерпретаторе Python 3
			 и вставьте в поле ответа результат вычисления: 11111&times;1111111 
			 — произведение чисел 11111 (5 единиц) и 1111111 (7 единиц)
		</p>
		Ответ: <input type="text" name="q1" id="q1" required>
		<hr>
		<h2>Задание № 2</h2>
		<p>
			Составьте выражение для вычисления указанной ниже формулы 
			и вставьте в поле ответа вывод интерпретатора после вычисления этого выражения.
		</p>
		<!--здесь дробь-->
		<p>
			На самом деле, Python 3 не может вычислить подобное выражение, поэтому возникнет ошибка. 
			Впишите вывод интерпретатора Python 3 в поле для ответа.
		</p>
		Ответ: <input type="text" name="q2" id="q2" required>
		<hr>
		<h2>Задание № 3</h2>
		<p>
			Составьте выражение для вычисления в интерпретаторе Python 3
			 и вставьте в поле ответа результат вычисления:
		</p>
		<h3>2014<sup>14</sup></h3>
		<p>
			Заметьте, насколько большое это число. Во многих других языках программирования 
			работать со значениями такого порядка гораздо сложнее.
		</p>
		Ответ: <input type="text" name="q3" id="q3" required>
		<hr>
		<p> Выполнил: <input type= "text" name= "name" placeholder="Введите фамилию и имя" required></p> 
		<!--При щелчке по кнопке ОК запускается скрипт check!-->
		<input type="submit" value="Отправить">
	</div>
</form>
<?php
	$q1 = $_POST['q1'];$q2 = $_POST['q2'];$q3 = $_POST['q3'];
	$corrAns=0;
	if ($q1=='12345554321') {
		$corrAns+=1;
	}
	if ($q2=='ZeroDivisionError: division by zero') {
		$corrAns+=1;
	}
	if ($q3=='18064773765607550801425251468864907833685590016') {
		$corrAns+=1;
	}
	if ($corrAns==3) {
		$mark="отлично";
	}elseif ($corrAns==2) {
		$mark="хорошо";
	}elseif ($corrAns==1) {
		$mark="удовлетворительно";
	}else{
		$mark="неудовлетворительно";
	}
	//$mail="79@gmail.com";
	$date=date("d.m.y"); $time=date("H:i"); 
	$name = $_POST['name'];
	$msg="<<Операции с целыми числами>> ".$mark; 
	//mail("$mail", "$date $time Сообщение от $name", "$msg"); 
	$f = fopen("marks.txt", "a+"); 
	fwrite($f,"$date $time $name $msg\n"); 
	fclose($f); 
?>
//Весь код что сверху работает, а вот что ниже не отправляется//
<form action="index.php" method="POST">
	<div>
	    		<input type="submit" value="ФАЙЛ">
	</div>
</form>
 <?php
  $filename = "marks.txt"; //Имя файла для прикрепления
  $to = "vladislavzavgorodniy123@gmail.com"; //Кому
  //$from = "def@gmail.com"; //От кого
  $subject = "Test"; //Тема
  $message = "Текстовое сообщение"; //Текст письма
  $boundary = "---"; //Разделитель
  /* Заголовки */
  //$headers = "From: $from\nReply-To: $from\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
  $body = "--$boundary\n";
  /* Присоединяем текстовое сообщение */
  $body .= "Content-type: text/html; charset='utf-8'\n";
  $body .= "Content-Transfer-Encoding: quoted-printablenn";
  $body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";
  $body .= $message."\n";
  $body .= "--$boundary\n";
  $file = fopen($filename, "r"); //Открываем файл
  $text = fread($file, filesize($filename)); //Считываем весь файл
  fclose($file); //Закрываем файл
  /* Добавляем тип содержимого, кодируем текст файла и добавляем в тело письма */
  $body .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode($filename)."?=\n"; 
  $body .= "Content-Transfer-Encoding: base64\n";
  $body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";
  $body .= chunk_split(base64_encode($text))."\n";
  $body .= "--".$boundary ."--\n";
  mail($to, $subject, $body, $headers); //Отправляем письмо
?>
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 2
gromdron
@gromdron
Работаю с Bitrix24
Загрузка файлов
Для отправки почты использовать что-нибудь попроще: PHPMailer или Swift Mailer

Неплохо было бы почитать по Чистый код на php и PHP: The Right Way
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
кроме того что код - редкая смесь г-на и палок, так еще и понимания что и как работает у вас нет.
Я все же поясню вам что происходит, а вы поправьте пробелы в своих знаниях основ клиент-сервернонго взаимодействия.

у вас 2 формы, первая содержит поля, которые нужны для выполнения некоторых операций на сервере.
Вторая пустая и ничего не делает от слова вообще.
при заходе на страничку у вас вываливается куча варнингов, которые вы не видите, т.к. показ ошибок и варнингов у вас выключен.
далее, по заполнению и субмиту первой формы вы отправляете какие-то данные, и они даже скорее всего что-то делают, и формируют файл marks.txt(не факт).
Далее у вас стоит форма 2, абсолютно пустая и не нужная, так как скрипт не останавливается после ее вывода, а сразу пытается отправить данные по почте. Там тоже наверняка все не работает как надо, но мы опять же ничего не видим из за выключенного вывода ошибок. Далее, как истинный испытатель, вы нажимаете вторую кнопку, которая скорее всего нормально работает и отсылает пустую форму, ну и скрипт снова видит запрос без данных, снова выдает кучу варнингов и благополучно просто вывыодит ту же страничку еще раз.

УЧИТЕ АЗЫ!!!!!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы