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 10 - Vylepšení kontaktního formuláře 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
Petr Čech
Tvůrce
Avatar
Odpovídá na wartkor
Petr Čech:23.12.2017 22:50

Ano, je, vždyť je to předmětem toho komentáře :P . To, že neumíš PHP znamená, že se ho máš sakra naučit, jestli to myslíš vážně, nebo se připrav na to, že budeš platit, protože jen z tutoriálů se vážně vlastní web poskládat nedá (možná dá, ale určitě to není dobrý nápad).
A nebo jestli se ti nechce učit PHP, můžeš použít nějakou předpřipravenou blbost jako Wordpress a pod., těch služeb jsou hromady.

Odpovědět
23.12.2017 22:50
the cake is a lie
Avatar
Jiřina Trojánková:2.1.2018 9:53

Ahoj, potřebovala bych poradit, chybu mám zřejmě tady, i když se to zdá být napsané správně:
<code>
$hlaska = 'Email byl úspěšně odeslán, brzy Vám odpovím. Jiřina.';
header('Location: kontakt.php?us­pech=ano');
exit;
</code>
Nicméně místo aby to provedlo to co má, hodí mě to na neexistující stránku:
http://jirina.wz.cz/kontakt.php?…

 
Odpovědět
2.1.2018 9:53
Avatar
Hando
Člen
Avatar
Odpovídá na Jiřina Trojánková
Hando:2.1.2018 13:02

Ahoj.
A co by se mělo dít jinak? Stránka kontakt.php evidentně na serveru neexistuje, tvůj kontaktní formulář je na
'http://jirina­.wz.cz/index.php?stran­ka=kontakt',
takže bys to musela předávat nějak jinak =>
index.php?stran­ka=kontakt&us­pech=ano.

Jinak tedy $hlaska před header('Locati­on...) nemá úplně smysl, jelikož po přesměrování o tu proměnnou stejně přijdeš. Tutoriál jsem nečetl, ale tutově je to tam zmíněno, co s tím.. :)

 
Odpovědět
2.1.2018 13:02
Avatar
Odpovídá na Hando
Jiřina Trojánková:2.1.2018 14:34

Super, takhle to funguje. Nenapadlo mě, že tam má být: kontakt&uspech. Hodí mě to zpátky na stránku kontakt a vypíše hlášku o odeslání, přesně jak to má být:)
Ta $hlaska před header tam asi fakt být nemusí, už je nahoře na začátku stránky, takže tu mažu.
Díky.

 
Odpovědět
2.1.2018 14:34
Avatar
Ján Štucka
Člen
Avatar
Ján Štucka:17.1.2018 13:58

Čau pri odoslaní formuláru mi ostanú všetky vyplnené polia tak ako boli vyplnené, až na tú správu ktorú chcem poslať tá mi zmizne aj keď to mám rovnako ako vy ... Pomohli by ste mi prosím ?
<?php
/**
* Created by PhpStorm.
* User: Jano
* Date: 16.1.2018
* Time: 13:11
*/

mb_internal_en­coding("UTF-8");

$erorr='';
if ($_POST){
/**
* tato prva podmienka kontroluje ci vo formulari je vobec nieco a ci bol odoslany
*/
if (isset($_POST['na­me'])&&$_POST['na­me']&&isset($_POS­T['email'])&&$_POS­T['email']&&is­set($_POST['mes­sage'])&&$_POS­T['message']&&is­set($_POST['y­ear'])&&$_POS­T['year']==da­te('Y')){
$header='From: '.$_POST['email'];
$header.="\nMIME-Version: 1.0\n";
$header.="Content-Type: text/html; charset=\"utf-8\"\n";
$addressOfOurE­mail='stuckaja­[email protected]';
$subject='Skusam ci to fakt pojde.';
$success=mb_sen­d_mail($addres­sOfOurEmail,$sub­ject,$message,$he­ader);
if ($success)
$erorr="The email was sent successfully, we answer about it in near feature";
else $erorr="The email can't be sended. Please control you're email address";
}
/**
* isset zistuju ci existuju vobec premenne ako name message atd. druha podmienka kontroluje ci v danych premennych nieco je
*/
else{
$erorr='Formular is not complete correctly';
}
}
/**
* mb_send_mail() sluzi na odoslanie mailu, pricom musime pri pouziti tejto funkcie na zaciatku nastavit kodovanie
*/

?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Kontaktny formular</title>
</head>
<body>
<p>You can contact me by form placed lower</p>

<?php

if ($erorr)
echo('<p>' . htmlspecialchar­s($erorr) . '</p>');

$name=(isset($_POS­T['name']) ? $_POST['name'] : '');
$message=(isset($_POS­T['message']) ? $_POST['message'] : '');
$email=(isset($_POS­T['email']) ? $_POST['email'] : '');

?>

<form method="post"> <!--Vsimnime si, zetu nemame parameter action data sa odoslu na ten isty subor, kde je formular-->
<table>
<tr>
<td>You're name</td>
<td><input name="name" type="text" value="<?= htmlspecialchar­s($name)?>"/></td> <!--htmlspecialchars() je ochranna funkcia aby niekto nevlozil do komentarov html kod ktory vytvori nejaky formular ktory bude napr odosielat hesla nejakemu hajzlovy-->
</tr>
<tr>
<td>You're e-mail</td>
<td><input name="email" type="email" value="<?=htmlsp­ecialchars($e­mail)?>"></td> <!--mozme dosiahnut vyplnenie pola pri pomyleni aj takto-->
</tr>
<tr>
<td>Actually year</td>
<td><input name="year" type="number"></td>
</tr>
</table>
<textarea name="message" value="<?=htmlsp­ecialchars($mes­sage)?>"></tex­tarea>
<br/>
<input type="submit" value="Send" />
</form>
</body>
</html>

 
Odpovědět
17.1.2018 13:58
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Ján Štucka
Jan Lupčík:17.1.2018 15:45

<textarea> nepoužívá attribut value, ale její obsah píšeš rovnou mezi ty dva tagy. A stejně to nemáš, v tom článku je to takto:

<textarea name="zprava"><?= htmlspecialchars($zprava) ?></textarea>
Odpovědět
17.1.2018 15:45
TruckersMP vývojář
Avatar
Ján Štucka
Člen
Avatar
Odpovídá na Jan Lupčík
Ján Štucka:17.1.2018 16:07

Díky moc :-)

 
Odpovědět
17.1.2018 16:07
Avatar
Jan Švanda
Člen
Avatar
Jan Švanda:1.2.2018 12:24

Dobrý den, jak bych mohl předvyplnit (znovu zvolit) stejný option u selected ? Předem děkuji za odpověď.

 
Odpovědět
1.2.2018 12:24
Avatar
Moss
Člen
Avatar
Moss:28.2.2018 23:43

Inak, nedala by sa podmienka, kde sa cita z $_GET nahradit ternarnym vyrazom?

 
Odpovědět
28.2.2018 23:43
Avatar
František Kreisinger:9.3.2018 10:49

Chtěl jsem si tuto úlohu vylepšit tak, aby se v hlavičce emailu odesílala nejen adresa odesilatele ale i jeho jméno a pak případně to samé udělat i pro jméno odesilatele. Když se mi konečně podařilo překonat to, že mi SMTP server nevrací chybu v hlavičce, takže vše se tváří, jako by zpráva byla odeslána, stejně žádná nedojde. Nemáte někdo funkční řešení?

Odpovědět
9.3.2018 10:49
Začátečník v PHP, HTML i webovém programování vůbec.
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 149.