Задать вопрос
@Gambi-Titto
Начинающий програмист

Как в PHP добавить переадресацию на другой сайт?

В данном коде:
<?php
if (isset ($_POST['contactFF'])) {
  $to = "sme071825@gmail.com"; 
  $from = $_POST['contactFF'];
  $e_mail = "sme071825@gmail.com";
  $subject = "Обращения по заказам";
  $message = "Email: ".$from. "\nНомер Заказа: " .$_POST['numberzakaz']. "\nВаш ID: " .$_POST['idnumber']. "\nФИО: " .$_POST['fio']. "\nТелефон: " .$_POST['phone']. "\nСообщение: ".$_POST['messageFF'];

  $boundary = md5(date('r', time()));
  $filesize = '';
  $headers = "MIME-Version: 1.0\r\n";
  $headers .= "From: " . $e_mail . "\r\n";
  $headers .= "Reply-To: " . $from . "\r\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
  $message="
Content-Type: multipart/mixed; boundary=\"$boundary\"

--$boundary
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit

$message";
  for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
     if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
         $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
         $filename = $_FILES['fileFF']['name'][$i];
         $filetype = $_FILES['fileFF']['type'][$i];
         $filesize += $_FILES['fileFF']['size'][$i];
         $message.="

--$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$filename\"

$attachment";
     }
   }
   $message.="
--$boundary--";

  if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
    mail($to, $subject, $message, $headers);
    echo $_POST['fio'].', Ваше сообщение получено, спасибо!';
  } else {
    echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
  }
}
?>

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

РЕЧЬ ИДЁТ ОБ ЭТОМ куске кода:
if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
    mail($to, $subject, $message, $headers);
    echo $_POST['fio'].', Ваше сообщение получено, спасибо!';
  } else {
    echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
  }

Заранее всем благодарен.
  • Вопрос задан
  • 199 просмотров
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
slo_nik
@slo_nik Куратор тега PHP
Ваш код можно переделать так.
Это пример. Но так лучше не делать.
$filesize = 1;
$fio = 'Василий Евграфович Защёлкин';
if ($filesize == 1) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
    if(mail($to, $subject, $message, $headers)){
   // echo $_POST['fio'].', Ваше сообщение получено, спасибо!';
 ?>
    <script type="text/javascript">
      var message = "<?= $fio ?>" + ', Ваше сообщение получено, спасибо!';
      alert(message)
    </script>
 <?php 
    }
    else{
?>
    <script type="text/javascript">
      var message = "<?= $fio ?>" + ', Ваше сообщение НЕ отправлено, обратитесь к администратору!';
      alert(message)
    </script>
<?php      
    }  
  } else {
    //echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
?>
   <script type="text/javascript">
     var message = 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
     alert(message)
   </script>
<?php
  }
?>


Лучше используйте готовую библиотеку для отправки писем. Например PHPMailer или SwftMailer.
Эти библиотеки можно легко подключить при помощи Composer.
Далее, не мешайте php с html, js, css. Это моветон.
Отправляйте ajax запрос к php файлу, получайте от него ответ и обрабатывайте на стороне клиента.

Проверять размер файла в php нужно так
if($filesize < 1024 * 1024 * 10){
   // code
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ar2rsoft
PHP-developer
В этом куске кода функция mail отправляет письмо, если убрать этот кусок кода, то письмо не будет отправляться, все логично. Если я правильно понял проблему)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы