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 – Diskusia v PHP bez použitia databázy

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
Frenzy
Člen
Avatar
Odpovedá na Frenzy
Frenzy:11.9.2012 19:16

Jak by se to dalo teda vyřešit?

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Frenzy
David Hartinger:11.9.2012 19:28

Jo, to už zní logičtěji :) Jde. Ten kód mi přijde nějaký divný, zkus toto, kdyžtak to v článku upravím:

<?php

$file = "diskuze.txt";

if (isset($_POST['odeslat']))
{
        $fo = fopen($file, "a");
        if (fwrite($fo, '<p>Od: ' . htmlspecialchars($_POST['autor']) . '<br />Titulek: ' . htmlspecialchars($_POST['nadpis']) . '<br /><br>Napsal: ' . htmlspecialchars($_POST['obsah']) . '</p>'))
                echo("Obsah byl úspěšně zapsán,");
        else
                echo("Někde se stala chyba!");

        fclose($fo);
        header('Location: .');
        exit;
}


?>

<h2>Diskuze:</h2>
<?php readfile($file); ?>

<form method="post">
        Autor: <input type="text" name="autor" /><br/>
        Nadpis: <input type="text" name="nadpis" /><br/>
        Příspěvek: <textarea name="obsah" cols="50" rows="10"></textarea><br/>
       <input type="submit" name="odeslat">
</form>
Editované
Odpovedať
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Frenzy
Kit:11.9.2012 19:32

Zkus přidat hned za volání funkce fclose() řádky

header('Location: .');
exit;

Často se na to zapomíná.

První echo a volání funkce readfile() je nutné přesunout až těsně před poslední echo.

Ten původní skript je dost zpřeházený, pořadí příkazů je dost důležité.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Kit
David Hartinger:11.9.2012 19:40

Jo, to tam hodím, viz. můj příspěvek výše. To už je ok ne?

Odpovedať
New kid back on the block with a R.I.P
Avatar
Frenzy
Člen
Avatar
Frenzy:11.9.2012 20:57

Díky, už to funguje akorát se to po odesláni přehodí na index, jak to mám udělat aby to zůstalo na té diskuzi?

Editované
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hartinger
Kit:12.9.2012 8:57

Je to OK. Jen řádky

    echo("Obsah byl úspěšně zapsán,");
else
    echo("Někde se stala chyba!");

se staly zbytečnými, protože se nikdy neobjeví. Takže se to dá ještě zjednodušit.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Frenzy
David Hartinger:13.9.2012 13:02

Do toho location napiš místo tečky diskuze.php. Předělal jsem ten článek, mělo by to tam být funkční :)

Odpovedať
New kid back on the block with a R.I.P
Avatar
Frenzy
Člen
Avatar
Avatar
Jakub Mudra
Tvůrce
Avatar
Jakub Mudra:23.10.2012 7:53

Malinko sem to upravil,je tam kontrola proti robotům - mělo by to fungovat.

Odpovedať
Uvnitř jsou všichni stejní...
Avatar
albertpatera
Tvůrce
Avatar
albertpatera:10.12.2012 20:58

jak udělám to...aby nebylo možný odeslat prázdnej komentář? díky :D

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 74.