View previous topic :: View next topic |
Author |
Message |
Danko
Joined: 16 Sep 2004 Posts: 124 Location: Zagreb
|
Posted: 08.02.2005 02:17 Post subject: PHP mail() funkcija - hrvatska slova? |
|
|
Pokušao sam na nekoliko načina (i sa utf8_decode()), ali nikako nisam uspio postići da php mail() funkcija šalje hrvatska slova (riječ je o "plain text" mailu).
Dobiveni mail mi izgleda ovako:
Quote: | - lijepa na?a hrvatska slova (?????) i CRO tipkovnica (QWERTZ)
- driver za mi? CUTEMOUSE koji podr?ava PS2, USB i serial mi?eve. |
I tako... upitnici umjesto naših slova.
Može pomoć? |
_________________ dankokozar.com | Adjungo | UnityHR | eDriven |
|
Back to top |
|
|
budha
Joined: 02 Mar 2004 Posts: 1377 Location: Osijek
|
Posted: 08.02.2005 12:15 Post subject: |
|
|
pogledas manual,
pa vidis primjer:
manual wrote: | $to = "george.bush@whitehouse.org";
$totext = "George W. Bush";
$headers = "MIME-Version: 1.0 \n" ;
$headers .= "Content-Type: text/html; charset=iso-8859-1 \n";
$headers .= "To: $totext<$to> \n";
$message = "something meaningless";
mail("",$message,$headers); |
|
_________________ I hate to advocate drugs, alcohol, violence, or insanity to anyone, but they've always worked for me. |
|
Back to top |
|
|
zytzagoo mi3.crew
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
|
Posted: 08.02.2005 13:24 Post subject: |
|
|
Naravno, vodiš računa da stranica na kojoj je forma u koju se eventualno upisuju podaci bude istog encodinga kao i mail koji zelis poslati...
Ako ne ides preko forme, postavit headere ovako:
Code: | $headers = "Content-Type: text/plain; charset=win-1250\n"; |
Ako php pises na windowsima u nekom editoru u win-1250 charsetu. Ovo ti predlazem samo kao najlakse rjesenje, ali budi spreman na to da nece raditi svuda.
Ako hoces utf-8, postavis utf-8 header, i pokusas kodirati sve sa utf8_encode() (a ne decode), mada ti za razorazne konverzije preporucam iconv() [ http://hr.php.net/iconv ] funkciju jer provjereno radi u svim mogucim smjerovima kodiranja.
Iako, meni se do sada kao najsigurnije rjesenje pokazalo koristenje iso-8859-2 encodinga, jer radi gdje god sam probao.
Sretno. |
_________________ [+]I[+]am[+]my[+]own[+]religion[+] |
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 08.02.2005 13:59 Post subject: |
|
|
zytzagoo wrote: | Iako, meni se do sada kao najsigurnije rjesenje pokazalo koristenje iso-8859-2 encodinga, jer radi gdje god sam probao. |
|
|
|
Back to top |
|
|
Danko
Joined: 16 Sep 2004 Posts: 124 Location: Zagreb
|
Posted: 10.02.2005 12:01 Post subject: |
|
|
Mh, da..
Upravo sam skužio da je problem u Flashu, jer forma je u Flashu i iz nje do PHP-a ne dolaze dobri znakovi (preko loadVars objekta šaljem podatke iz forme u PHP).
Uz to, imam i XML iz kojeg učitavam tekstove u Flash. XML fajl je, čini se, u UTF-8 formatu. Unutar njega korištena su 3 jezika (EN, DE, HR) i sva tri se uredno učitavaju u Flash. XML je > ovdje <.
system.useCodepage?
Probao sam s naredbom system.useCodepage = true; - iako drastično kvari znakove iz XML-a, dakle znakove koji ulaze, djelomično poboljšava stanje iz Flasha u PHP (ako u flashu napišem "ČĆŽŠĐ" do PHP-a to dolazi kao "CCŽŠĐ", pa zato pretpostavljam da sam na nekakvom tragu).
Ali, kako rekoh, znakove koji mi dolaze iz XML-a mi drastično kvari. Da li mi netko može reći kako se ovo rješava? Sori ali nemam puno iskustva u encodingu... Thx! |
_________________ dankokozar.com | Adjungo | UnityHR | eDriven |
|
Back to top |
|
|
zytzagoo mi3.crew
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
|
Posted: 10.02.2005 13:01 Post subject: |
|
|
Koliko ja vidim, ovaj xml nije well formed (probaj ga otvoriti u firefoxu recimo, on se vec buni nesto). Dalje, nema definiran encoding na pocetku, a koliko mi se cini, encoding kojim je unutra tekst pisan je win-1250. Fale ti i cdata sectioni kojim kazes da se radi o priozvoljnim podacima, a ne xml instrukcijama, tagovima ili tome slicno...
Ne znam sto dobijes u php-u iz ovoga, ali prvo sredi xml (jer je to input o kojem ovisis), odluci u kojem ce on encodingu biti, i dalje samo svuda koristi onda isti encoding, i trebalo bi sve stimati... |
_________________ [+]I[+]am[+]my[+]own[+]religion[+] |
|
Back to top |
|
|
Danko
Joined: 16 Sep 2004 Posts: 124 Location: Zagreb
|
Posted: 11.02.2005 15:57 Post subject: |
|
|
Thanks, evo popravio sam XML. Sad ga možeš dobro vidjeti.
Problem je bio u "&" znakovima. Zamijenio sam ih sa "&" i sad je okej.
Encoding mi ne treba, jer imam 3 jezika u XML-u. U Flash se učitava okej...
Ali imam novi problem:
Flash mi odbija učitati XML. Zapravo - na jednoj domeni da, a na drugoj ne. Radi se o identičnim fajlovima koje sam stavio na dvije različite domene.
Stvar je jako čudna, jer svi drugi kažu da sve tekstove u Flashu dobro vide na obje domene - a ja sam jedini koji ih ne vidi na drugoj.
I to samo u Internet Exploreru - Netscape i Firefox ih učitavaju skroz normalno.
Zašto ih drugi vide na IE a ja ne? Pretpostavljam da je to kombinacija Operativnog sustava i još koječega. I nije mi jasno, ako sam iskopirao sadržaj jedne domene na drugu, a s ove prve vidim sve super - da li je moguće da je stvar u serveru? |
_________________ dankokozar.com | Adjungo | UnityHR | eDriven |
|
Back to top |
|
|
zytzagoo mi3.crew
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
|
Posted: 11.02.2005 17:04 Post subject: |
|
|
Ima onih nekih parametara koji se predaju flashu, tipa: allowedDomains ili tako nesto, ne sjecam se na pamet... Mozda je u tome kvaka, da activex kontrola na windowsima postuje taj parametar...
Naravno, moguce je da je stvar i u serveru, ako su razliciti i ovaj drugi ne dozvoljava neke stvari, ali to je sve toliko sto-bi-bilo-kad-bi-bilo varijanta...
Bez konkretnih podataka i svih parametara s kojima pozivas flash, tesko da mozemo o necemu konkretnom pricati...
Bitno da drugima radi, hehe |
_________________ [+]I[+]am[+]my[+]own[+]religion[+] |
|
Back to top |
|
|
Danko
Joined: 16 Sep 2004 Posts: 124 Location: Zagreb
|
Posted: 12.02.2005 20:07 Post subject: |
|
|
zytzagoo wrote: | Bitno da drugima radi, hehe |
Da, ali ipak se glupo osjećam kad meni ne radi...
btw. ne koristim nikakva "allowedDomains" ograničenja sa strane Flasha.
Hmmm.. da.. ne možemo pričat dok nisam stavio konkretan primjer.. Dakle, na ova dva linka uploadani su identični fajlovi (i Flash i XML):
1) http://www.dkozar.com/flash/promatis
2) http://www.promatis.hr/
Problem je što samo meni link broj 2) ne radi dobro i to samo u Internet Exploreru. Flash ne povuče cijeli XML (http://www.promatis.hr/data.xml) koji je težak 7kB, već u Temporary Internet Files nađem data.xml koji je težak 3 kB i ne izgleda normalno kad ga otvorim u editoru - nego kao neki kriptiran fajl, tj. gomila smeća.. I naravno, Flash ga ne kuži. Posljedica: polja u kojima se ispisuje tekst su prazna. |
_________________ dankokozar.com | Adjungo | UnityHR | eDriven |
|
Back to top |
|
|
zytzagoo mi3.crew
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
|
Posted: 12.02.2005 20:14 Post subject: |
|
|
Ne znam, meni se također oba učitaju uredno u svim browserima. 7KB.
Hm, jesi probao kompletno ispraznit svoj IE cache i onda probat ucitat oba sitea?
Mozda je ostao keširan iz neke devel faze gdje nesto nije radilo kako spada, pa ti sad stalno vuče tu verziju... IEov cache je poznat po takvim detaljčićima, pogotovo u kombinaciji s flashom...
Mozes probat i flashu poslat random parametar prilikom pozivanja swf-a, pa ce to forsirat dohvat nove verzije swf-a, a ne cacheirane, a ako ti i onda uhvati takav broken xml, onda stvarno ne znam... |
_________________ [+]I[+]am[+]my[+]own[+]religion[+] |
|
Back to top |
|
|
Danko
Joined: 16 Sep 2004 Posts: 124 Location: Zagreb
|
Posted: 12.02.2005 22:34 Post subject: |
|
|
Naravno da sam izbrisao cache... Ručno i sa toolovima za brisanje cachea. Stalno mi je prst na okidaču... Po noći već sanjam kak brišem Cache.
Nema to veze s cacheom.
A problem je fakat čudan: samo sa drugog sajta i samo na mom kompu i samo na IE-u mi učitava slomljeni XML. |
_________________ dankokozar.com | Adjungo | UnityHR | eDriven |
|
Back to top |
|
|
zytzagoo mi3.crew
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
|
Posted: 13.02.2005 13:10 Post subject: |
|
|
Another wild guess: probao si onda vjerojatno i obrisati sve lokalne swf-ove koje imas na svom kompu dok si radio razvoj toga, i onda publishati ponovno taj fla, i uploadati najnoviju verziju na oba servera i onda testirati jel jos uvijek ne radi?
Ne pada mi na pamet s cim bi jos moglo imati veze osim s cacheom, ili s nekim wierd security settingom u internet exploreru... Stvarno cudno. |
_________________ [+]I[+]am[+]my[+]own[+]religion[+] |
|
Back to top |
|
|
Danko
Joined: 16 Sep 2004 Posts: 124 Location: Zagreb
|
Posted: 14.02.2005 12:37 Post subject: |
|
|
Problem je u mom Flash playeru za IE.
Skužio sam da mi ni u nekim folderima na hardu Flash ne radi dobro učitavanje XML-a. Ako iste fajlove stavim u neki drugi folder - sve radi.
Bizarno! |
_________________ dankokozar.com | Adjungo | UnityHR | eDriven |
|
Back to top |
|
|
zytzagoo mi3.crew
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
|
Posted: 14.02.2005 12:38 Post subject: |
|
|
Jel folder ima neke cudne (non english) znakove u svom imenu? Ili neki cudan atribut, tipa read-only, archive ili neku windows-only debilanu? |
_________________ [+]I[+]am[+]my[+]own[+]religion[+] |
|
Back to top |
|
|
Danko
Joined: 16 Sep 2004 Posts: 124 Location: Zagreb
|
|
Back to top |
|
|
jokla
Joined: 31 Oct 2004 Posts: 113 Location: Right behind you
|
Posted: 06.03.2005 12:00 Post subject: |
|
|
Imam mali problem s našim slovima.
Neće mi ispisati hrvatska slova kada javlja poruku da je nešto pogrešno unešeno u formu.
Evo, ovkao mi izgleda
Code: | <?php
$toMail = 'mail@mail.ola'; // your email address
?>
<?
if ($send){
if ($name != ""){ /* javlja grešku ako nije zadano ime */
$name=trim($name);
$s=substr_count($name,"@");
$d=substr_count($name,".");
if ($s==0 && $d>=0) {
$name_ok = "ok";
} else {
echo "Napišite svoje ime...<br />";
}
} else {
echo "Napišite svoje ime...<br />";
}
if ($email != ""){ /* validator e-mail adrese, upozorava kod nedostatka takvoga i kod pogrešnog oblika */
$email=trim($email);
$s=substr_count($email,"@"); /* potreban znak */
$d=substr_count($email,"."); /* potreban znak */
$m=substr_count($email," "); /* prazan prostor */
if ($s==1 && $d>=1 && $m==0) { /* @ znak potreban, . potreban, nedopušten prazan prostor */
$email_ok = "ok";
} else {
echo "Napisali ste pogrešan oblik e-mail adrese. Molim napišite tocnu oblik adrese...<br>";
}
} else {
echo "Napišite e-mail adresu...<br>";
}
if ($subject != ""){ /* validator naslova, upozorava osobu na nedostatak naslova */
$subject=trim($subject);
$s=substr_count($subject,"@");
$d=substr_count($subject,".");
if ($s==0 && $d>=0) {
$subject_ok = "ok";
} else {
echo "Niste napisali naslov poruke...<br>";
}
} else {
echo "Niste napisali naslov poruke...<br>";
}
if ($subject_ok && $name_ok && $email_ok && $comments)
{
mail("$toMail","$subject","$name wrote:\n\n$comments\n\n\n Website: $url\n E-mail: $email ", "FROM:$email");
echo "Poruka poslana!";
} else {
echo "Ispunite sva tražena polja!";
}
}
?>
<form name='mailform' method='post' action='' id='formmail'>
<h4 class="h4name">ime ( * )</h4>
<input type='text' name='name' id='name' /><br />
<h4>e-mail ( * )</h4>
<input type='text' name='email' id='email' /><br />
<h4>naslov ( * )</h4>
<input type='text' name='subject' id='subject' /><br />
<h4>webstranica</h4>
<input type='text' name='url' id='url' /><br />
<h4>poruka ( * )</h4>
<textarea name='comments' id='message'></textarea><br /><br />
<i>( * ) potrebna polja</i><br /><br />
<input type='submit' name='send' id='submit' value='pošalji poruku' class='button' />
<input type='reset' name='reset' id='refresh' value='obriši polja' class='button' />
</form> |
Kuda sada, moram upisati taj "Content-Type: text/html; charset=iso-8859-2 \n"; da bi vidio text na hrvatskom.
Koji tekst ? ? ? Odite na http://www.igorklajo.de/portfolio/index.php?id=contact i kliknite na pošalji. Iznad forme će se pojaviti narančasti tekst (koji se mora još dotjerat) sa porukama šta ne valja kod unošene informacije, ali nema naših ćčšžđ-a, a i nekako mi ni na buttonu nema, mada mi je u headeru iso-8859-2.
btw. kada dobijem mail onda mi ispiše naša slova ( mislim da to nema veze sa time, nego sa Thunderbirdom )
Thanks. |
_________________ "If this world makes you crazy, than everything is ok with you" - ~demony |
|
Back to top |
|
|
che.UP mi3.crew
Joined: 07 Sep 2003 Posts: 2320 Location: zagreb
|
Posted: 06.03.2005 13:20 Post subject: |
|
|
to je, cini mi se, zato sto ti je taj php file pisan u nekom editoru koji ga sejva kao win 1250, trebao bi konvertirat znakove š i ž u ekvivalente....
win 1250
iso 8859-2
|
_________________ UP | TypeTester | Accommodations App
Meni u Firefox-u ne radi AJAX |
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 08.03.2005 13:29 Post subject: |
|
|
che.UP wrote: | zato sto ti je taj php file pisan u nekom editoru koji ga sejva kao *** |
|
|
|
Back to top |
|
|
dadot
Joined: 05 Nov 2006 Posts: 13
|
Posted: 27.11.2006 21:45 Post subject: |
|
|
Ja imam isti problem sa Hrvatskim znakovima!
Probao sam sve moguće solucije, koristim "utf-8" encoding na svim stranicama!
evo šta dobijem u mailu (Ä� Ä� Ĺž ĹĄ Ä�)
a ovo se šalje formom (č ć ž š đ)!
Na stranici di se nalazi forma koristim utf-8 i u headeru maila sam stavio encoding utf-8
U formi imam definirano enctype="multipart/form-data", čak sam i stavio accept-charset="utf-8" unutar forme!
I neće, probao sve kombinacije! Jel ima netko ideju, gore je opisano da treba samo imat isti encoding na svim stranicama, ja sam to napravio i opet ne radi!
Pomagajte |
|
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 27.11.2006 22:25 Post subject: |
|
|
dadot wrote: | Na stranici di se nalazi forma koristim utf-8 i u headeru maila sam stavio encoding utf-8 |
bilo bi zgodno da vidimo kako zoveš mail()
Quote: | U formi imam definirano enctype="multipart/form-data", čak sam i stavio accept-charset="utf-8" unutar forme! |
to oboje izbaci, ne treba ti (pogotovo enctype)
Quote: | I neće, probao sve kombinacije! |
S čim gledaš mail? Yahoo zna biti glup za UTF-8
U svom klijentu za mail pogledaj što si dobio - ako je smeće pogledaj koji encoding program misli da je to. Probaj ručno staviti na UTF-8, i nađi gdje možeš vidjeti source maila, zatim pogledaj u source da li je "Content-type" header ispravan |
|
|
Back to top |
|
|
dadot
Joined: 05 Nov 2006 Posts: 13
|
Posted: 28.11.2006 00:49 Post subject: |
|
|
Quote: | bilo bi zgodno da vidimo kako zoveš mail() |
ovo je dio skripte...
Code: |
//mail adresa
$mail = "email";
//subject
$subject= "Vicevi";
//heder
$headers = "From: Vicevi Mail Form\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
//poruka
$message = "Ime pošiljatelja: ".$_POST[ime]."\r\n";
$message .= "E-mail adresa pošiljatelja: ".$_POST[email]."\r\n";
$message .= "Naslov: ".$_POST[naslov]."\r\n";
$message .= "Vic dana: \r\n";
$message .= $_POST[vic]."\r\n";
$message .= "Kategorija: ".$_POST[kategorija];
if (mail($mail,$subject,$message,$headers))
{
// poruka: poslano
}
else
{
// poruka o grešci
}
|
|
|
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 28.11.2006 17:03 Post subject: |
|
|
Preglednije to malo piši, a nakon headera nemoj staviti dvostruki CR/LF pliz
Code: | <?php // početak fajla!
$mail = "email@example.com";
$subject= "Vicevi";
$headers = array(
'From' => 'Vicevi Mail Form',
'Content-Type' => 'text/plain; charset=utf-8'
);
$headers_flat = array();
foreach($headers as $name => $value) $headers_flat[] = "$name: $value";
$headers_flat = join("\r\n", $headers_flat);
$message = <<<MSG
Ime pošiljatelja: {$_POST['ime']}
E-mail adresa pošiljatelja: {$_POST['email']}
Naslov: {$_POST['naslov']}
Vic dana:
{$_POST['vic']}
Kategorija: {$_POST['kategorija']}
MSG;
header('Content-type: ' . $headers['Content-Type']);
if (mail($mail,$subject,$message,$headers_flat))
{
print_r($message);
print_r($headers);
}
else
{
// poruka o grešci
}
|
Jesi pregledao mail kako ti stigne na način na koji sam ti rekao? |
|
|
Back to top |
|
|
dadot
Joined: 05 Nov 2006 Posts: 13
|
Posted: 28.11.2006 18:24 Post subject: |
|
|
Pogledao sam heder maila i encoding je dobar (utf-! Gledao sam preko Iskon maila i Thunderbird-a!
Ali i dalje nevalja ispis hrvatskih slova! |
|
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 29.11.2006 14:09 Post subject: |
|
|
Pogledaj moj primjer na kraj --- ispišem content na stranicu nakon slanja sa print_r
napravi i ti to... ako na ekranu pod utf-8 encodingom izgleda dobro, a isto se to i poslalo sa utf-8 encodingom, onda ti više stvarno nemam što za reći |
|
|
Back to top |
|
|
zytzagoo mi3.crew
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
|
Posted: 29.11.2006 15:07 Post subject: |
|
|
Iskonov webmail (last time i checked) forsira iso-8859-2 encoding na HTML outputu koji pljuje van, a pri tom ne radi konverziju sadrzaja maila (i subjecta) u iso-8859-2 (ili nesto na tu foru)...
Osim toga, puno e-mail klijenata ne zna ispravno baratati sa utf-8 encodingom, i bez obzira sto su e-mail headeri dobro podeseni, i message actually sadrzi ispravne utf-8 double-byte znakove, email klijent ih ne zna prikazati.
Recimo, MS Office outlook moze prozvakati utf-8 sadrzaj, ali subject iz nekog razloga nisam uspio dobiti da radi uvijek i svuda u utf-8...
Da li je thunderbird fully utf-8 compliant, ne znam.
Ono što sam naučio the hard way: ako je moguce, treba izbjegavati utf-8 mailove do daljnjeg, jer je client handling krajnje nekonzistentan i IMO not worth the trouble |
_________________ [+]I[+]am[+]my[+]own[+]religion[+] |
|
Back to top |
|
|
|