NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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

Člen
Avatar
Odpovídá na Jan Lupčík
:13.4.2018 11:37

OK, díky moc za pomoc :-)

 
Odpovědět
13.4.2018 11:37
Avatar
Jan Jedlička:24.5.2018 19:05

ahoj možná se budu ptát na otázku co tu už byla. Jak se píše 2x $_POST['jmeno'] v isset($_POST['jme­no']) && $_POST['jmeno'] je z důvodu, že potom se mi ověří zda je zadaný údaj je položce "jmeno" výsledný TRUE ? Nevim jestli to dobře popisuji. Takže jako bych ověřoval zda $x a $x je pravda? děkuji za jakékoliv vysvětlení.

 
Odpovědět
24.5.2018 19:05
Avatar
Odpovídá na Jan Jedlička
Jaroslav Patrný:15.7.2018 23:49

Ahoj,
ano, ale musí zároveň(&&) platit i další podmínky, email, zprava, rok. Pokud se ptáš proč to je 2krát, tak např. v

if (isset($_POST['jmeno']) && $_POST['jmeno']

(isset($_POST['jme­no']) kontroluje, jestli je odesláno dané pole a $_POST['jmeno'] jestli v tom poli něco je. Analogicky to je u dalších polí.

 
Odpovědět
15.7.2018 23:49
Avatar
Odpovídá na Jaroslav Patrný
Jan Jedlička:15.7.2018 23:55

Aha, uz to chapu. Diky

 
Odpovědět
15.7.2018 23:55
Avatar
Alegorius
Člen
Avatar
Alegorius:3.9.2018 12:18

Funguje odesílání fake mailů přes localhost i pro 64Windows? Mám stejný problém jako výše Vojtěch Vích , postupoval jsem přesně podle návodu na https://www.itnetwork.cz/…aily-limity/ i podle dalších tutoriálů na webu a nic nefunguje.Nevíte v čem by mohl být problém?Mám email s smtp doménou @email.cz ,ale předpokládám že taky patří pod smtp.seznam.cz

Děkuji za případnou radu

 
Odpovědět
3.9.2018 12:18
Avatar
jenda
Člen
Avatar
jenda:23.12.2018 16:15

Díky za článek, moc mi pomohl.

 
Odpovědět
23.12.2018 16:15
Avatar
David Javůrek:21.1.2019 7:02

Největší boj byl s emailem na localhost, ale nakonec se zadařilo po doplnění záznamu v php.ini. Děkuji za poučný tutoriál.

Odpovědět
21.1.2019 7:02
Život by byl mnohem snazší, kdybychom k němu měli zdrojové kódy.
Avatar
Stanislav Dittert:24.1.2019 19:47

Mě se na stránce hned pod textem Můžete mě kontaktovat pomocí formuláře níže. zobrazí chyba php: Notice: Undefined variable: hlaska in C:\xampp\htdoc­s\kontaktni_for­mular\index.php on line 15. Zkoušel jsem i odebrat tento script ale pak mi nefungoval formulář vůbec.

Pak nefunguje odeslání emailu z localhost i když sem upravil soubor php.ini viz navod v lekci, chyba scriptu Warning: mb_send_mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdoc­s\kontaktni_for­mular\index.php on line 52.

Nevíte prosím kde mám chybu/y? Děkuji moc.

 
Odpovědět
24.1.2019 19:47
Avatar
Walter
Člen
Avatar
Walter:26.1.2019 20:41

Ahoj, nevím proč se mi pořád ukazuje problém ?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
if($oznameni)
echo('<p>' . $oznameni . '</p>');

?>
<form method="post">
<fieldset>
<legend><h3>Při­pomínka</h3></le­gend>
<table>
<tr>
<td><label for="jmeno1">Vaše jméno: </label></td>
<td><input name="jmeno" type="text" placeholder="Ne­povinné"></td>
</tr>
<tr>
<td><label for="email1">Váš email: </label> </td>
<td><input name="email" type="email" placeholder="Po­vinné*" required></td>
</tr>
<tr>
<td><label for="rok1">Aktuální rok: </label> </td>
<td><input name="rok" type="number" placeholder="Po­vinné*" required></td>
</tr>
</table>
<textarea name="zprava" required placeholder="Po­vinné*"></tex­tarea>
<input type="button" value="submit">
</fieldset>
</form>
<?php
mb_internal_en­coding("UTF-8");
$oznameni='';
if ($_POST)
{
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'))
{
$hlavicka ='from:' .$_POST['email'];
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
$adresa = 'vasikzika@sez­nam.cz';
$predmet = 'Zpráva z phpProjektu';
$uspech = mb_send_mail($a­dresa, $predmet, $_POST['zprava'], $hlavicka);
if ($uspech)
{
$oznameni = 'Email byl úspěšně odeslán.';
}
else
$oznameni = 'Email se nepodařilo odeslat. Zkuste to znovu.';
}
else
$oznameni='Formulář není správně zadaný.';
}
?>
</body>
</html>
Ukazuje mi to:Notice: Undefined variable: oznameni in C:\xampp\htdoc­s\phpprojekt\in­dex.php on line 9

 
Odpovědět
26.1.2019 20:41
Avatar
Walter
Člen
Avatar
Walter:27.1.2019 15:16

Dobrý den můžete mi vysvětlit proč mi nefunguje mb_send_mail()
<?php
mb_internal_en­coding("UTF-8");

$hlaska = '';
if ($_POST)
{
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'))
{
$hlavicka = 'From:' . $_POST['email'];
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
$adresa = 'vasikzika@sez­nam.cz';
$predmet = 'phpzprava';
$uspech = mb_send_mail($a­dresa, $predmet, $_POST['zprava'], $hlavicka);
if ($uspech)
{
$hlaska = 'YOP';
}
else
$hlaska = 'NOPE1';
}
else
$hlaska = 'NOPE';
}

?>

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Formulář</ti­tle>
</head>
<body>

<?php
if ($hlaska)
echo('<p>' . $hlaska . '</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>Aktualni 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
27.1.2019 15:16
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.