ФорумПрограммированиеPHP для идиотов → nl2br не помогает

nl2br не помогает

  • Argnist

    Сообщения: 130 Репутация: N Группа: Кто попало

    Spritz 25 января 2008 г. 17:12

    отсылаю с формы текст на почту.
    приходит "Если и\r\nщас не\r\nбудет работать\r\nправильно\r\nвыпью йаду"

    хотя nl2br($text);

    че делать? :(((
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 25 января 2008 г. 18:21, спустя 1 час 8 минут 53 секунды

    Полный код
  • Argnist

    Сообщения: 130 Репутация: N Группа: Кто попало

    Spritz 25 января 2008 г. 19:27, спустя 1 час 5 минут 29 секунд

    $text=nl2br($_POST['text']);
          // Задаем тело письма
          $anketa='<b>ФИО</b> - '.$fio.'<br/>
                   <b>Емейл</b> - '.$email.'<br/>
                   <b>Комментарии клиента</b> - '.$text.'<br/>';
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 25 января 2008 г. 19:30, спустя 3 минуты 17 секунд

    дальше
  • Argnist

    Сообщения: 130 Репутация: N Группа: Кто попало

    Spritz 25 января 2008 г. 19:57, спустя 27 минут 30 секунд


     require_once($_SERVER['DOCUMENT_ROOT'].'/lib/config.php');

          // Подключаем класс FreakMailer
          require_once($_SERVER['DOCUMENT_ROOT'].'/lib/MailClass.inc');

          // инициализируем класс
          $mailer = new FreakMailer();

          // Устанавливаем тему письма
          $mailer->Subject = 'Обратная связь - '.$fio;

          $text=preg_replace("#\r\n?#", "<br/>", $text );
          // Задаем тело письма
          $anketa='<b>ФИО</b> - '.$fio.'<br/>
                   <b>Емейл</b> - '.$email.'<br/>
                   <b>Комментарии клиента</b> - '.nl2br($text).'<br/>';

          $mailer->Body = '<html>
                            <head><title>Обратная связь</title></head>
                            <body>
                              '.$anketa.'
                            </body>
                           </html>';
        $mailer->isHTML(true);

        // Добавляем адрес в список получателей
        $mailer->AddAddress(//////);

        $mailer->Send();

        $mailer->ClearAddresses();


    так хватит?)

    М: код заключай в теги
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 25 января 2008 г. 20:28, спустя 30 минут 55 секунд

    должно работать, причем без
    $text=preg_replace("#\r\n?#", "<br/>", $text );
    , попробуй сделать
    var_dump($text)
  • Argnist

    Сообщения: 130 Репутация: N Группа: Кто попало

    Spritz 26 января 2008 г. 10:50, спустя 14 часов 21 минуту 15 секунд

    должно… а не работает. var_dump выдает что до nl2br что после "Если и\r\nщас не\r\nбудет работать\r\nправильно\r\nвыпью йаду"
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 26 января 2008 г. 11:42, спустя 52 минуты 7 секунд

    Значит где-то, каким-то образом символ \n был переделан в последовательность "\n". Сделайте var_dump($_POST) в самом начале. Если там так же, скорее всего виноваты магические кавычки.
  • Argnist

    Сообщения: 130 Репутация: N Группа: Кто попало

    Spritz 26 января 2008 г. 12:54, спустя 1 час 12 минут 14 секунд


    Значит где-то, каким-то образом символ \n был переделан в последовательность "\n". Сделайте var_dump($_POST) в самом начале. Если там так же, скорее всего виноваты магические кавычки.

    там написано в одну строчку но вместо \r\n просто пробелы.
    а что там с магическими кавычками?
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 26 января 2008 г. 14:33, спустя 1 час 38 минут 46 секунд

    перед и после строки:
    $text=nl2br($_POST['text']);

    поставьте print $_POST['text']. Что будет?
  • kendo

    Сообщения: 446 Репутация: N Группа: Адекваты

    Spritz 26 января 2008 г. 20:56, спустя 6 часов 23 минуты 13 секунд

    Зачем тут использовать регулялки?
    Можно использовать более скоростной способ (опробован мной лично):

    $text=str_ireplace("\r\n", "\n", $text);
    $text=str_ireplace("\n", "<br />", $text);

    Используя новшество php5 можно еще так сделать (сам не пробовал):

    $text=str_ireplace(array("\n", "\r\n"), "<br />", $text);
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 26 января 2008 г. 23:05, спустя 2 часа 8 минут 43 секунды

    А как ты заключаешь?

    mail($email,$theme,'text\r\ntext\r\n'); ?

    Или

    mail($email,$theme,"text\r\ntext\r\n"); ?
  • Argnist

    Сообщения: 130 Репутация: N Группа: Кто попало

    Spritz 27 января 2008 г. 15:37, спустя 16 часов 32 минуты 24 секунды


    перед и после строки:
    $text=nl2br($_POST['text']);

    поставьте print $_POST['text']. Что будет?


    в одну строчку через пробелы…


    Зачем тут использовать регулялки?
    Можно использовать более скоростной способ (опробован мной лично):

    $text=str_ireplace("\r\n", "\n", $text);
    $text=str_ireplace("\n", "
    ", $text);

    Используя новшество php5 можно еще так сделать (сам не пробовал):

    $text=str_ireplace(array("\n", "\r\n"), "
    ", $text);


    так тоже не работает)

    2Pasha: не знаю, юзаю FreakMailer, да и вообще, что странно, в других скриптах все нормально, а вот именно в этом такая фигня
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 27 января 2008 г. 15:47, спустя 10 минут 28 секунд

    в одну строчку через пробелы…

    это в исходном коде страницы? Тогда получается, что переносов просто нет и заменять там нечего.
  • Argnist

    Сообщения: 130 Репутация: N Группа: Кто попало

    Spritz 27 января 2008 г. 16:18, спустя 30 минут 36 секунд

    нет, echo выдает \r\n print выдает пробелы вместо переносов

    echo get_magic_quotes_gpc();
    выдает 0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!