IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.
Avatar
Paco
Člen
Avatar
Paco:31.10.2014 18:29

Ahoj, potrebujem poradiť. Chcem aby sa mi správa o úspešnom odoslaní formuláru zobrazila normálne nad formulárom ako vždy, ale po absolvovaní tohto dielu mi už pri odosielaní formuláru vyhodí 404. Skúšal som sa pohrať s

header('Location: mailform.php?uspech=ano');

ale vždy som docielil len toho že ma to hodilo buď "domov" na index bez hlášky o úspechu alebo len čisto na stránku mailform aj s hláškou o úspechu ale zase bez layoutu. Neviem či som niečo prehliadol, iné problémy som vždy vyriešil sám ale tuto som v koncoch. Help me please :)

Editováno 31.10.2014 18:30
Odpovědět
31.10.2014 18:29
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Odpovídá na Paco
Neaktivní uživatel:31.10.2014 18:42

Nemáš za tím další přesměrování ? Zkus za to dát

exit();
Nahoru Odpovědět
31.10.2014 18:42
Neaktivní uživatelský účet
Avatar
Paco
Člen
Avatar
Odpovídá na Neaktivní uživatel
Paco:31.10.2014 18:49

exit tam mám. Celé to vypadá takto

<?php
mb_internal_encoding("UTF-8");
    $hlaska = '';
    if (isset($_GET['uspech']))
        $hlaska = 'Email bol úspešne odoslaný.';
    if ($_POST) // V poli post niečo je, formulár sa poslal.
    {
        if (isset($_POST['meno']) && $_POST['meno'] &&
        isset ($_POST['email']) && $_POST['email'] &&
        isset ($_POST['sprava']) && $_POST['sprava'] &&
        isset ($_POST['rok']) && $_POST['rok'] == date('Y'))
        {
           $hlavicka = 'From:' . $_POST['email'];//odosielanie emailu
            $hlavicka .= "\nMIME-Version: 1.0\n";
            $hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
            $adresa = '[email protected]';
            $predmet = 'Nová správa z mailformu.';
            $uspech = mb_send_mail($adresa, $predmet, $_POST['sprava'], $hlavicka);
            if ($uspech)
            {
                $hlaska = 'Email bol úspešne odoslaný.';
                header('Location: mailform.php?uspech=ano');
                exit;
            }
            else
                $hlaska = 'Email sa nepodarilo odoslať!';

        }
        else
            $hlaska = 'Formulár nieje správne vyplnený!';
    }
?>
Nahoru Odpovědět
31.10.2014 18:49
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Odpovídá na Paco
Neaktivní uživatel:31.10.2014 18:55

Přesunuto na fórum

Nahoru Odpovědět
31.10.2014 18:55
Neaktivní uživatelský účet
Avatar
Odpovídá na Paco
Neaktivní uživatel:31.10.2014 18:56

Ale ty to jenom ukládáš do $hlaska, nikde to nevypisuješ.

Nahoru Odpovědět
31.10.2014 18:56
Neaktivní uživatelský účet
Avatar
Paco
Člen
Avatar
Paco:31.10.2014 19:01

Tak celý kód sem dám sry...

<?php
mb_internal_encoding("UTF-8");
    $hlaska = '';
    if (isset($_GET['uspech']))
        $hlaska = 'Email bol úspešne odoslaný.';
    if ($_POST) // V poli post niečo je, formulár sa poslal.
    {
        if (isset($_POST['meno']) && $_POST['meno'] &&
        isset ($_POST['email']) && $_POST['email'] &&
        isset ($_POST['sprava']) && $_POST['sprava'] &&
        isset ($_POST['rok']) && $_POST['rok'] == date('Y'))
        {
           $hlavicka = 'From:' . $_POST['email'];//odosielanie emailu
            $hlavicka .= "\nMIME-Version: 1.0\n";
            $hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
            $adresa = '[email protected]';
            $predmet = 'Nová správa z mailformu.';
            $uspech = mb_send_mail($adresa, $predmet, $_POST['sprava'], $hlavicka);
            if ($uspech)
            {
                $hlaska = 'Email bol úspešne odoslaný.';
                header('Location: mailform.php?uspech=ano');
                exit;
            }
            else
                $hlaska = 'Email sa nepodarilo odoslať!';

        }
        else
            $hlaska = 'Formulár nieje správne vyplnený!';
    }
?>

    <div class="grid_12"><h1>Kontakt</h1></div>

    <article class="grid_5 prefix_1">
        <?php           /* Dátum */
        $mesiace = array('január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december');
        $den = date('j');
        $mesiac = date('m');
        $mesiacslovo = $mesiace[$mesiac - 1];
        $rok = date('y');
        echo('Dnes je '.$den.'. '.$mesiacslovo.' 20' .$rok); /* </Dátum>*/
        ?>
    </article>
    <article class="grid_5 suffix_1">
        <p>Text text drísty drísty drísty</p>
    </article>
    <div class="clear"></div>
    <div class="grid_10 prefix_1 suffix_1"><hr/></div>
    <div class="grid_4 prefix_1">
        <?php
        if ($hlaska)
            echo('<p>' .htmlspecialchars($hlaska) . '</p>');

        $meno = (isset($_POST['meno'])) ? $_POST['meno'] : '';
        $email = (isset($_POST['email'])) ? $_POST['email'] : '';
        $sprava = (isset($_POST['sprava'])) ? $_POST['sprava'] : '';
        ?>
        <form method="post">
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-user"></i></span>
                    <input placeholder="Vaše meno" class="form-control" name="meno" type="text" value="<?= htmlspecialchars($meno) ?>">
                </div>
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-envelope-o"></i></span>
                    <input placeholder="Váš Email" class="form-control" name="email" type="email" value="<?= htmlspecialchars($email) ?>">
                </div>
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
                    <input placeholder="Aký je rok? Spam kontrola"class="form-control" name="rok" type="number">
                </div>
            <textarea placeholder="Správa..." class="form-control" name="sprava"><?= htmlspecialchars($sprava) ?></textarea><br/>
            <input type="submit" value="Odoslať">
        </form>
