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
Odpovídá na Danny
martin.pscolka:22.5.2015 16:17

@ Danny - Díky za reakci, pořád jsem hledal ty pomlčky, které jsi zminoval, ale nikde nenašel. Ale jakmile jsem muj text zkopiroval do editoru, tak se tam objevily. Asi chyba znakové sady, kazdopadne je v kodu normalne nemam...Jinak odstranil jsem ty tečky a porad to nefunguje. Vsiml jsem si jednoho problemu, kdyz zanechám ten původní kod níže:

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

Ať odstraním tečky nebo ne, pořád to nefunguje. Ale když nechám ve výše uvedeném kodu '<p>' '</p>', tak se mi zobrazuje pulka te hlasky jako text v prohlizeci. Nemůže to mít naváznost ve stylu? Zasílám ještě kod k náhledu:
body {
background: url('obrazky/a­.png') #1c2228;
margin: 73px 0px 0px 0px;
font: 14px Verdana;
min-width: 960px;
}

h2, h3, h4, h5, h6 {
text-align: center;
color: black;
font-family: Arial;
text-shadow: 3px 3px 7px #666666;
}

p {
text-align: center;
}

h2 {
font-size: 1.7em;
}

h1 {
font-size: 2em;
font-weight: normal;
color: white;
text-align: center;
text-shadow: 2px 2px 1px #0a294b;
}

nav ul {
margin: 0px;
list-style-type: none;
}

nav ul li {
float: left;
padding: 0px 25px;
margin: 0 5px;
font-size: 17px;
height: 73px;
line-height: 4.3em;
}

nav ul li:hover, .aktivni {
background: url('obrazky/g­.png');
box-shadow: 0px 0px 5px black;
}

nav a {
color: white;
text-decoration: none;
}

.centrovany {
text-align: center;
}

#centrovac {
margin: 0px auto;
width: 960px;
}

header {
height: 73px;
position: fixed;
top: 0px;
background: url('obrazky/a­.png') #1c2228;
width: 100%;
}

article {
background: url('obrazky/f­.png') #009aca;
padding: 30px 0px;
}

article header {
width: 250px;
float: left;
position: static;
background: none;
}

article section {
width: 666px;
float: left;
background: white;
border: 2px solid #006797;
box-shadow: 2px 2px 7px #1c2228;
padding: 20px;
}

footer {
height: 40px;
color: white;
margin: 20px 0 0 30px;
}

footer a {
color: #ffbb00;
text-decoration: none;
}

.cistic {
clear: both;
}

.vlevo {
float: left;
}

#dovednosti td {
width: 33%;
padding: 10px;
vertical-align: top;
border: 1px solid gray;
}

#dovednosti {
border-collapse: collapse;
}

#reference img {
border: 1px solid gray;
padding: 6px;
box-shadow: 3px 3px 6px #999999;
margin-right: 6px;
}
#panel, #flip {
padding: 5px;
text-align: center;
background-color: #D0DCDD;
border: solid 1px #c3c3c3;
}

#panel {
padding: 50px;
display: none;
}

Jinak kdyz zmacknu tlacitko odeslat, tak se mi ani nespusti vypis hlasek, ze se neco stalo, pouze se aktualizuje stranka.

Díky moc všem za rady.

 
Odpovědět
22.5.2015 16:17
Avatar
Danny
Člen
Avatar
Odpovídá na martin.pscolka
Danny:22.5.2015 18:08

Pokud tam máš ty značky tak tečky mít musíš, ale když tam budeš vypisovat jenom proměnou tak tam být nesmí...mě to fungovalo naprosto v pohodě...všude oprav pomlčky které tam jsou navíc a měl o by to být v pohodě.

 
Odpovědět
22.5.2015 18:08
Avatar
Tomáš123
Člen
Avatar
Odpovídá na martin.pscolka
Tomáš123:22.5.2015 21:09

Na treťom riadku použi zápis:

echo("<p>$hlaska</p>");

A žiadne bodky nemusíš riešiť.

Odpovědět
22.5.2015 21:09
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
Avatar
martin.pscolka:22.5.2015 23:00

