Odesílací formulář, diakritika – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Odesílací formulář, diakritika – PHP – Fórum – Programujte.comOdesílací formulář, diakritika – PHP – Fórum – Programujte.com

 

Janina0
Návštěvník
6. 10. 2008   #1
-
0
-

Ahoj, mam problém s odesiálacím formulářem a kódováním. Hledala jsem ale nemůžu přijít, jak problém vyřešit.
Jak na stránce tak v editoru mám kodování windows-1250.
Posílám to metodou post.
Zkoušela jsem více kodování, ale windows-1250 se zobrazuje nejlépe, až tedy na š a ž . Místo toho mám čtverečky. Poradí mi někdo, jak to mám vyřešit?

Nahlásit jako SPAM
IP: 89.235.32.–
toka0
Stálý člen
6. 10. 2008   #2
-
0
-

Zkoušela jsem více kodování, ale windows-1250 se zobrazuje nejlépe, až tedy na š a ž . Místo toho mám čtverečky. Poradí mi někdo, jak to mám vyřešit?

Co to je za formulaci? Vypadat dobre musi cokoliv, kdyz se to dobre udela :-D Trosku rozvin svuj problem...

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
Janina0
Návštěvník
6. 10. 2008   #3
-
0
-

No stručně jasně to nepůjde, tak snad takhle:

<? 

if($_POST['antispam']==4) {

if ( Mail("@.cz", $predmet, $zprava, "From: " . $mail_odesilatele) )

echo "<big>Váš email byl odeslán</big>";
else echo "<big>Mail se nepodařilo odeslat</big>";
}
else
{
echo "<big>Vyplňte prosím správně antispamovou ochranu.</big>";} ?>


- zpracovávací skript a teď stránka s formulářem :

<fieldset>

<legend>  Odeslat email   </legend>
<form method="post" action="zpracuj.php">
<input type="text" name="jmeno"> Jméno a příjmení:<br>
<input type="text" name="mail_odesilatele"> Váš email:<br>
<input type="text" name="predmet"> Předmět:<br><br>
<textarea rows="6" cols="60" name="zprava"></textarea>

<br><br>
Antispamová ochrana: 2+2 <input type="text" name="antispam" size="5">
<input type="submit" value="Odeslat">

</form>
</fieldset>


Mám dvě stránky. Obě jsou v kódování windows 1250. Ale když vyplním text ve formuláři a použiji diakritiku, tak na email mi přijde špatně kódovaná - místo š a ž přijde čtvereček.

Doufám, že je problém už zřejmý :)

Nahlásit jako SPAM
IP: 89.235.32.–
pawlik0
Grafoman
6. 10. 2008   #4
-
0
-

To Janina : pokud vím, tak emaily mají kodovani v hlavičce. po necem se kouknu :o)

Nahlásit jako SPAM
IP: 84.42.151.–
Sa Nata A Na. Howgh
pawlik0
Grafoman
6. 10. 2008   #5
-
0
-
Nahlásit jako SPAM
IP: 84.42.151.–
Sa Nata A Na. Howgh
toka0
Stálý člen
6. 10. 2008   #6
-
0
-

Bud jsem mimo, nebo jsem si vubec nevsiml, ze by mluvila o mailu :-)

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
Mixxy
~ Anonymní uživatel
179 příspěvků
6. 10. 2008   #7
-
0
-

A nebo muzes pouzit muj styl s prekodovanim obsahu a predmetu:



$hlavicka ="From:domena@domena.tld\n";
$hlavicka.= "MIME-Version: 1.0\n";
$hlavicka.= "Content-Type: text/plain; charset=\"windows-1250\"\n";
$hlavicka.= "Content-Transfer-Encoding: base64\n";
$predmet = "ěščřžýáíé";
$obsah = "ěščřžýáíé";
$encodedsubject = base64_encode ($predmet);
$predmet = "=?windows-1250?B?$encodedsubject?=\r\n";
$obsah = base64_Encode($obsah);
$posli = mail("prijemce@domena.tld", $predmet,$obsah,$hlavicka);

Nahlásit jako SPAM
IP: 90.177.40.–
pawlik0
Grafoman
7. 10. 2008   #8
-
0
-

To toka : jsem na to přišel až z kodu ;-)

Nahlásit jako SPAM
IP: 84.42.151.–
Sa Nata A Na. Howgh
Janina0
Návštěvník
7. 10. 2008   #9
-
0
-

Mám dvě stránky. Obě jsou v kódování windows 1250. Ale když vyplním text ve formuláři a použiji diakritiku, tak na email mi přijde špatně kódovaná - místo š a ž přijde čtvereček.

Doufám, že je problém už zřejmý :)


:smile4:
díky, vyzkouším to

Nahlásit jako SPAM
IP: 89.235.32.–
pawlik0
Grafoman
7. 10. 2008   #10
-
0
-

To Janina : jasně. Ale mohlas to napsat už v prvním příspěvku... :smile1:

Nahlásit jako SPAM
IP: 84.42.151.–
Sa Nata A Na. Howgh
Janina.
~ Anonymní uživatel
1 příspěvek
17. 10. 2008   #11
-
0
-

Všimla jsem si, že ve spoustě skriptů je u toho kontaktního formuláře action="" nebo action="."

1. - znamená to, že se obsluhuje skript sám?
2. - nechápu, proč je tam ta tečka, jaký má význam, tipla bych si, že žádný, je to tak?

