Autor Zpráva
Olanka
Profil *
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(",","","&","&lt;","&gt;");
$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&hellip;</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 *
pokračování
if($data[antispam] == 1) { echo "\t\t\t<p><label>Opište číslici: <b>$cislo</b>&nbsp;</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.
Olanka
Profil *
Lidi, pomožte mi s češtinou, moc prosím ...
Alphard
Profil
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 *
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
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 *
utf nezládá seznam, mylim gmail apod.
kubiseg
Profil
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 *
Vlastně je problém, že políčko "jméno" má místo znaků jen otazníky a to hlavně u SEZNAMu !!!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: