Diskuze – Lekce 10 - Vylepšení kontaktního formuláře v PHP
ZpětUpozorň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ů.


Tak poprvé se mi při postupování dle vašich návodů vyskytl problém (y), na které jsem krátký. Využívám dvě textarea a snažím se je odeslat společně:
$sucess = mb_send_mail($adress, $subject, $_POST['message'], $_POST['strategy'], $head);
Tímhle způsobem mi začal chodit email z adresy mého hostingu namísto zadané a odeslalo se jen jedno textové pole.
$sucess = mb_send_mail($adress, $subject, $_POST['message' + 'strategy'], $head);
Byl další neůspěšný pokus.
Hodně dlouho jsem hledal chyby ve zbytku kódu, ale nenašel. Dále mám
problém ještě s tím, že přesměrování mě posílá na
afort-crowfall.clanweb.eu/mailform.php?sucess=yes , což je neexistující
stránka. Můj mailform se jmenuje recruiting.php
Jinak kdyby přece jenom byla chyba jinde, tak vkládám celý obsah souboru
recruiting.php
http://www.itnetwork.cz/dev-lighter/770
Děkuji za případnou pomoc. Moc si vážím zdejších návodů!
Neaktivní uživatel:13.8.2016 12:19
Já to udělal takto, jedná se o script z register.php, myslím, že by ti
to mohlo pomoct
if(mysql_affected_rows($link)==1)
{
$to = $_POST['email'];
$subject = "Yourradio-registration info";
$message = '<html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="viewport" content="width=device-width" />
<style>
a{color:#2BA6CB;}
.btn{text-decoration:none;color:#FFF;background-color:#666;padding:10px 16px;font-weight:bold;margin-right:10px;text-align:center;cursor:pointer;display:inline-block;}
.btn.btn-primary{background:#1CD5B4;; color:#fff; border:none !important; border:2px solid transparent !important; font-family:"Source Sans Pro",Arial,sans-serif; margin:0px auto;}
.btn:hover,.btn:active,.btn:focus{background:#393e46 !important; color:#fff; outline:none !important;}
p.callout{padding:15px;background-color:#ECF8FF;margin-bottom:15px;}
.callout a{font-weight:bold;color:#2BA6CB;}
table.social{background-color:#ebebeb;}
.social .soc-btn{padding:3px 7px;font-size:12px;margin-bottom:10px;text-decoration:none;color:#FFF;font-weight:bold;display:block;text-align:center;} a.fb{background-color:#3B5998!important; }
a.tw{background-color:#1daced!important; } a.gp{background-color:#DB4A39!important; } a.ms{background-color:#000!important; } .sidebar .soc-btn{display:block;width:100%;}
table.head-wrap{width:100%;} .header.container table td.logo{padding:15px; } .header.container table td.label{padding:15px; padding-left:0px;} table.body-wrap{width:100%;}
table.footer-wrap{width:100%;clear:both!important;} .footer-wrap .container td.content p{border-top:1px solid rgb(215,215,215); padding-top:15px;} .footer-wrap .container td.content p{font-size:10px;font-weight:bold;}
h1, h2, h3, h4, h5, h6{font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif; line-height:1.1; margin-bottom:15px; color:#000;} h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-size:60%; color:#6f6f6f; line-height:0; text-transform:none; } h1{font-weight:200; font-size:44px;}
h2{font-weight:200; font-size:37px;} h3{font-weight:500; font-size:27px;} h4{font-weight:500; font-size:23px;} h5{font-weight:900; font-size:17px;} h6{font-weight:900; font-size:14px; text-transform:uppercase; color:#444;} .collapse{margin:0!important; p,ul{margin-bottom:10px; font-weight:normal; font-size:14px; line-height:1.6;}
p.lead{font-size:17px; } p.last{margin-bottom:0px;} ul li{margin-left:5px;list-style-position:inside;}
ul.sidebar{background:#ebebeb;display:block;list-style-type:none;} ul.sidebar li{display:block; margin:0;} ul.sidebar li a{text-decoration:none;color:#666;padding:10px 16px; margin-right:10px; cursor:pointer;border-bottom:1px solid #777777;border-top:1px solid #FFFFFF;display:block;margin:0;}
ul.sidebar li a.last{border-bottom-width:0px;}
ul.sidebar li a h1, ul.sidebar li a h2, ul.sidebar li a h3, ul.sidebar li a h4, ul.sidebar li a h5, ul.sidebar li a h6, ul.sidebar li a p{margin-bottom:0!important;}
.container{display:block!important;max-width:600px!important;margin:0 auto!important;clear:both!important;}
.content{padding:15px;max-width:600px;margin:0 auto;display:block; }
.content table{width:100%; }
.column{width:300px;float:left;}
.column tr td{padding:15px; }
.column-wrap{padding:0!important; margin:0 auto; max-width:600px!important;}
.column table{width:100%;}
.social .column{width:280px;min-width:279px;float:left;} .clear{display:block; clear:both; }
@media only screen and (max-width:600px){a[class="btn"]{display:block!important; margin-bottom:10px!important; background-image:none!important; margin-right:0!important;} div[class="column"]{width:auto!important; float:none!important;}table.social div[class="column"]{width:auto!important;}}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Yourradio registration</title>
</head>
<body bgcolor="#FFFFFF"><table class="head-wrap" bgcolor="#999999"><tr><td></td><td class="header container" >
<div class="content"><table bgcolor="#999999"><tr><td>
<a href="http://radiodb.tk/index.php"><img src="http://radiodb.tk/images/logo.png" width="50px" heigth="50px"/></td></tr></table></div></td><td></td></tr></table><!-- /HEADER -->
<!-- BODY --><table class="body-wrap"><tr><td></td><td class="container" bgcolor="#FFFFFF"><div class="content"><table><tr><td><h3>Hi '.$_POST["f_name"].' '.$_POST["l_name"].'</h3>
<p class="lead">Welcome to Yourradio!</p><p>In this email you can find some important info about your registration.</p><p>DON´T DELETE THIS EMAIL!</p><p><b>Your registration:</b></p>
<table width="100%"><tr><td><b>Username:</b></td><td>'.$_POST["username"].'</td></tr><tr><td><b>Password:</b></td><td>'.$_POST["password"].'</td></tr></table>
<p class="callout"><a href="http://radiodb.tk/form.php" class="btn btn-primary">Login to your account »</a></p>
<table class="social" width="100%"><tr><td><table align="left" class="column"><tr><td><h5 class="">Contact Info:</h5>Email: <strong><a href="emailto:[email protected]">[email protected]</a></strong></p></td></tr></table><span class="clear"></span> </td></tr></table>
</td></tr></table></div></td><td></td></tr></table><table class="footer-wrap"><tr><td></td><td class="container"><div class="content"></div></td><td></td></tr></table></body></html>';
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: [email protected]>' . "\r\n";
if(mail($to,$subject,$message,$headers)):
$successMsg = 'Email has sent successfully.';
else:
$errorMsg = 'Email sending fail.';
endif;
EDIT:
if(mail($to,$subject,$message,$headers)):
$successMsg = 'Email has sent successfully.';
else:
$errorMsg = 'Email sending fail.';
endif;
mkub:13.8.2016 13:32
najprv si musis spojit $_POST['message'] a $_POST['strategy'], a nasledne to posles ako jednu premennu, totiz skustocna syntax tej funkcie je:
bool mb_send_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $additional_parameter = NULL ]] )
kde:
$to - znamena prijemcu
$subject - znamena policko "Subject"
$message - je samotna sprava
$additional_headers - rozsirujuce hlavicky (nepovinna, standardne nastavena na
"NULL")
$additional_paramter - doplnujuce parametre (nepovinna, standardne nastavena
na "NULL")
viac o funkcii: http://php.net/…end-mail.php
cize asi nejako takto:
...
$sucess = mb_send_mail($adress, $subject, $_POST['message'] . $_POST['strategy'], $head);
...
resp. takto:
...
$msg = $_POST['message'] . $_POST['strategy'];
$sucess = mb_send_mail($adress, $subject, $msg, $head);
...
totiz vyraz "+" nesluzi na spajanie retazcov, ale na scitavanie cisiel
Karel Šlaj:16.8.2016 9:49
Děkuju tady oboum redaktorům za výpomoc. Už to funguje tak jak jsem si
představoval
Ahoj, mám dotaz: V některých případech (viz níže) není za podmínkou if() kód zapsán ve složených závorkách. Kdy je nutné ho uzavřít a kdy ne?
Př.1
if (isset($_POST['jmeno']))
$jmeno = $_POST['jmeno'];
else
$jmeno = '';
Př. 2
<?php
if ($hlaska)
echo('<p>' . htmlspecialchars($hlaska) . '</p>');
$jmeno = (isset($_POST['jmeno'])) ? $_POST['jmeno'] : '';
$email = (isset($_POST['email'])) ? $_POST['email'] : '';
$zprava = (isset($_POST['zprava'])) ? $_POST['zprava'] : '';
?>
Neaktivní uživatel:4.11.2017 11:36
Je treba ho uzavrit v pripade, kdy se jedna o vice nez jeden souvisly statement, nebo expression.
Takze sice muzes udelat tohle:
if (true)
something
.doStuff()
.resAttr
.finallCall()
Ale uz ne:
if (true)
something()
somethingElse()
Protoze se to vyhodnoti jako neco uplne jineho.
Doporucuju ty zavorky vzdycky psat, protoze pak pri upravach nevznikaji divny chyby.
Peter Sciranka:4.11.2017 11:43
Ahoj, ide o to, že či sa má po "if" vykonať viac ako jedna operácia,
vtedy je nutné použiť zložené zátvorky. Ak sa jedná iba o jednu
operáciu, tak stačí použiť skrátený zápis == bez zložených
zátvoriek.
Príklad:
if(x>y){
a = 10;
b = 20;
}
V tomto prípade sa majú vykonať dve operácie, tak je nutné to zabaliť
do zložených zátvoriek.
Ak chceme pri podmienke vykonať len jednu operáciu, stačí to zapísať v
skrátenom formáte:
if(x>y)
a=10;
Ak by sme v druhom príklade zaísali aj "b=20;" tak to by sa vykonalo bez
ohľadu na to, či by platila podmienka alebo nie.
Stačí to takto?
Zobrazeno 10 zpráv z 149.