Autor | Zpráva | ||
---|---|---|---|
Olanka Profil * |
#1 · Zasláno: 3. 3. 2008, 22:53:09
Ahojky mám problém, potřebovala bych pomoct s formulářem. Nejde mi tam správně čeština v předmětu, tak někde jsem slyšela, že pomáhá převedení utf na iso můžete mi pomoct ?
mám skript z: mailform skript je: <?php $cisla = Array("0" => "nula", "1" => "jedna", "2" => "dvě", "3" => "tři", "4" => "čtyři", "5" => "pět", "6" => "šest", "7" => "sedm", "8" => "osm", "9" => "devět"); $i = mt_rand(0,9); $cislo = $cisla[$i]; $sifra = md5($i); if(isset($_POST[odesli_mail])) { $cislo2 = escapeshellcmd($_POST[cislo]); if(($_POST[sifra]) && ($_POST[sifra] != md5($cislo2))) { $oznam .= " - číslo bylo špatně opsáno<br />"; $over = FALSE; } if(isset($_POST[odesilatel])) { $odesilatel = htmlspecialchars(escapeshellcmd($_POST[odesilatel])); $odesilatel = strtr($odesilatel, "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz", "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž"); if($odesilatel == "") { $oznam .= " - povinné pole <b>Odesílatel</b> nebylo vyplněno<br />"; $over = FALSE; } $odesilatel = substr($odesilatel, 0, 50); } if(isset($_POST[predmet])) { $predmet = htmlspecialchars(escapeshellcmd($_POST[predmet])); $predmet = strtr($predmet, "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz", "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž"); if($predmet == "") { $oznam .= " - povinné pole <b>Předmět</b> nebylo vyplněno<br />"; $over = FALSE; } $predmet = substr($predmet, 0, 50); } else { $predmet = $data[vych_pred]; } if(isset($_POST[email])) { $email = htmlspecialchars(escapeshellcmd($_POST[email])); if($email == "") { $oznam .= " - povinné pole <b>Váš email</b> nebylo vyplněno<br />"; $over = FALSE; $pokrac = 1; } $cast1 = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; $cast2 = '[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])'; if((!eregi("^$cast1+(\\.$cast1+)*@($cast2?\\.)+$cast2\$", $email)) && ($pokrac != 1)) { $oznam .= " - emailová adresa je uvedena v nesprávném formátu - jmeno@domena.koncovka<br />"; $over = FALSE; } } if($_POST[zprava] == "") { $oznam .= " - povinné pole <b>Zpráva</b> nebylo vyplněno<br />"; $over = FALSE; } else { $zprava = $_POST[zprava]; $vychozi = Array(";","'","&","<",">"); $nahrad = Array(",","","&","<",">"); $zprava = str_replace($vychozi,$nahrad,$zprava); $vychozi = Array("","","","","\n"); $nahrad = Array("<b>","</b>","<i>","</i>"," <br /> "); $zprava = str_replace($vychozi,$nahrad,$zprava); $slova = explode(" ",$zprava); $zprava = ""; for($i = 0; $i < sizeof($slova); $i++) { if(eregi("(http://[^ ]+\.[^ ]+)", $slova[$i])) { $cast = substr($slova[$i], 0, 30); if(strlen($slova[$i]) > 30) { $odkaz = "<a href=\"\\1\">$cast…</a>"; } else { $odkaz = "<a href=\"\\1\">$cast</a>"; } $slova[$i] = ereg_replace("(http://[^ ]+\.[^ ]+)", " $odkaz ", $slova[$i]); } else { $slova[$i] = wordwrap($slova[$i], 40, " ", 1); } $zprava .= " ".$slova[$i]; } $pocet = substr_count($zprava, "<b>"); $pocet2 = substr_count($zprava, "</b>"); if($pocet != $pocet2) { $pridat = $pocet - $pocet2; for($i = 0; $i < $pridat; $i++) { $zprava .= "</b>"; } } $pocet = substr_count($zprava, "<i>"); $pocet2 = substr_count($zprava, "</i>"); if($pocet != $pocet2) { $pridat = $pocet - $pocet2; for($i = 0; $i < $pridat; $i++) { $zprava .= "</i>"; } } } if(file_exists("$slozka/konfigurace.php")) { include("$slozka/konfigurace.php"); } else { $oznam = "Konfigurační soubor mailového formuláře <b>konfigurace.php</b> nebyl nalezen."; $over = FALSE; } $hlavicky .= "From: $odesilatel <$email>\n"; $hlavicky .= "X-Sender: <$email>\n"; $hlavicky .= "Content-Type: text/html; charset=".$kodovani."\n"; $zprava .= "<br /><span style=\"color: #666666;\">---<br />IP adresa odesílatele: <b>$ip</b></span>"; if($over) { mail($vas_email, $predmet, $zprava, $hlavicky); $oznam = "<b>Zpráva byla úspěšně odeslána.</b>"; } } ?> <script type="text/javascript"> <!-- function area(text) { var txtarea = document.post.zprava; text = '' + text + ''; if (txtarea.createTextRange && txtarea.caretPos) { var caretPos = txtarea.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text; txtarea.focus(); } else { txtarea.value += text; txtarea.focus(); } } // --> </script> <div id="mailform"> <form action="" method="post" id="post"> <fieldset> <?php if($data[odesilatel] == 1) { echo "\t\t\t<p><label><b>Odesílatel:</b> </label><input class='odsun1' type=\"text\" name=\"odesilatel\" /></p>\n"; } if($data[email_odes] == 1) { echo "\t\t\t<p><label><b>Váš email:</b> </label><input class='odsun2' type=\"text\" name=\"email\" /></p>\n"; } if($data[predmet] == 1) { echo "\t\t\t<p><label><b>Předmět:</b> </label><input class='odsun3' type=\"text\" name=\"predmet\" /></p>\n"; } if($data[antispam] == 1) { echo "\t\t\t<p><label>Opište čí |
||
Olanka Profil * |
#2 · Zasláno: 3. 3. 2008, 22:57:11
pokračování
if($data[antispam] == 1) { echo "\t\t\t<p><label>Opište číslici: <b>$cislo</b> </label><input type=\"text\" name=\"cislo\" id=\"kod\" /><input type=\"hidden\" name=\"sifra\" value=\"$sifra\" style=\"display: none;\" /></p>\n"; } ?> <textarea name="zprava" cols="20" rows="5"></textarea> <input type="submit" name="odesli_mail" value="Odeslat" id="odeslat" /> <?php if(!$over) { echo "<br />".$oznam."<br /><b>Zpráva nebyla odeslána !</b>"; } else { echo $oznam; } ?> </fieldset> </form> </div> a já bych tam potřebovala zakomponovat, předělat na toto: public function sendMail( ) { $obsah = iconv( "utf-8", "iso-8859-2", $this->text ); if ( mail( "info@domena.cz", "E-mail z webu", $obsah, "From: ". $this->mail."\nContent-Type: text/plain; charset=iso-8859-2\n" ) ) { echo "E-mail byl odeslán."; } někde jsem našla kus kódu co by to měl převádět na iso, prý utf všechny klienti nezvládají. Díky moc. |
||
Časová prodleva: 9 dní
|
|||
Olanka Profil * |
#3 · Zasláno: 12. 3. 2008, 19:32:48
Lidi, pomožte mi s češtinou, moc prosím ...
|
||
Alphard Profil |
#4 · Zasláno: 12. 3. 2008, 20:30:59
ten kód je svou délkou dost odrazující
jestli jde jen o diakritiku v mailu (již tisíckrát vyřešenou), koukni sem http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=70593&foru m=9&page=-1 |
||
Olanka Profil * |
#5 · Zasláno: 12. 3. 2008, 21:46:49
To jó, ale tady to mám též vyřešené, akorát že zvlášť, nevím co kde změnit, aby se to předělalo do funkčního kódu.
|
||
kubiseg Profil |
#6 · Zasláno: 13. 3. 2008, 09:14:42 · Upravil/a: kubiseg
Olanka
a proc to posilas v iso? by me zajimalo, ktery klient v dnesni dobe nezvlada UTF... odstran radek $obsah = iconv( "utf-8", "iso-8859-2", $this->text ); skoro na konci skriptu a pak zmen odeslani mailu na tohle if ( mail( "info@domena.cz", "E-mail z webu", $this->text, "From: ". $this->mail."\nContent-Type: text/plain; charset=utf-8\n" ) ) { echo "E-mail byl odeslán."; } melo by to jit... ;-) |
||
Olanka Profil * |
#7 · Zasláno: 13. 3. 2008, 21:36:21
utf nezládá seznam, mylim gmail apod.
|
||
kubiseg Profil |
#8 · Zasláno: 14. 3. 2008, 09:20:34
Olanka
hloupost... posílám na @seznam.cz i na gmail.com veskere maily pouze v UTF-8 a nikdy mi to problem nedelalo... |
||
Olanka Profil * |
#9 · Zasláno: 15. 3. 2008, 13:45:37
Vlastně je problém, že políčko "jméno" má místo znaků jen otazníky a to hlavně u SEZNAMu !!!
|
||
Časová prodleva: 16 let
|
0