Autor Zpráva
slawe
Profil
Zdravím, mám takový menší problém s přihlašováním uživatelů: když se uživatel přihlásí, tak jej to nepřesměruje, ale vyskočí chyba

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/29193/virtual/www/subdom/ari/login.php:2) in /data/web/virtuals/29193/virtual/www/subdom/ari/login.php on line 28

Zdrojový kod přihlašování:

<!DOCTYPE html>
<?php
require "config.php";
Hlavicka("Systém pro sdílení dat - Login");

$chyba="";

$ip=$_SERVER["REMOTE_ADDR"];
$cas = time();

if (isset($_POST["send"])) {
    try {
        $_POST["nick"] = esc($_POST["nick"]);
        $_POST["password"] = esc($_POST["password"]);
        if (!empty($_POST["nick"]) && !empty($_POST["nick"])) {
            $call = $db->query("SELECT id_user,pass,admin,aktiv FROM user WHERE nick='$_POST[nick]'");
            $data = $call->fetch();
            if (!empty($data)) {
                $hash = hash("sha512", $_POST["password"] . "fg35hd4f&dsg3#stgs9_jo%74?9");
                if ($hash == esc($data["pass"])) {
                    $db->exec("INSERT INTO log VALUES(NULL,'esc($data[id_user])','$ip','$cas')");
                    //session_start();
                    $_SESSION["userid"] = esc($data["id_user"]);
                    $_SESSION["useradmin"] = esc($data["admin"]);
                    $_SESSION["useraktiv"] = esc($data["aktiv"]);
                $_SESSION["on"] = 1;
                //session_start();
                    header("Location: index.php");
                } else {
                    $chyba = "<span class=\"cervena\">Špatné heslo.</span>";
                }
            } else {
                $chyba = "<span class=\"cervena\">Zadaný nick nenalezen.</span>";
            }
        } else {
            $chyba = "<span class=\"cervena\">Musíte zadat nick a heslo.</span>";
        }
    } catch (PDOException $e){
        $chyba = "<span class=\"cervena\"> Došlo k chybě: ".$e->getMessage()."</span>\n";
    }
}

echo "<div id=\"Header\"></div>
<div id=\"Main\">
    <h1>Přihlášení</h1><br />
  ".$chyba."<br />
  <form action=\"\" method=\"post\">
    <table>
        <tr>
        <td>Nick:</td>
        <td><input name=\"nick\" class=\"inputsirka\"></td>
      </tr><tr>
        <td>Heslo:</td>
        <td><input name=\"password\" type=\"password\" class=\"inputsirka\"></td>
      </tr><tr>
        <td colspan=2><input type=\"submit\" name=\"send\" value=\"LOGIN\" class=\"inputsirka\"></td>
      </tr>
    </table>
  </form>
    <a href=\"zapomenuteheslo.php\">Zapomenuté heslo</a></div>";

Footer();
?>

Na začátku requirleého configu mám příkaz ob_start();

V kodu mam zakomentovaný příkaz session_start(); a to proto, že když jej odkomentuju, tak se mi zobrazí 2x ta samá chyba k té předchozí:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /data/web/virtuals/29193/virtual/www/subdom/ari/login.php:2) in /data/web/virtuals/29193/virtual/www/subdom/ari/login.php on line 22

Server jede na PHP 5.3 (hosting je na wedosu)

Nějaký tip, kde jsem to podělal? Díky
shaggy
Profil
slawe:
Prečítal som si chybovú hlášku, zbadal som prvý riadok tvojho kódu a bolo mi všetko jasné.
Skúšal si aspoň trochu hľadať, prečítal si si najčastejšie chyby tu na fóre: Nejčastější potíže s PHP (FAQ)

Keby si to urobil, tak by si na tú chybu prišiel určite aj sám.

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: