« 1 2
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 *
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
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 *
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 *
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
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
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 *
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
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
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
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
upravení Doctype dost pomohlo ikdyž to v IE není pořád ono je to už hodně použitelné.
Manny
Profil
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
Díkyza tip na t podmíněné komentáře skouknu je.;)
« 1 2

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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