Nahlásit jako SPAM
IP: 89.235.32.–
KIIV
~ Moderátor
+43
God of flame
17. 10. 2008   #12
-
0
-

To Janina. : . znaci aktualni adresar... zname hlavne z linuxu... treba nektery mobily nedonutis aby poslali vysledek kdyz tam das jen action=""

Nahlásit jako SPAM
IP: 80.250.27.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Janina0
Návštěvník
20. 10. 2008   #13
-
0
-

Prosim Vás, pomozte, opravdu už do toho koukam dlouho. Možná nechápu souvislosti, ale...zkuste mi to prosím opravit.

<?

function CZMail($to, $subj, $zprava, $headers = "")
{

$zprava = StrTr($text,
"\x8A\x8D\x8E\x9A\x9D\x9E",
"\xA9\xAB\xAE\xB9\xBB\xBE");

$zprava = Base64_Encode($text);

$headers .= "MIME-Version: 1.0\n".
"Content-Type: text/plain; charset=\"iso-8859-2\"\n".
"Content-Transfer-Encoding: base64\n";

if($_POST['antispam']==4) {
Mail("email", $subj, $zprava, $headers,"From: ". $mail_odesilatele);

echo "<big>Váš email byl odeslán a čeká na vyřízení.</big>";
}

else
{
echo "<big>Vyplňte prosím správně antispamovou ochranu.</big>";}
}
?>


Samozřejmě místo emailu mám nějký platný email. Ale co se mi s tím děje teď?
Vyplním formulář, odešlu, nevypíše se ani chybová hláška ani nic. A mail také nedorazí.
Dík za váš čas.

Nahlásit jako SPAM
IP: 89.235.32.–
Tocimanko0
Grafoman
20. 10. 2008   #14
-
0
-

Mail("email", $subj, $zprava, $headers,"From: ". $mail_odesilatele);


Myslím, že to "From: ..." by malo byť v $headers. Keď máš dokument vo windows-1250, prečo máš v $headers iso-8859-2? Skús tam dať utf-8 alebo windows-1250. Zbytočne si komplikuješ život. Ja som v $headers nastavil kódovanie a normálne som posielal maily s diakritikou. Nemôžem ti ukázať kód, lebo mám všetky dáta na USB kľúči a ten má poškodený filesystem, takže ho musím dať špecializovanej firme. Hm.

Nahlásit jako SPAM
IP: 195.91.85.–
Tocimanko0
Grafoman
20. 10. 2008   #15
-
0
-

Ešte jedna vec.. Skús si ten riadok s f-ciou mail() trošku ošetriť.

$result = mail("email", $subj, $zprava, $headers,"From: ". $mail_odesilatele);


Daj si po vykonaní vypísať premennú $result. Vracia true (1) pri úspechu, false (0) pri zlyhaní.

Ahoj

EDIT: http://sk.php.net/manual/en/function.mail.php

Nahlásit jako SPAM
IP: 195.91.85.–
Janina0
Návštěvník
20. 10. 2008   #16
-
0
-

ahoj :) Nevrací mi nic ani po tomhle. Nic se nevypíše. Zkoušela jsem dokonce jestli nemám nastavenou stejnou barvu pozadí a písma - nikoliv :) Fakt už teda nevim.



$result = Mail("email", $subj, $zprava, $headers);

if ($result==true)
echo "Vse ok";
else "Spatne";

Nahlásit jako SPAM
IP: 89.235.32.–
Tocimanko0
Grafoman
20. 10. 2008   #17
-
0
-

CHYBA...

if ($result==true)

echo "Vse ok";
else
echo "Spatne";

Nahlásit jako SPAM
IP: 195.91.85.–
pawlik0
Grafoman
20. 10. 2008   #18
-
0
-

To Janina : Obyčejně pomocí mail() se email dá odeslat, tj. není chyba na straně hostingu/serveru?
Pak si zkus poctivě vypsat všechny proměnné ve funkci mail, jestli neodesíláš něco blbě.

  $zprava = StrTr($text, 

"\x8A\x8D\x8E\x9A\x9D\x9E",
"\xA9\xAB\xAE\xB9\xBB\xBE");

$zprava = Base64_Encode($text);

zdá se mi to nebo nevidím definici $text? nemá tam být $zprava?

Nahlásit jako SPAM
IP: 84.42.151.–
Sa Nata A Na. Howgh
Tocimanko0
Grafoman
20. 10. 2008   #19
-
0
-

To pawlik : Vyzerá to tak. Missing input variable $text :)

EDIT: Je tu ešte možnosť, že vykonávanie skriptu sa nedostane po f-ciu mail(). Ale to len čisto teoreticky. Musíš si nechať vypísať všetky premenné (samozrejme tak, aby si vedela, ktorá je ktorá) a testovať každý riadok kódu na ne/úspešné vykonanie (ako som ti ukazoval s f-ciou mail() )

Nahlásit jako SPAM
IP: 195.91.85.–
Lukas
~ Anonymní uživatel
301 příspěvků
21. 5. 2013   #20
-
0
-

#1 Janina


Jen kdyby někdo hledal a řešil ten samý problém, tak pomůže

$zprava = convertwin1250($text);

Nahlásit jako SPAM
IP: 194.213.35.–
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, 68 hostů

Podobná vlákna

Diakritika — založil DjHard

Diakritika — založil suchla

Diakritika — založil peter

 

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