</div>
Editováno 31.10.2014 19:03
Nahoru Odpovědět
31.10.2014 19:01
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Paco
Člen
Avatar
Paco:31.10.2014 19:04

Chcel som priložiť aj screeny ale nejdú mi nahrať

Nahoru Odpovědět
31.10.2014 19:04
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Odpovídá na Paco
Neaktivní uživatel:31.10.2014 19:17

Jsi si jist, zda se soubor opravdu jmenuje mailform.php?? Pokud spouštíš přímo ten zdroják, co jsi poskytl, vyzkoušej toto ;)

header('Location: ?uspech=ano');
Nahoru Odpovědět
31.10.2014 19:17
Neaktivní uživatelský účet
Avatar
Paco
Člen
Avatar
Odpovídá na Neaktivní uživatel
Paco:31.10.2014 19:31

Určite je to mailform.php :D skúsil som...presmeruje zase len na "Domú" index.php bez hlášky , v $_GET je potom tohle http://localhost/proj1/index.php?… ..

Editováno 31.10.2014 19:33
Nahoru Odpovědět
31.10.2014 19:31
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Paco
Jan Lupčík:31.10.2014 19:34

Víš, že pokud je to na localhostu, nám to nepůjde?

Nahoru Odpovědět
31.10.2014 19:34
TruckersMP vývojář
Avatar
Paco
Člen
Avatar
Odpovídá na Jan Lupčík
Paco:31.10.2014 19:35

Pre predstavu: Tak jak je na screene hláška "Formulár nieje správne vyplnený"
potrebujem vypísať aj úspešnú hlášku..tak ako to šlo pred tým len po skladaní stránky cez include() už to nejde.

Editováno 31.10.2014 19:41
Nahoru Odpovědět
31.10.2014 19:35
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Odpovídá na Paco
Neaktivní uživatel:31.10.2014 19:38

Hle, jak se jmenuje soubor, ve kterém se nachází výše sdílený zdrojový kód a jak k tomu přistupuješ přes web??

Nahoru Odpovědět
31.10.2014 19:38
Neaktivní uživatelský účet
Avatar
Paco
Člen
Avatar
Paco:31.10.2014 19:43

omg nejde screen nahrat :D No je to tak jak v tutoriáloch..mám normálne komplet šablonu a v menu je proste "kontakt" a tam je ten formulár. Proste mám podsložku "/sub" a v nej všetky podstránky a súbor s formulárom sa volá mailform.php

Editováno 31.10.2014 19:45
Nahoru Odpovědět
31.10.2014 19:43
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Odpovídá na Paco
Neaktivní uživatel:31.10.2014 19:49

Hele, zajeď na (veřejnou)strán­ku, kde máš ten formulář a připiš do URL ?uspech=ano. Pokud ti to bude fungovat, tak jen zkopíruj URL od části, kde máš adresáře až po konec a vlož to do té funkce header. Ta URL bude vypadat nějak takto /proj1/index.php?us­pech=ano

Nahoru Odpovědět
31.10.2014 19:49
Neaktivní uživatelský účet
Avatar
Paco
Člen
Avatar
Odpovídá na Neaktivní uživatel
Paco:31.10.2014 19:58

no keď do /proj1/index.php?pa­ge=mailform pripíšem " ?uspech=ano " tak sa zobrazí len Neplatný parameter (z kódu v index.php)

<?php
    if (isset($_GET['page']))
        $page = $_GET['page'];
else
        $page = 'home';
if (preg_match('/^[a-z0-9]+$/', $page))
{
    $vlozene = include('sub/'. $page. '.php');
    if(!$vlozene)
        echo('Podstránka nenájdená. / Page not found.');
}
else
echo('Neplatný parameter. / Parameter not valid.');
?>

v podstate potrebujem aby konečná url po odoslaní formuláru vyzerala "/proj1/index­.php?page=mail­form?uspech=a­no ....chcem zostať na stránke mailform.php so zobrazenou hláškou o úspešnom odoslaní. Škoda že sa nedajú nahrať screeny aby si mal lepšiu predstavu.

Nahoru Odpovědět
31.10.2014 19:58
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
Avatar
Odpovídá na Paco
Neaktivní uživatel:31.10.2014 20:01

Jo aha, to jsi neřekl, v tom případě by měla URL vypadat takto:

/proj1/index.php?page=mailform&uspech=ano

Můžeš ještě zkusit toto

?page=mailform&uspech=ano
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
31.10.2014 20:01
Neaktivní uživatelský účet
Avatar
Paco
Člen
Avatar
Odpovídá na Neaktivní uživatel
Paco:31.10.2014 20:10

Díky! výborne! :) to bolo ono..stále som tam cpal ? a ono tam musí byť & .
Tam byl pes zakopán :) + rep .. Ďakujem ešte raz aj ostatným za čas a ochotu.

Editováno 31.10.2014 20:11
Nahoru Odpovědět
31.10.2014 20:10
Gdy Ci smutno, gdy Ci źle. Jebnij format dysku C.
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 17 zpráv z 17.