Avatar
Paco
Člen
Avatar
Paco:

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
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Paco
Daniel Vítek:

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

exit();
 
Nahoru Odpovědět 31.10.2014 18:42
Avatar
Paco
Člen
Avatar
Odpovídá na Daniel Vítek
Paco:

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 = 'paco16@centrum.sk';
            $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
Daniel Vítek
Tým ITnetwork
Avatar
 
Nahoru Odpovědět 31.10.2014 18:55
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Paco
Daniel Vítek:

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

 
Nahoru Odpovědět 31.10.2014 18:56
Avatar
Paco
Člen
Avatar
Paco:

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 = 'paco16@centrum.sk';
            $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:

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
Fredep
Redaktor
Avatar
Odpovídá na Paco
Fredep:

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
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
Paco
Člen
Avatar
Odpovídá na Fredep
Paco:

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
IT Man
Redaktor
Avatar
Odpovídá na Paco
IT Man:

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

Nahoru Odpovědět 31.10.2014 19:34
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Paco
Člen
Avatar
Odpovídá na IT Man
Paco:

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
Fredep
Redaktor
Avatar
Odpovídá na Paco
Fredep:

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
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
Paco
Člen
Avatar
Paco:

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
Fredep
Redaktor
Avatar
Odpovídá na Paco
Fredep:

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
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
Paco
Člen
Avatar
Odpovídá na Fredep
Paco:

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
Fredep
Redaktor
Avatar
Odpovídá na Paco
Fredep:

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í
+1 bodů
Řešení problému
Nahoru Odpovědět 31.10.2014 20:01
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
Paco
Člen
Avatar
Odpovídá na Fredep
Paco:

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.