Autor Zpráva
vodys
Profil *
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í
Email
Muž/Žena

Děkuji moc všem, co mi pomůžou.
Joker
Profil
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 *
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
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">
Hej a každý input potrebuje vlastné name, nemôžu mať všetky tie isté!!!

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
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
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 *
Děkuji, úspěšně vyřešeno :))
Davex
Profil
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
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

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: