Autor | Zpráva | ||
---|---|---|---|
vodys Profil * |
#1 · Zasláno: 7. 10. 2014, 18:19:04
Dobrý den,
jsem zatím v php neznalý, proto se obracím na vás. Najde se zde dobrá duše, která dokáže napsat jednoduchý odesílací kód, který bezpečně odešle informace zadané do formuláře na email? Přikládám kód jednoduchého formuláře. <div class="testbox"> <h1>Partnerský program</h1> <form action="/"> <hr> <div class="accounttype"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </div> <hr> <label id="icon" for="name"><i class="icon-envelope "></i></label> <input type="text" name="name" id="name" placeholder="Váš email" required/> <label id="icon" for="name"><i class="icon-user"></i></label> <input type="text" name="name" id="name" placeholder="Jméno a Příjmení" required/> <div class="gender"> <input type="radio" value="None" id="male" name="gender" checked/> <label for="male" class="radio" chec>Muž</label> <input type="radio" value="None" id="female" name="gender" /> <label for="female" class="radio">Žena</label> </div> <p>Vyřízení trvá přibližně 24 hodin.</p> <a href="#" class="button">ODESLAT</a> </form> </div> Jde o to, aby předmět emailu byl např: Zpráva z webu A v emailu se zobrazily tyto hodnoty pod sebou: Jméno a Příjmení Muž/Žena Děkuji moc všem, co mi pomůžou. |
||
Joker Profil |
#2 · Zasláno: 7. 10. 2014, 19:02:59
vodys:
„Najde se zde dobrá duše, která dokáže napsat jednoduchý odesílací kód, který bezpečně odešle informace zadané do formuláře na email?“ Jeden už tu máme v FAQ. |
||
vodys Profil * |
#3 · Zasláno: 7. 10. 2014, 19:18:09
Ano, to jsem zkoumal, ale jelikož jsem v php absolutní nemehlo, proto píšu.
Omlouvám se, ale z návodu to prostě nechápu. |
||
jefitto44 Profil |
#4 · Zasláno: 7. 10. 2014, 20:09:41
Najjednoduchšie je použiť funkciu mail... všetko, čo máš vo formulári ti ide do superglobalnej premennej $_POST["pole"]
Z <form> vymaž celé action a doplň tam method="post", to je prvá vec. Namiesto toho odkazu na odoslanie formulára potrebuješ dať <input type="submit" name="submit"> Nad formulár potom umiestni toto: <? if(isset($_POST["submit"])) { // toto skontroluje, či už bolo kliknute na tlačitko ODOSLAŤ, inak by ti furt odosielalo prazdny formular $to="tvojmail@daco.com"; $subject="Sprava z webu"; // toto čo tu zadáš sa zobrazí príjemcovi ako predmet správy $message= 'Vaš email: '.$_POST["mail"].PHP_EOL; // toto v hranatých zátvorkách musí na písmeno presne sedieť s name inputu $message.= 'Vaše meno: '.$_POST["name"].PHP_EOL; ... // pokračuj obdobne a tie tri bodky vymaž. $message.= musi tam byť aj ta bodka, inak ti prepiše premennu mail($to, $subject, $message); } ?> Upozornenie: Toto je najprimitivnejši spôsob poslania mailu, a nerieši bezpečnostne rizika, ani kodovanie znakov a pod. |
||
lionel messi Profil |
#5 · Zasláno: 7. 10. 2014, 20:15:12
jefitto44:
„Upozornenie: Toto je najprimitivnejši spôsob poslania mailu, a nerieši bezpečnostne rizika, ani kodovanie znakov a pod.“ A hlavne nebude fungovať pri vypnutej direktíve short_open_tag , čo môže začiatočníka nepríjemne zaskočiť.
<?php if(isset($_POST["submit"])) { // toto skontroluje, či už bolo kliknute na tlačitko ODOSLAŤ, inak by ti furt odosielalo prazdny formular $to="tvojmail@daco.com"; $subject="Sprava z webu"; // toto čo tu zadáš sa zobrazí príjemcovi ako predmet správy $message= 'Vaš email: '.$_POST["mail"].PHP_EOL; // toto v hranatých zátvorkách musí na písmeno presne sedieť s name inputu $message.= 'Vaše meno: '.$_POST["name"].PHP_EOL; ... // pokračuj obdobne a tie tri bodky vymaž. $message.= musi tam byť aj ta bodka, inak ti prepiše premennu mail($to, $subject, $message); } ?> Stránka so skriptom navyše musí mať príponu .php, nie .html - treba ju zmeniť. |
||
Joker Profil |
#6 · Zasláno: 7. 10. 2014, 20:36:24
jefitto44 [#4]:
To je prakticky totéž jako kód z FAQ, jen ten v FAQ je lepší. Jedna poznámka (týkající se i kódu z FAQ), nevím, jestli použití konstanty PHP_EOL pro odřádkování není teoreticky chyba.
V e-mailech totiž odřádkování nezávisí na platformě, ale je standardizované na \r\n .
|
||
vodys Profil * |
#7 · Zasláno: 7. 10. 2014, 21:14:45
Děkuji, úspěšně vyřešeno :))
|
||
Davex Profil |
#8 · Zasláno: 7. 10. 2014, 22:55:29
Joker:
„Jedna poznámka (týkající se i kódu z FAQ), nevím, jestli použití konstanty PHP_EOL pro odřádkování není teoreticky chyba.“ Není to chyba, ale je to záměrně (z tohoto důvodu). |
||
jefitto44 Profil |
#9 · Zasláno: 8. 10. 2014, 07:45:01
Ešte yb som spomenul, že radia majú rovnaké name-y, pretože sa berie ohľad na ich value, pri ženách teda daj value="zena" pri mužoch value="muz", to je to, čo ti príde v maili
|
||
Časová prodleva: 10 let
|
0