Danny: A tobe fungoval ten mnou vložený kod? V tom, případě, nechápu proč mi nefunguje...

 
Odpovědět
22.5.2015 23:00
Avatar
Odpovídá na martin.pscolka
Michal Šmahel:22.5.2015 23:43

Tobě nefunguje výpis informační zprávý (hlášky)??

Odpovědět
22.5.2015 23:43
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
martin.pscolka:23.5.2015 0:04

Myslis na serveru kde to mam ulozene nebo v editoru?

 
Odpovědět
23.5.2015 0:04
Avatar
Odpovídá na martin.pscolka
Michal Šmahel:23.5.2015 0:15

Popiš mi prosím tvůj problém a zkusíme to vyřešit.

Odpovědět
23.5.2015 0:15
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
martin.pscolka:23.5.2015 0:30

Problém je uvedený v příspěvku výše. Jde o to, že výše uvedený kod neodesílá e-maily. Stránky mám uložené na serveru PHP5.cz a je tam povoleno odesíláni e-mailů. Kod, který je ke stazeni na techto strankach mi tam funguje normalne. Ten kod je pouze vlozeny a upraveny v mem kode uvedenm vyse.

 
Odpovědět
23.5.2015 0:30
Avatar
Odpovídá na martin.pscolka
Michal Šmahel:23.5.2015 1:47

V této podobě mi to funguje.

<?php
mb_internal_encoding("UTF-8");

$hlaska = "";
// V poli _POST něco je, odeslal se formulář
if ($_POST) {
    if (isset($_POST['jmeno']) && $_POST['jmeno'] &&
        isset($_POST['email']) && $_POST['email'] &&
        isset($_POST['zprava']) && $_POST['zprava']
    ) {
        $hlavicka = 'From:' . $_POST['email'];
        $hlavicka .= '\nMIME-Version: 1.0\n';
        $hlavicka .= 'Content-Type: text/html; charset="utf-8"\n';
        $adresa = '[email protected]';
        $predmet = 'Zpráva z testovacího webu';
        $uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);

        if ($uspech == true) {
            $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
        } else {
            $hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';
        }
    } else {
        $hlaska = 'Formulář není správně vyplněný!';
    }
}
?>



<!DOCTYPE html>


<html lang="cs-cz">


<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="styl.css" type="text/css" />
</head>

 
<body>
    <header>
        <nav>
            <ul>
                <li>Domů</li>
                <li class="aktivni">Kontakt</li>
                <li>Dovednosti</li>
            </ul>
        </nav>
    </header>

    <article>
        <div id="centrovac">
            <section>
                <p>Můžete mě kontaktovat pomocí formuláře níže.</p>
                <?php if (!empty($hlaska)): ?>
                    <p><?= $hlaska ?></p>
                <?php endif; ?>

                <form method="POST">
                    <table>
                        <tr>
                            <td>Vaše jméno</td>
                            <td><input name="jmeno" type="text" /></td>
                        </tr>
                        <tr>
                            <td>Vaše e-mailová adresa</td>
                            <td><input name="email" type="email" /></td>
                        </tr>
                    </table>
                    <textarea name="zprava"></textarea>
                    <input type="submit" value="Odeslat" />
                </form>
            </section>
            <div class="cistic"></div>
        </div>
    </article>

    <footer>
    </footer>
</body>


</html>

 
Odpovědět
23.5.2015 1:47
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Tomáš123
Člen
Avatar
Odpovídá na martin.pscolka
Tomáš123:24.5.2015 19:02

Iba pre úplnosť, ak sa iba učíš, prečítaj si nasledujúcu správu a spomeň si na ňu až to budeš potrebovať.

Predtým než komukoľvek dovolíš posielať e-maily mal by si sa zamyslieť nad zabezpečením. Používaj funkciu htmlspecialchars na zaentitovanie nežiadúcich znakov a pracuj so $_SESSION na zamedzenie odoslania toho istého e-amilu viackrát za použitia F5 (refresh stránky).

Podrobnejšie informácie o funkciách a práci s nimi nájdeš v manuáli PHP http://php.net.

Odpovědět
24.5.2015 19:02
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
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.