Autor Zpráva
Sxmanek
Profil
Zdravím, mám takový problém, je to FAQ, ale moc jsem to nepobral...
Mám kod...
<?php include './includes/header.php'; ?>

<article class="article">
    <header class="header_article"><h3>Přihlášení</h3></header>
    <form method="POST">
        <?php
        if (isset($_POST["submit"])) {
            $username = $_POST["username"];
            $password = md5($_POST["password"]);
            if (empty($username) || empty($_POST["password"])) { //Hashování prázdného řetězce nevrací NULL!!!
                echo "Vyplňte všechna pole!!";
            } else {
                $query = $connection->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
                $result = $query->execute(array($username, $password)); //$result bude buď false nebo true
                $count = $query->rowCount();
                $date = new DateTime("NOW");
                $cas = $connection->prepare("UPDATE users SET users.datum_prihlaseni = '{$date->format('Y-m-d H:i:s')}' WHERE username = ?");
                $result = $cas->execute(array($username));
                if ($count == 1) {
                    $_SESSION["username"] = $username;
                    header("location: http://ruskyjazyk.cz");
                } else {
                    echo "Špatně zadané už. jméno nebo heslo!";
                }
            }
        }
        ?>
        <table>
            <tr>    
                <td>Uživatelské jméno:</td>
                <td><input type="text" name="username"></td>
            </tr>
            <tr>
                <td>Heslo:</td>
                <td><input type="password" name="password"></td>
            </tr>
        </table>
        <input type="submit" name="submit" value="Přihlásit se">
    </form>
</article>

<?php
include './includes/footer.php';
a vyhazuje mi to chybu na tomto řádku
header("location: http://ruskyjazyk.cz");
Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/88876/virtual/www/includes/header.php:18) in /data/web/virtuals/88876/virtual/www/login.php on line 21
Co tam tomu vadí??
<article class="article">
    <header class="header_article"><h3>Přihlášení</h3></header>
    <form method="POST">
Toto?
Alphard
Profil
Sxmanek:
Toto?
Ano, hlavičky je třeba nastavit před odesláním výstupu.
Radek9
Profil
Sxmanek:
A ostatně asi i celý obsah souboru header.php. Buď headery odešli jako první a až potom vypisuj, nebo to můžeš oblbnout tím, že výstup nejprve nabufferuješ a on se odešle až po doběhnutí scriptu. To zajistíš zavoláním funkce ob_start() na začátku souboru. Nevím ale přesně, jestli to nemá nějaké vedlejší efekty.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: