UWAGA: W PHP wykryto krytyczne podatności, przez które Wasze strony/fora mogą zostać zhakowane! Dzisiaj mają być udostępnione poprawione wersje, warto monitorować i ustawić odpowiendie wersje PHP na swom serwerze.

Poprawki będę zawarte w wersjach PHP: 8.5.12, 8.4.27, 8.3.36 oraz 8.2.35! Jeśli używacie jeszcze wersje PHP 7.x lub 8.0.x lub 8.1.x, należy, jak najszybciej podnieść wersje PHP i/lub zaktualizować swoje fora!

Do momentu wdrożenia oficjalnej łatki, ryzyko ataku można drastycznie zmniejszyć poprzez zmianę konfiguracji w pliku php.ini:
Ustaw: session.upload_progress.enabled = Off

Albo np., można zrobić: https://ma.ttias.be/php-cve-2026-109618 ... itigation/

Dla serwera Apache ustaw w pliku .htaccess

Kod: Zaznacz cały

RewriteEngine On
RewriteCond %{HTTP:Content-Type} multipart/form-data [NC]
RewriteRule ^ - [F]
i/lub - nie testowałem

Kod: Zaznacz cały

<If "req('Content-Type') =~ /multipart/i">
    Require all denied
</If>

Dla nginx

Kod: Zaznacz cały

# http {} context, e.g. /etc/nginx/conf.d/block-multipart.conf
map $http_content_type $block_multipart {
    default       0;
    "~*multipart" 1;
}

# inside every server {} that passes requests to PHP, including default/catch-all servers
if ($block_multipart) {
    return 403;
}
_____________________________________________________

Pojawiła się nowa wersja systemu - phpBB 3.3.19. Ostatnie wydania (od wersji 3.3.17 do najnowszej) przynoszą kluczowe poprawki, które chronią Twoje forum przed zagrożeniami i dbają o spokój Twojej społeczności. Polecam nie odkładać tego na później, tyllko zaktualizować fora!

Polski pakiet językowy dla phpBB 3.3.19

Skrypt mail() php nie czyta znaków HTML

Rozmowy z innymi użytkownikami forum na różne tematy, niekoniecznie związane ze skryptem phpBB.
mielekwalinko
Posty: 1
Rejestracja: 30 grudnia 2015, 16:13

Skrypt mail() php nie czyta znaków HTML

Post autor: mielekwalinko » 30 grudnia 2015, 16:28

Witam. Sklepałem formularz kontaktowyvlecz mam problem z wysyłaniem znaków html, niby tekst wysyła się jako html np po wpisaniu w formularzu <h1> aaaa teks </h1> treśc maila dochodzi tak jak powinna czyli duży napis "aaaa teks", problem jest gdy próbuję dodać kod html zdjęcia, wydaje mi się że mam złe kodowanie bo podczas wysyłki kod html zdjęcia coś się zmienia i dlatego już w otrzymanej wiadomości email nie wyświetla się fotka.

Oto mój formularz

Kod: Zaznacz cały

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>       
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="Keywords" content="wyraz1, wyraz2, wyraz3..." />
    <meta name="description" content="Opis strony" />
     
</head>
<body>
<form action="mail.php" method="post">
    <fieldset>
    <legend></b>FORMULARZ</b></legend>
                

        <label for="temat">Temat: </label><br>
        <input type="text" id="temat" name="temat"/>
                    <br>
        <label for="wiadomosc">Wiadomość:</label><br>
        <textarea id="wiadomosc" name="wiadomosc" cols="40" rows="10"></textarea>
                    <br>
        <input type="submit" value="wyslij" id="send" name="send" />
    </fieldset>
</form>
</body>
</html>
a tu .php

Kod: Zaznacz cały

<?php
//filtruje dane użytkownika
$mail = "mojastrona@dsa.pl";
$temat =  htmlspecialchars(trim($_POST['temat']));
$wiadomosc = $_POST['wiadomosc'];
$wiadomosc = addslashes($wiadomosc);
$wiadomosc = iconv("UTF-8","ISO-8859-2",$wiadomosc);
$send = $_POST['send'];
//mail na który będa wysyłane wiadomości
$odbiorca = "odbiooorca@dsa.pl";
$charset = 'iso-8859-2';
//nagłówki
$header =
      "MIME-Version: 1.0\r\n" .
      "Content-Type: text/plain; charset=$charset\r\n" .
      "Content-Transfer-Encoding: 8bit";

$header = "Content-type: text/html; charset=utf-8\r\nFrom: $mail";


    //Sprawdzam czy są błędy i wysyłam wiadomość
    if (empty($error))
        {
        $list = "$wiadomosc";
        
        if (mail($odbiorca, $temat, $list, $header))   
        {
         $error .= "Twoja wiadomość została wysłana";
         }
        else
            { $error .= "Wystąpił błąd podczas wysyłania wiadomości, spróbuj później.";}   
        }
    
?>
Jeszcze jedno pytanie, mianowicie gdy chce wysłać maila muszę ciągle edytować plik mail.php
w jaki sposób zrobić tak żeby scrypt wysyłający maile pobierał adresy z notatnika.txt np wpisuje do notatnika 10 maili jeden pod drugim i żeby scrypt je ściągał i wysyłał.
Z góry dziękuje za pomoc :)

ODPOWIEDZ

Wróć do „Ogólne dyskusje”