Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 9. diel - Vylepšenia kontaktného formulára v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovedá na kivdul
Jan Lupčík:13.12.2015 20:54

$_SESSION je tvé řešení. Platí 20 minut od poslední změny.

<?php
if (isset($_GET['odpoved']) && $_GET['odpoved'])
{
    if (isset($_SESSION['skore']) && $_SESSION['skore'])
        $_SESSION['skore'] += $_GET['odpoved'];
    else
        $_SESSION['skore'] = $_GET['odpoved'];
}
Odpovedať
TruckersMP vývojář
Avatar
kivdul
Člen
Avatar
Odpovedá na Jan Lupčík
kivdul:19.12.2015 11:13

díky

ta globální proměná $_SESSION[ ] je skvělá :-D

Avatar
Karel Šlaj
Člen
Avatar
Karel Šlaj:13.8.2016 11:57

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.clan­web.eu/mailfor­m.php?sucess=y­es , 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ů!

Avatar
Odpovedá na Karel Šlaj
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 &raquo;</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;
Editované
Odpovedať
Neaktivní uživatelský účet
Avatar
mkub
Tvůrce
Avatar
Odpovedá na Karel Šlaj
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_pa­ramter - 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

Avatar
Karel Šlaj
Člen
Avatar
Odpovedá na mkub
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 (*_*)

Avatar
mkub
Tvůrce
Avatar
Odpovedá na Karel Šlaj
mkub:16.8.2016 10:12

ak ti to pomohlo, oznac to ako riesenie

Avatar
Miroslav Mucha:4.11.2017 11:03

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?

.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'] : '';
?>
Avatar
Odpovedá na Miroslav Mucha
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.

Editované
Odpovedať
Neaktivní uživatelský účet
Avatar
Peter Sciranka
Tvůrce
Avatar
Odpovedá na Miroslav Mucha
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?

Odpovedať
Act as if it was Impossible to Fail
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 150.