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 Walter
Michal Šmahel:28.1.2019 16:49

Ahoj, co konkrétně nefunguje? Vypisuje to nějakou chybu? Máš povolený výpis chyb? Příště prosím zdrojový kód vkládat přes ikonku </> (vedle smajlíka).

Odpovědět
28.1.2019 16:49
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Walter
Člen
Avatar
Odpovídá na Michal Šmahel
Walter:30.1.2019 14:48

Píše to, že je chyba na tý řádce s emailem.

 
Odpovědět
30.1.2019 14:48
Avatar
Walter
Člen
Avatar
Odpovídá na Michal Šmahel
Walter:5.2.2019 17:30

Vyřešeno, kód je v pořádku akorát se to neodesílalo

 
Odpovědět
5.2.2019 17:30
Avatar
Odpovídá na Walter
Stanislav Dittert:10.2.2019 20:08

Domnívám se že je to z toho důvodu, že máš deklaraci proměnné 'oznameni' až v těle html kódu. Přesuň si část s verifikací a odesíláním emailu na začátek souboru jak je uvedeno v článku a potom ti to bude chodit. Ověřil sem to u sebe ...

 
Odpovědět
10.2.2019 20:08
Avatar
Odpovídá na Stanislav Dittert
Stanislav Dittert:10.2.2019 20:09

Vyřešeno, kromě nastavení php.ini a sendmail.ini ještě zafungovalo spustit xampp-control.exe jako administrator a potom již chodilo odesílání přes gmail v pohodě.

 
Odpovědět
10.2.2019 20:09
Avatar
Lukas Dohnal
Člen
Avatar
Lukas Dohnal:13.2.2019 14:19

Můžu se zeptat, co znamená a k čemu je 'tečka' před 'rovná se'?

Díky.

 
Odpovědět
13.2.2019 14:19
Avatar
Daniel
Tvůrce
Avatar
Daniel:16.2.2019 13:13

Ahoj,nevíte jak upravit tento kód aby šlo poslat i příloha e-mailem.Budu rád když mi pomůžete.

KÓD PRO ÚPRAVU:

<?php

    mb_internal_encoding("UTF-8");

    $hlaska = '';
    if (isset($_GET['uspech']))
        $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
    if ($_POST) // V poli _POST něco je, odeslal se formulář
    {
        if (isset($_POST['jmeno']) && $_POST['jmeno'] &&
            isset($_POST['email']) && $_POST['email'] &&
            isset($_POST['zprava']) && $_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 = '[email protected]';
            $predmet = 'DET-CZ.E-MAIL';
            $uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
            if ($uspech)
            {
                $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
                header('Location: mailform.php?uspech=ano');
                exit;
            }
            else
                $hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';
        }
        else
            $hlaska = 'Formulář není správně vyplněný!';
    }

?>

<!DOCTYPE html>
<html lang="cs-cz">
   <html>
 <head>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1250" />

<link rel="stylesheet" href="/style.css">

<body background="/pozadi.png" bgproperties="fixed">

  <h1 class="center">FORMULÁŘ</h1>

        <title>Kontaktní formulář</title>
    </head>
    <body>
        <p>Kontaktní formulář zde:</p>

        <?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'] : '';
        ?>


        <form method="POST">
            <table>
                <tr>
                    <td>Vaše jméno a příjmení:</td>
                    <td><input name="jmeno" style="border: 2px solid blue; background-color: yellow"type="text" value="<?= htmlspecialchars($jmeno) ?>"/></td>
                </tr>
                <tr>
                    <td>Váš email:</td>
                    <td><input name="email" type="email" style="border: 2px solid blue; background-color: yellow"<?= htmlspecialchars($email) ?>"/></td>
                </tr>
                <tr>
                    <td>Aktuální rok:</td>
                    <td><input name="rok" style="border: 2px solid blue; background-color: yellow" type="number" /></td>
                </tr>
                 <tr>
                     <td>Zpráva:</td>
                 </tr>
            </table>
            <textarea rows="5" cols="48" name="zprava" style="border: 2px solid blue; background-color: yellow"><?= htmlspecialchars($zprava) ?></textarea>
            <br />

 <button class="button"type="submit">ODESLAT</button>

        </form>
        <p><a href="http://Det-cz.euweb.cz">Zpět na hlavní stranu Det-cz</a></p>
    </body>
</html>
 
Odpovědět
16.2.2019 13:13
Avatar
Daniel
Tvůrce
Avatar
Daniel:16.2.2019 13:16

Upravenej kód posílejte na
E-MAIL:

[email protected]
 
Odpovědět
16.2.2019 13:16
Avatar
Odpovídá na Lukas Dohnal
Tomáš Novotný:16.2.2019 16:13
.=, +=, -=

jde v principu o zkraty zápisu pro 'přičítání/při­dávání' též jako append/add atd...:

$str = 'Hello ';
$str = $str . 'World'; nebo zkratkou $str .= 'World';

oběma zápisy docílíme toho, že proměnná $str se bude rovnat 'Hello World';
obdobně pro číselné typy

$num = 10;
$num = $num + 10; totéž jako $num += 10;

výsledná hodnota $num bude rovna 20;

Odpovědět
16.2.2019 16:13
∞ ... the exact amount of possibilities how to deal with the situation ... so by calm, your solution is one of many
Avatar
Mikoláš Chromík:26.6.2019 22:13

Zdarec, tyjo kontroluji si to ... nějak to nejde :-DDDD .... netbeans mi píše že k $_POST to nemá přímý přístup, tak mě napadlo, jestli v tom nebude problém ... úplně to samé to hlásí s tím vzorovým kódem

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title>kontakt</title>
    </head>
    <body>

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

        <form method="POST">
            <table>
                <tr>
                    <td>Vase jmeno</td>
                    <td><input name="jmeno" type="text" /></td>
                </tr>
                <tr>
                    <td>Vas 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"></textarea><br />
            <input type="submit" value="Odeslat">
        </form>


        <?php
        mb_internal_encoding("UTF-8");
            $hlaska = '';
            if($_POST){
                if(isset($_POST['jmeno']) && $_POST['jmeno'] &&
                        isset($_POST['email']) && $_POST['email'] &&
                        isset($_POST['zprava']) && $_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 = '[email protected]';
                    $predmet = 'Nova zprava z mailform';
                    $uspech = mb_send_mail($adresa, $predmet, $_POST['zprava'], $hlavicka);
                    if ($uspech){
                        $hlaska = 'Email byl uspesne odeslan, brzy odpovim.';
                    }
                    else
                        $hlaska = 'Email se nepodarilo odeslat, zkontrolujte adresu.';
                }
                else
                    $hlaska = "Formulář není správně vyplněný!";

            }
        ?>
    </body>
</html>
 
Odpovědět
26.6.2019 22:13
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.