NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 9 - Kontaktní e-mailový formulář v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Odpovídá na michal Čepelák
Michal Šmahel:16.8.2017 12:53

Ahoj, obsah pole (uložený v $_POST['jmeno']) nikde nepoužíváš. Kde chceš mít jméno vypsané??

Odpovědět
16.8.2017 12:53
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Ernest Kuki
Člen
Avatar
Ernest Kuki:17.10.2017 14:36

Ahoj, co může způsobovat chybu v tomhle?

<?php
if ($hlaska)
echo('<p>' . $hlaska . '</p>');
?>

Mám to vložené přesně podle instrukcí těsně nad form .. ale hlásí mi to chybu na řádku s ECHO.

Odpovědět
17.10.2017 14:36
Najdi co tě baví a nech ať tě to zabije..
Avatar
Ernest Kuki
Člen
Avatar
Odpovídá na Ernest Kuki
Ernest Kuki:17.10.2017 14:42

Problém vyřešen.. Kdyby někdo řešil to samé .. mrkněte jestli máte soubor uložen jako .php

Odpovědět
17.10.2017 14:42
Najdi co tě baví a nech ať tě to zabije..
Avatar
Miroslav Mucha:2.11.2017 14:08

Ahoj, při testování kontaktních údajů zadaných do jednotlivých polí jsem zjistil, že formulář se odešle i když např. do pole "jmeno" nebo "zprava" klepnu jenom mezeru. Stejně tak to projde, když se tam zadá například hodnota NULL. Tak jsem to zkusil ošetřit a už to mezery atd. nezpracuje a vyhodí chybu. Chci se zeptat, zda jsem se touto úpravou nedopustil něčeho nekorektního

<?php
if($_POST)  // konrola, zda byl formulář odeslán
{
    if(isset($_POST['jmeno']) && !empty($_POST['jmeno']) && !ctype_space($_POST['jmeno']) &&
       isset($_POST['email']) && !empty($_POST['email']) &&
       isset($_POST['zprava']) && !empty($_POST['zprava']) && !ctype_space($_POST['zprava']) &&
       isset($_POST['rok']) && !empty($_POST['rok'] == date('Y')))
    {
         //Sem přijde odeslání emailu
    }
    else
    {
        $hlaska =  "Formulář není správně vyplněný!";
    }
}

?>
 
Odpovědět
2.11.2017 14:08
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Miroslav Mucha
David Hartinger:2.11.2017 15:05

empty() funguje i když tam klíč není, nevyhodí chybu. Nemusíš tam tedy používat isset(), když jsi tam dal empty(). Jinak to vypadá ok. Zvalidovat formulář dobře je samozřejmě dost práce, proto se to řeší až dále v kurzech, konkrétně se na to implementuje framework v kurzu Knihovny pro PHP

Odpovědět
2.11.2017 15:05
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Miroslav Mucha:2.11.2017 17:21

Děkuju za odpověď :-)

 
Odpovědět
2.11.2017 17:21
Avatar
wartkor
Člen
Avatar
wartkor:22.12.2017 22:32

Ahoj můj kód mi nefunguje pošlete mi prosím celý správný kód. Můj kód: <?php
mb_internal_en­coding("UTF-8");
$hlaska = '';
if ($_POST) // V poli _POST něco je, odeslal se formulář
{
if (isset($_POST['jme­no']) && $_POST['jmeno'] &&
isset($_POST['e­mail']) && $_POST['email'] &&
isset($_POST['zpra­va']) && $_POST['zprava'] &&
isset($_POST['rok']) && $_POST['rok'] == date('Y'))
{
// Sem přijde odeslání emailu
}
else
$hlaska = 'Formulář není správně vyplněný!';
}
$hlavicka = 'From:' . $_POST['email'];
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
$adresa = '[email protected]';
$predmet = 'Nová zpráva z mailformu';
$uspech = mb_send_mail($a­dresa, $predmet, $_POST['zprava'], $hlavicka);
if ($uspech)
{
$hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
}
else
$hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';

?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kontaktní formulář</title>
</head>
<body>
<p>Můžete mě kontaktovat pomocí formuláře níže.</p>

<form method="POST">
<table>
<tr>
<td>Vaše jméno</td>
<td><input name="jmeno" type="text" /></td>
</tr>
<tr>
<td>Váš email</td>
<td><input name="email" type="email" /></td>
</tr>
<tr>
<td>Aktuální rok</td>
<td><input name="rok" type="number" /></td>
</tr>
</table>
<textarea name="zprava"></tex­tarea><br />

<input type="submit" value="Odeslat" />
</form>

</body>
</html>

Odpovědět
22.12.2017 22:32
Káždý jednou začal a neuspěl hned na poprvé
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na wartkor
Jan Lupčík:23.12.2017 8:06
  1. Házej kód do tagu [ code ], tohle se nedá číst.
  2. Pokud máš nějaký problém, napiš jaký. Co nefunguje, co to hází za error, co by mělo fungovat a co něco dělat atd.
  3. Pod článkem máš ke stažení zdrojové kódy.
Odpovědět
23.12.2017 8:06
TruckersMP vývojář
Avatar
wartkor
Člen
Avatar
Odpovídá na Jan Lupčík
wartkor:23.12.2017 10:10

No jo ale tam není kód ale jen jak to má vypadat :/

Odpovědět
23.12.2017 10:10
Káždý jednou začal a neuspěl hned na poprvé
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na wartkor
David Hartinger:23.12.2017 11:29

A to tlačítko "Stáhnout" je co? :-` Určitě bys ho našel, kdyby jsi se trochu snažil.

Odpovědět
23.12.2017 11:29
New kid back on the block with a R.I.P
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 289.