Autor | Zpráva | ||
---|---|---|---|
Pajinek88 Profil |
kluci děkuji az vaši snahu tomu kodovani rozumim ale ikdyž zapnu v prohližeči kodovani utf-8 tak mam znaky misto pisma regulerne to funguje jen s windows 1250 ale jedu na maxthonu takže zkusím jiný prohlížeč ještě.. stím ověřením adresy vážně nevím kde ještě mám dát ty závorky... prosím o jejich zařazení. do kodu děkuji
co se týče ftp nahravani na webzdarma ano budu ho používat vždy sem jej používal jented vyuzžíma jejich edit. kvůli rychlosti ;) $sprava .="</table>"; if (preg_match("^.+@.+..+$^",$email)) if ($predmet!="" and $jmeno!="" and $prijmeni!="" and $mesto!="" and $psc!="" and $pozadovany_termin!="" and $telefon!="" and $modely!="" and $email!="" and $souhlas!="" and $zprava!="" and $spam=="6") { Jsem zklamán v IE to nevypadá vubec hezky a ikdyž mám zaplé kodování UTF-8 tak sou tam znaky :( proč vypadá pěkně formulář jen v jednom prohlížeči? ach jo.. a jsem zase na začátku.:( prohlížeč chrome a maxthon tabulka vypadá dobře myslím zarovnání a format textu. v IExplorer je to hrůza :( když mám pro formulář nebo pro php zvolené kodováni UTF-8 musím vždy změnit kodování v prohlížeči. :( nemohu nechat tedy kodovani na windows-1250 pro formulář i pro php. a pouze pro hlavičky na mail nechat utf-8? |
||
Manny Profil * |
#2 · Zasláno: 21. 2. 2013, 12:14:10 · Upravil/a: Manny
Takhle nějak si myslím, že by to mohhlo vypadat. Doufám, že jsem se někde zase neupsal.
Když to zkopíruješ do editoru, uložíš jako UTF-8, tak by to mělo odesílat, měly by být správně české znaky a ověřovat vstupy z formuláře. Neověřuje to ale všechny proměnné, jenom ty, které jsi tam původně měl (kdyžtak přidej). Pokud u proměnné $vin očekáváš jenom číslo, přetypuj ji jako $spam .
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Odesílání emailu</title> </head> <body> <h1>Potvrzení odeslání Formuláře</h1> <?php $predmet = htmlspecialchars($_POST['predmet']); $jmeno = htmlspecialchars($_POST['jmeno']); $prijmeni = htmlspecialchars($_POST['prijmeni']); $spolecnost = htmlspecialchars($_POST['spolecnost']); $email= htmlspecialchars($_POST['email']); $mesto = htmlspecialchars($_POST['mesto']); $ulice= htmlspecialchars($_POST['ulice']); $psc = htmlspecialchars($_POST['psc']); $pozadovany_termin = htmlspecialchars($_POST['pozadovany_termin']); $telefon= htmlspecialchars($_POST['telefon']); $modely = htmlspecialchars($_POST['modely']); $alternativni_termin = htmlspecialchars($_POST['alternativni_termin']); $vin = htmlspecialchars($_POST['vin']); $souhlas = htmlspecialchars($_POST['souhlas']); $zprava = htmlspecialchars($_POST['zprava']); $spam = (int)($_POST['spam']); if (empty($predmet) || empty($jmeno) || empty($prijmeni) empty($mesto) || empty($psc) || empty($pozadovany_termin) empty($telefon) || empty($modely) || empty($email) empty($souhlas) || empty($zprava)) //podmínka if ověřuje, jestli není PRÁZDNÁ proměnná $predmet NEBO $jmeno atd.. (AND není úplně vhodný) { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje.</p>"; } elseif ($spam !== "6") { echo "<p>Asi neumíte spočítat 5+1.</p>"; //Ověření spam testu } else //Když to všechno projde... { if (preg_match("^.+@.+..+$^",$email)) //Prověří tvar emailu. Jestli má něco před zavináčem, zavináč a pak něco s koncovkou { //Když projde i mail, sláva, jdeme odesílat $hlavicky = "MIME-Version: 1.0\r\n"; $hlavicky .= "Content-Type: text/html; charset=\"utf-8\"\r\n"; //Důležité kódování!!! $hlavicky .= "Content-Transfer-Encoding: base64\r\n"; $hlavicky .= "From: =?UTF-8?B?".base64_encode("$jmeno")."?=<$email> \r\n"; //zakódování hlavičky $predmet = "=?utf-8?B?".base64_encode($predmet)."?="; //zakódování předmětu $sprava ="<table>"; $sprava .="<tr><td>Jméno</td><td>".$jmeno."</td></tr>"; $sprava .="<tr><td>Príjmení</td><td>".$prijmeni."</td></tr>"; $sprava .="<tr><td>Společnost</td><td>".$spolecnost."</td></tr>"; $sprava .="<tr><td>Ulice/č.p.</td><td>".$ulice."</td></tr>"; $sprava .="<tr><td>Město</td><td>".$mesto."</td></tr>"; $sprava .="<tr><td>PSČ</td><td>".$psc."</td></tr>"; $sprava .="<tr><td>Požadovaný termín</td><td>".$pozadovany_termin."</td></tr>"; $sprava .="<tr><td>Telefon</td><td>".$telefon."</td></tr>"; $sprava .="<tr><td>model</td><td>".$modely."</td></tr>"; $sprava .="<tr><td>Alternativní termín</td><td>".$alternativni_termin."</td></tr>"; $sprava .="<tr><td>VIN</td><td>".$vin."</td></tr>"; $sprava .="<tr><td>Souhlas</td><td>".$souhlas."</td></tr>"; $sprava .="<tr><td>Poznámka</td><td>".$zprava."</td></tr>"; $sprava .="</table>"; $sprava = base64_encode($sprava); //zákódování obsahu těla mailu mail("servisfiat@autosalon-schromm.cz", $predmet, $sprava, $hlavicky); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se nějaký podivný.</p>"; //Když neprojde tvar mailu, zase hodí hlášku } } ?> </body> </html> Pajinek88: „nemohu nechat tedy kodovani na windows-1250 pro formulář i pro php. a pouze pro hlavičky na mail nechat utf-8?“ Myslím, že nemůžeš. To je takový problém přepsat 5 znaků v dokumentu?! |
||
donny Profil |
Manny:
> Takhle nějak si myslím, že by to mohhlo vypadat. Doufám, že jsem se někde zase neupsal. > Když to zkopíruješ do editoru, uložíš jako UTF-8, tak by to mělo odesílat, měly by být správně české znaky a ověřovat vstupy z formuláře. > Neověřuje to ale všechny proměnné, jenom ty, které jsi tam původně měl (kdyžtak přidej). Pokud u proměnné $vin očekáváš jenom číslo, přetypuj ji jako $spam. Manny a ešte si zabudol upozorniť na formulár., tj aj súboru kde je formulár daj tú metu na utf-8 Pajinek88: „nemohu nechat tedy kodovani na windows-1250 pro formulář i pro php. a pouze pro hlavičky na mail nechat utf-8?“ ne celý čas ti to tu vysvetlujeme, všade musí byť rovnaké kódovanie. Teoreticky by to mohlo byť aj windowsové ale tam môžu vzniknúť problémy, pretože je to windowsove kódovanie, UTF je univerzálne, a je defaultne pre odosielanie mailov! |
||
Pajinek88 Profil |
#4 · Zasláno: 21. 2. 2013, 12:46:21
Kluci já tomu rozumím co se mi tu snažíte furt říct o tom kodování a chápu že by všude mělo být utf-8 jelikož je novějšía universalnější. ale nezobrazuje se mi správně když nepřepnu kodování v prohlížeci kdežto windows ano. a myslím že tento formulář nebudou otvírat experti nebo lidi co si umí kodovaní přepnout.
Jinak Manny klobouk dolů.. jsi borec krásně sepsané i vysvětlené jednotlivé příkazy. Moc děkuji. p.s drobné přebrepty pře píšu nebudu bezhlávě kopírovat už ;) p.ss jdu se učit ať jsem tak dobréj jako ty ;) p.sss všude už je utf-8;). |
||
Manny Profil * |
#5 · Zasláno: 21. 2. 2013, 12:55:35
Pajinek88:
„ale nezobrazuje se mi správně když nepřepnu kodování v prohlížeci kdežto windows ano“ To je hloupost. Někde jsi na něco zapomněl. Prohlížeč zobrazuje jen to, co ze serveru dostane. |
||
Pajinek88 Profil |
Manny:
Nezlob se ale píše mi to chybu na 28 řádku což jsou ty podmínky. proměnná VIN není pouhe číslo je to skupina znaku která se skláda z čísel a písmen ;) Manny: kež by to tak bylo ale chrome mi stránku zobrazí pouze vtom případě když zapnu kodovani windows-1250. a přes to že je to v souboru kodu tedy hlavicka napsana v utf-8 |
||
Manny Profil * |
#7 · Zasláno: 21. 2. 2013, 13:44:34
Pajinek88:
„Nezlob se ale píše mi to chybu na 28 řádku což jsou ty podmínky.“ mezi $pozadovany_termin a $telefon mi chybí ||
|
||
Pajinek88 Profil |
#8 · Zasláno: 22. 2. 2013, 08:45:23
Ahoj,
Vítám Vás v nekonečném seriálu ;) Tak ty vodorovné čáry jsem všude doplnil, ale ještě to neí uplně všechno asi po vyplnění všech bunek i spamu to vypíše že byl email odeslan ale vypíše to větu "Asi neumíte počítat 5+1. ta se má zobrazit když se spam nevyplní ne? a formulář neodešle. |
||
donny Profil |
Pajinek88:
> Ahoj, > Vítám Vás v nekonečném seriálu ;) > Tak ty vodorovné čáry jsem všude doplnil, ale ještě to neí uplně všechno asi po vyplnění všech bunek i spamu to vypíše že byl email odeslan ale vypíše to větu "Asi neumíte počítat 5+1. ta se má zobrazit když se spam nevyplní ne? a formulář neodešle. V tomto prípade sa jedná o preklep pri opáratore rovnosti $spam !== "6", zmeň to na $spam != 6. Pomocou int totiž došlo k pretypovaniu dátového formátu premennej $_POST[spam] na číslo a preto je správne použiť porovnanie miesto testu identicity aj keď aj to by prešlo v prípade že by si tam do podmienky dal číslo (nie text).. |
||
Pajinek88 Profil |
donny:
Tak tomu vůbec nerozumím.. :D Já myslel když jsou dvě rovnáse za sebou že to znamená že platí pouze to číslo co je uvedeno a když je jen jedno rovná se že tam může být i jiné. Ale i tak to jdu zkusit ;) Ono to už běží... Jupí.. jak Vám mám poděkovat chlapci? povídej te.. až mi bude smutno že už tu nemusím nic řešit :(... DĚKUJI MOC Přece jen bych se ještě zeptal jde udělat aby se mi zobrazovala diakritika jako háčky čárky atd. u výběru radio v mejlu? nebo je lepší bez diakritiky to přenášet? |
||
donny Profil |
Pajinek88:
„Já myslel když jsou dvě rovnáse za sebou že to znamená že platí pouze to číslo co je uvedeno a když je jen jedno rovná se že tam může být i jiné. Ale i tak to jdu zkusit ;)“ Jedno = znamená priradenie, tj $a = 6; priradil som hodnotu premennej $a, s porovnaním to nemá nič spoločné. Možnosti porovnania sú: 1. Rovnosť == Nerovnosť != 2. Identicita === Neidenticita !== Ak ale používaš int() danú hodnotu pretypovávaš (určuješ jej napevno že je to číslo, v PHP sa to nevyžaduje, v iných jazykoch áno). Keď už to ale robíš tak s tým musíš pracovať a počítať. Ak porovnáš pomocou identicity $spam !== "6" testuješ či textový reťazec 6 (to definujú tie uvodzovky) je identický číslu 6, čo logicky neplatí. Viac v manuály „Přece jen bych se ještě zeptal jde udělat aby se mi zobrazovala diakritika jako háčky čárky atd. u výběru radio v mejlu? nebo je lepší bez diakritiky to přenášet?“ Väčšinou sa to robí tak že máš informácie poukladané v mysql tabuľke a tie potom načítavaš do formuláru, resp. do mailu. V tvojom prípade by som s MySQL asi zatiaľ nezačínal, najskôr by si si mal niečo viac naštudovať o PHP. Môžeš odosielať aj diakritiku priamo, mne osobne sa to riešenie nepáči.. |
||
Pajinek88 Profil |
#12 · Zasláno: 22. 2. 2013, 10:24:07 · Upravil/a: Pajinek88
Určitě se do databázi MySQL pouštět nebudu. nechám to tak.. a od víkendu začnu študovat PHP. Určitě Děkuji...
už vím co jsem chtěl ještě.. Kluci jak udělám,aby se i IE zobrazil správně formulář? |
||
Manny Profil * |
#13 · Zasláno: 22. 2. 2013, 12:29:44
Pajinek88:
„Kluci jak udělám,aby se i IE zobrazil správně formulář?“ Tím myslíš co? Správně české znaky nebo se ti v IE rozpadá vzhled? |
||
donny Profil |
#14 · Zasláno: 22. 2. 2013, 13:29:02
Formulár sa v IE zobrazuje, len je posunutý doprava. Preto je jasné že problém je len vo formátovaní (nie v obsahovej časti).. teda v HTML tabulkách a css štýloch ktoré tam máš.
Osobne by som vzhľad toho formuláru úplne prekopal a to jak s pohľadu HTML tak celé CSS napr. takto <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Formulář</title> <style> fieldset { clear: both; margin: 1em 0 0 0; padding: 10px; overflow: auto; background-color: #f8f8f8; border: 1px solid #888; } legend { font-weight: bold; } div.form-block { clear: both; margin: 0; padding: 0.5em; border-bottom:1px solid #eee; } div.form-block-submit { clear: both; margin: 0; padding: 0.5em; } div.form-block-submit input { background:rgb(153,204,204); border:1px solid #fff; padding:5px; } div.fieldset-heading { padding: 0.5em; font-weight:bold; } label { padding: 2px 1ex 6px 0; vertical-align: top; } span.mandatory{ color:rgb(255,0,0); font-weight:bold; } </style> </head> <body> <H1>Objednávka na servis</H1> <form action="poslati.php" method="post"> <fieldset> <legend>Základné informácie o Vás</legend> <div class="form-block"> <label>Jméno <span class="mandatory">*</span></label><input type="text" name="jmeno" value=""> <label>Příjmení <span class="mandatory">*</span></label></td><td><input type="text" name="prijmeni" value=""> <label>Společnost</td><td><input type="text" name="spolecnost" value=""> </div> <div class="form-block"> <label>Ulice/č.p.</label><input type="text" name="ulice" value=""> <label>Město <span class="mandatory">*</span></label><input type="text" name="mesto" value=""> <label>PSČ <span class="mandatory">*</span></label><input type="text" name="psc" value=""> </div> </fieldset> <fieldset> <legend>Údaje k objednávke</legend> <div class="form-block"> <label>Požadovaný termín <span class="mandatory">*</span></label></label><input type="text" name="pozadovany_termin" value=""> <label>Telefon <span class="mandatory">*</span></label></label> <input type="text" name="telefon" value=""> <label>Model <span class="mandatory">*</span></label></label> <select name="modely" size="1"> <option disabled="disabled" value="- Vyberte -" >- Vyberte -</option> <optgroup label="Chevrolet"> <option value="Cruze">Cruze</option> <option value="Aveo">Aveo</option> <option value="Nové Aveo">Nové Aveo</option> <option value="Spark">Spark</option> <option value="NG Spark">NG Spark</option> <option value="Captiva">Captiva</option> <option value="Malibu">Malibu</option> <option value="Orlando">Orlando</option> <option value="Camaro">Camaro</option> <option value="Evanda">Evanda</option> <option value="Epica">Epica</option> <option value="Lacetti">Lacetti</option></optgroup> <optgroup label="Daewoo"> <option value="Nubira">Nubira</option> <option value="Matiz">Matiz</option> <option value="Kalos">Kalos</option> <option value="Lanos">Lanos</option> <option value="Espero">Espero</option> <option value="Racer">Racer</option></optgroup> <option value="Jiné">Jiné</option> </select> </div> <div class="form-block"> <label>Alternativní termín</label><input type="text" name="alternativni_termin"> <label>E-mail <span class="mandatory">*</span></label><input type="text" name="email" value="@" > <label>VIN</label><input type="text" name="vin" value="(číslo karoserie)"> </div> <div class="fieldset-heading">Požadovaný druh prohlídky / opravy</div> <div class="form-block"> <input type="radio" name="predmet" value="Pravidelna udrzba" checked="checked"> <label>Pra. údržba</label> <input type="radio" name="predmet" value="Oprava"> <label>Oprava</label> <input type="radio" name="predmet" value="Zarucni oprava"> <label>Záruční oprava</label> <input type="radio" name="predmet" value="karosarska oprava"> <label>karosářská oprava</label> <input type="radio" name="predmet" value="Sezoni prohlidka"> <label>Sezóní prohlídka</label> <input type="radio" name="predmet" value="Nahradni Dily"> <label>Náhradní Díly</label> <input type="radio" name="predmet" value="Jiny"> <label>Jiný</label> </div> <div class="form-block"> <label>Poznámka</label> <textarea name="zprava" rows="8" cols="80" >Zpráva...(Sem prosím uveďte podrobnější popis závady a rok výroby vašeho vozu děkuji.)</textarea><br> </div> <div class="fieldset-heading">Souhlas se zpracováním osobních údajů</div> <div class="form-block"> <input type="checkbox" name="souhlas" value="Ano"> <label>*Společnost Autosalon Schromm s.r.o. respektuje soukromí vámi poskytnutých údaju, zachází s nimi v souladu s platnými zákony na ochranu osobních údaju a zarueuje vám, že tyto údaje použije pouze pro informování o nových produktech, službách a speciálních nabídkách, které vás zajímají. Vaše údaje budou poskytnuty pouze spoleenosti Autosalon Schromm s.r.o.. Na základi shromáždiných údaju vám mužeme informace zaslat poštou, e-mailem nebo vás informovat telefonicky. Poskytnutí osobních údaju je dobrovolné.</label> </div> <div class="form-block"> <input type="text" name="spam" size="25"> <label></span> = 5 + 1 <span class="mandatory">*</label> </div> <p> * Označené položky jsou povinné položky, které je třeba vyplnit pro správné odeslání formuláře. Děkuji.</p> </fieldset> <div class="form-block-submit"> <input type="submit" value="Odeslat"> </div> </form> </body> </html> Upozorňujem že HTML kód formulárových prvkov som prevzal s niektorých tvojich predošlých príspevkov a nemusí sedieť s tvojou aktuálnov verziou, a tiež na to že som sa v CSS štýloch nedržal toho vzhľadu čo máš vo formuláre ty |
||
Pajinek88 Profil |
#15 · Zasláno: 22. 2. 2013, 13:57:22 · Upravil/a: Pajinek88
Manny:
rozpadá vzhled znaky už sem vychytal.. teď ještě dělam select pro požadovaný termín a alternativní termín ;) donny: Děkuji za zkouknuti za sepsani nového zdroje. kouknu na to ;) hned |
||
Manny Profil |
Hlavně bych změnil
!doctype v quirk módu na
<!doctype html public "-//W3C//DTD HTML 4.01//EN"> nebo ještě lépe na <!doctype html> Ale pokud to vychytáš, je to jedno |
||
Pajinek88 Profil |
#17 · Zasláno: 22. 2. 2013, 14:14:17
V podstatě tenhle disajn jsem měl jako první ;) jen sem se chtěl vyhnout fieldset. a co nejvíce napodobit sesterský vzhled od Oplu. ale tento kod bude určitě více variabilější. děkuji
|
||
donny Profil |
Pajinek88:
„V podstatě tenhle disajn jsem měl jako první ;) jen sem se chtěl vyhnout fieldset. a co nejvíce napodobit sesterský vzhled od Oplu. ale tento kod bude určitě více variabilější. děkuji“ Tak hlavne zabudni na hlúposti ako color:GhostWhite a skús vymeniť fieldset a legend za niečo takéto.. fieldset { clear: both; margin: 1em 0 0 0; overflow: auto; border:0px; } legend { background:rgb(102,102,255); font-weight: bold; padding: 10px; width:99%; display:block; color:#fff; } |
||
Pajinek88 Profil |
#19 · Zasláno: 22. 2. 2013, 14:39:32
upravení Doctype dost pomohlo ikdyž to v IE není pořád ono je to už hodně použitelné.
|
||
Manny Profil |
#20 · Zasláno: 22. 2. 2013, 15:16:31
Asi mně ostatní zdrbnou, ale zkus připojit speciální styl pro IE (případně jeho verze) pomocí podmíněných komentářů.
|
||
Pajinek88 Profil |
#21 · Zasláno: 22. 2. 2013, 16:15:49
Díkyza tip na t podmíněné komentáře skouknu je.;)
|
||
Časová prodleva: 11 let
|
0