Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Как поставить абзац(пробел) между переменными php (http://forum.oszone.net/showthread.php?t=316008)

gremlintv2 19-06-2016 13:59 2643961

Как поставить абзац(пробел) между переменными php
 
Есть вот такой скрипт:
Скрытый текст
PHP код:

<?php 
require 'phpmailer\PHPMailerAutoload.php';
  if(empty(
$_POST['mail_to'])) exit("Введите адрес получателя"); 
  
// проверяем правильности заполнения с помощью регулярного выражения 
  
if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i"$_POST['mail_to'])) 
     exit(
"Введите адрес в виде somebody@server.com"); 
  
$_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to'])); 
  
$_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject'])); 
  
$_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg'])); 
  
$array $_POST['mail_msg'];
//ЗДЕСЯ IP и USERAGENT клиента добавляються к меседжу кривовато правда =\ не так ли?
  
$array .= $_SERVER['SERVER_NAME'];
  
$array .= $_SERVER['HTTP_USER_AGENT'];
  
$mail = new PHPMailer;
  
$mail->isSMTP();
  
$mail->Host 'smtp.gmail.com';
  
$mail->SMTPAuth true;
  
$mail->Username 'логин';
  
$mail->Password 'пас';
  
$mail->SMTPSecure 'ssl';
  
$mail->Port '465';
  
$mail->CharSet 'UTF-8';
  
$mail->From = ('логин@gmail.com');
  
$mail->FromName = ('название');
  
$mail->addAddress($_POST['mail_to']);
  
$mail->Body $array;
  
$mail->AltBody $_SERVER['SERVER_NAME'];
 
  if (!empty(
$_FILES['mail_file']['tmp_name'])) 
 
  { 
    
// Закачиваем файл 
 
if (isset($_FILES['mail_file']) &&
    
$_FILES['mail_file']['error'] == UPLOAD_ERR_OK) {
    
$mail->AddAttachment($_FILES['mail_file']['tmp_name'],$_FILES['mail_file']['name']);
                  }
  } 
   
// Отправляем почтовое сообщение 
if ( $mail->send()) exit("Письмо отправлено");
else exit(
"Письмо неотправлено");
?>


В нем мне нужно чтобы переменной $mail->Body присвоилось значение переменной $array которая в свою очередь равна:
$array = $_POST['mail_msg'];
$b = " "
$array .= $b
$array .= $_SERVER['SERVER_NAME'];
$array .= $b
$array .= $_SERVER['HTTP_USER_AGENT'];
В этом случае php ругается на переменную $b
Т.е. вопрос заключается в следующем:
1)можно ли как-то окультурить этот код (одна рабочая строка вместо шести)
2)можно ли как-то переменной $b присвоить перенос строки.

gremlintv2 19-06-2016 14:20 2643963

Решение оказалось крайне простым =):
PHP код:

$array $_POST['mail_msg'] . "\r\n" $_SERVER['SERVER_NAME'] . "\r\n" $_SERVER['HTTP_USER_AGENT']; 


Habetdin 20-06-2016 20:01 2644341

Цитата:

Цитата gremlintv2
В этом случае php ругается на переменную $b »

Он ругался на пропущенную точку с запятой в конце следующих строк:
PHP код:

$array $_POST['mail_msg'];
$b " " // вот
$array .= $b // эти
$array .= $_SERVER['SERVER_NAME'];
$array .= $b // строчки
$array .= $_SERVER['HTTP_USER_AGENT']; 

А "решение" делает то же самое, что и..: :tomato2:
PHP код:

$array $_POST['mail_msg'];
$b " "// очень странный
$array .= $b// способ
$array .= $_SERVER['SERVER_NAME'];
$array .= $b// форматирования
$array .= $_SERVER['HTTP_USER_AGENT']; 


gremlintv2 22-06-2016 16:38 2644867

Та это я как бы "например" написал, потому и с грубыми очепятками. Я ж только учус... =) Поэтому, посмотрел видосы на ютубе и понял что такие "задачки" можно решать гораздо проще и быстрее.
Но за ответ спасибо.

Это говорит еще и о том, что принцип "копипасты" имеет кроме плюсов, еще и жирный минус - никогда не знаешь досконально что за фигню ты копируешь и какой "спэцыалист" ее написал. )))

ЗЫ: да и к сожалению не нашел на формуме топика "php для новичков", это бы упростило для понимания, уровень знаний ТС как "вэбмастера" :lol:


Время: 03:48.

Время: 03:48.
© OSzone.net 2001-