Problémy s češtinou. Zase. – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problémy s češtinou. Zase. – PHP – Fórum – Programujte.comProblémy s češtinou. Zase. – PHP – Fórum – Programujte.com

 

Párek
~ Anonymní uživatel
7 příspěvků
7. 6. 2018   #1
-
0
-

Zdravím. Přebral jsem webové stránky, na kterých je kontaktní formulář.

PHP nerozumím a proto prosím o pomoc. Čeština se nezobrazuje správně.

Místo "ěščřžýáíé" se zobrazí "ìšèøžýáí" .

Zkoušel jsem smazat všechny iconv, upravit v nich kódování. Vše bylo jen horší. Už fakt nevím.

Kód je následující: 

<?php
    setlocale(LC_CTYPE, 'cs_CZ.UTF-8');
    // My modifications to mailer script from:
    // http://blog.teamtreehouse.com/…contact-form
    // Added input sanitizing to prevent injection

    // Only process POST reqeusts.
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // Get the form fields and remove whitespace.
        $name = strip_tags(trim($_POST["name"]));
        $name = iconv("UTF-8", "CP1250", $name);
				$name = str_replace(array("\r","\n"),array(" "," "),$name);
        $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
        $message = trim($_POST["message"]);
        $message = iconv("UTF-8", "CP1250", $message);
        $subject = trim($_POST["subject"]);
        $subject = iconv("UTF-8", "CP1250", $subject);

        // Check that data was sent to the mailer.
        if ( empty($name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
            // Set a 400 (bad request) response code and exit.
            http_response_code(400);
            echo "Oops! There was a problem with your submission. Please complete the form and try again.";
            exit;
        }

        // Set the recipient email address.
        // FIXME: Update this to your desired email address.
        $recipient = "kyvala@gacz.cz";

        // Set the email subject.
        $subject = "Zpráva z formuláře na stránkách gacz.cz. Předmět: $subject";

        // Build the email content.
        $email_content = "Jméno: $name\n";
        $email_content .= "Email: $email\n\n";
        $email_content .= "Zpráva:\n$message\n";

        // Build the email headers.
        $email_headers = "From: $name <$email>";

        // Send the email.
        if (mail($recipient, $subject, $email_content, $email_headers)) {
            // Set a 200 (okay) response code.
            http_response_code(200);
            echo "Thank You! Your message has been sent.";
        } else {
            // Set a 500 (internal server error) response code.
            http_response_code(500);
            echo "Oops! Something went wrong and we couldn't send your message.";
        }

    } else {
        // Not a POST request, set a 403 (forbidden) response code.
        http_response_code(403);
        echo "There was a problem with your submission, please try again.";
    }

?>

Mockrát děkuji za pomoc.

Nahlásit jako SPAM
IP: 194.213.200.–
peter
~ Anonymní uživatel
3981 příspěvků
7. 6. 2018   #2
-
0
-

   

header('Content-Type: text/html; charset=utf-8'); //stranka 
$text = "=?utf-8?B?".base64_encode($text)."?="; // email text, subject, (from, to - pokud ve from a to zobrazujes i user name s diakritikou)
$from = "=?UTF-8?B?".base64_encode("Jméno a Příjmení")."?="; // email from
$headers .= "Content-Type: text/html; charset=utf-8\n"; // email header - u tebe nazvane jako $email_headers
$query = 'SET NAMES utf8'; mysql_query($query); // mysql - nekdy "SET CHARACTER SET utf8"
Nahlásit jako SPAM
IP: 2001:718:2601:258:f8f5:9c...–
peter
~ Anonymní uživatel
3981 příspěvků
7. 6. 2018   #3
-
0
-

Jo, ten iconv tam mas pouzity spravne. Pokud to nemas zrovna v utf, tak je nutne to zkonvertovat.
Jo, a mohl by sis to treba jeste zobrazit na obrazovku pres echo a do '<pre>'; At vidis, zda na strance je ok kodovani a pak to teprve zkodovat do base64.

Nahlásit jako SPAM
IP: 2001:718:2601:258:f8f5:9c...–
Kit+15
Guru
7. 6. 2018   #4
-
0
-

#1 Párek
Doporučuji smazat všechna řádky, na kterých se vyskytuje "CP1250" a na vše používat výhradně UTF-8. Jinak se s tím jen tak nedomluvíš.

Po úspěšném odeslání e-mailu neposílej HTTP 200, ale HTTP 302. Jinak se to bude chovat podivně.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5951:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

Zase já-need second help — založil Dan Stahar

Zase spamování — založil hlucheucho

Zase knizka — založil Datlik

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý