Autor Zpráva
davidmyska
Profil
dobrý den, toto je celý kód stránky:
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="cs">
<title>title</title>
<style media="all" id="zalozky">
        .polozka {display: none}
        #home {display: block}
        .zalozka a {border: 4px ridge red; border-bottom: none; padding: 4px; background-color: khaki; text-decoration: none;}
        .zalozka {border-bottom: 4px ridge red; padding-bottom: 4px;}
        a {color: blue;}
        a:hover {color: black;}
        #login {width: 160px; float: right;}
        #light {width: 105px; float: right;}
        #cela {width: 1000px;}
    #text {width: 830px; float: left;}
        body {text-align: center;}
        .log {width: 160px;}
    </style>
<script>
        var zobrazena = "home";
        function zobraz(polozka){
            if (document.getElementById){
                document.getElementById(zobrazena).style.display = "none";
                document.getElementById(polozka).style.display = "block";
                zobrazena = polozka;
                return false;
            }
            else {
                if(document.stylesheets) document.stylesheets["zalozky"].disabled = true;
                return true;
            } 
        }
   function zmenaStylu(co, zmena)
   {                                                                                    
   switch (co) 
   {
   case 'backgroundColor':
   document.getElementById('barvy').style.backgroundColor=zmena;
   break;
   }    
   }
   </script>
</head>
<body id="barvy">
<div id="cela" align="left"><br>
<span id="light">
Světlo 
  <select onChange="zmenaStylu('backgroundColor', this.value);">
    <option value="white">On</option>
    <option value="grey">Šedo</option>
    <option value="#333333">Off</option>    
  </select>
</span>
<p class="zalozka">
<a href="" onclick="return zobraz('home'); ">Úvodní stránka</a>
</p>
<div id="login">
<?php
session_start();
$path = "/";
function gpc_addslashes($str)
{
    return get_magic_quotes_gpc() ? $str : mysql_real_escape_string($str);
}
include "db.php";
if (isset($_SESSION['username']) && isset($_GET['logout']))
{
   $_SESSION = array();
    if (isset($_COOKIE[session_name()]))
    {
        setcookie(session_name(), '', time()-42000, '/');
    }
    session_unset();
    session_destroy();
    header("location:http://localhost:3305/index.php", TRUE, 303);
    exit;
}
elseif (isset($_SESSION['username']))
{
    echo "<p>Přihlášen: $_SESSION[username] <a href=\"http://localhost:3305/index.php?logout=1\">odhlásit</a></p>\n";
if ($username == admin){
     echo "<a href=\"\" onclick=\"return zobraz('admin'); \">Admin</a>";
     }
else {
     echo "";
     }
}
else
{
    if (isset($_POST['username']) && isset($_POST['password']))
    {
        $username = gpc_addslashes(trim($_POST['username']));
        $password = gpc_addslashes(trim($_POST['password']));

        $result = mysql_query("SELECT COUNT(*) FROM users WHERE username = '$username' AND password = sha1('$password')");

        if (mysql_result($result, 0))  
    {
            $_SESSION['username'] = $username;
            $_SESSION['cas_prihlaseni'] = time();
            header ("location:http://localhost:3305/index.php", TRUE, 303);
            exit;
        }
        else
        {
            header ("location:http://localhost:3305/index.php?incorrect_login=1", TRUE, 303);
            exit;
        }
    }
    else
    {
      if (isset($_GET['incorrect_login']))
      {
          echo "<p style=\"color: #F00\">Zadali jste neplatné uživatelské jméno nebo heslo</p>n";
      }
      ?>
      <form action="index.php" method="post">
        Jméno:  <input name="username" type="text"><br>
        Heslo: <input name="password" type="password"><br>
        <input name="submit" type="submit" value="Přihlásit"><br>
        <a href="" onclick="return zobraz('registrace'); ">Registrace</a>
      </form>
      <?php
    }
}
?>
</div>
<div id="text">
<div id="home" class="polozka"><a name=""></a>
<h1>Vítejte</h1>
</div>
<div id="admin" class="polozka"><a name=""></a>

</div>
<div id="registrace" class="polozka"><a name=""></a>
<form action="registrace.php" method="post">
  <input type="hidden" name="reg_sent" value=""/>
    <input type="text" name="reg_username" maxlength="32"/> <b>Už. jméno</b> <br/>
    <input type="password" name="reg_password" maxlength="32"/> <b>Heslo</b> <br/>
    <input type="password" name="reg_password_znovu" maxlength="32"/> <b>Heslo znovu</b> <br/>
    <input type="text" name="reg_mail" value="" maxlength="64"/> <b>Email</b><br/>
    <input type="text" name="reg_web" value="http://" maxlength="128"/> Web<br/>
  <input type="submit" name="reg_send" value="Registrovat"/>
</form>
</div>
</div>
</div>
</body>
</html>

píše mi to že mám chybu na řádku 60 a 102
prosím pomozte mi najít ty chyby

vypíšemi to toto:
Warning: session_start() [function.session-start.html]: Cannot send session cookie - headers already sent by (output started at C:\ComplexWebServer\http_docs\index.php:6) in C:\ComplexWebServer\http_docs\index.php on line 60

Warning: session_start() [function.session-start.html]: Cannot send session cache limiter - headers already sent (output started at C:\ComplexWebServer\http_docs\index.php:6) in C:\ComplexWebServer\http_docs\index.php on line 60

Warning: Cannot modify header information - headers already sent by (output started at C:\ComplexWebServer\http_docs\index.php:6) in C:\ComplexWebServer\http_docs\index.php on line 102

Moderátor Davex: Titulek „php script chyba v kódu“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
meris
Profil
ahoj, mrkni se do php FAQ zde na diskuzi, a hledej "heades already sent", odkaz na stránku je tu
davidmyska
Profil
jedno se tím vyřešilo ale pořád je chyba zde:
if (mysql_result($result, 0))  
{
$_SESSION['username'] = $username;
$_SESSION['cas_prihlaseni'] = time();
header ("location:http://locahost:3305/index.php", TRUE, 303);
exit;
}

ta se zobrazí ale až po přihlášení
Davex
Profil
davidmyska:
jedno se tím vyřešilo ale pořád je chyba zde:
Má to stále stejnou příčinu. Když už se odešle nějaký obsah, tak se nemůže dodatečně posílat hlavička.
davidmyska
Profil
pardon ale to nevím jak vyřešit
a pak jsem oběvil chyby ještě zde:
if (isset($_SESSION['username']) && isset($_GET['logout']))
{
$_SESSION = array();
if (isset($_COOKIE[session_name()]))
{
setcookie(session_name(), '', time()-42000, '/');
}
session_unset();
session_destroy();
header("location:http://localhost:3305/index.php", TRUE, 303);
exit;
}
Davex
Profil
Můžeš to celé předělat, aby výpis probíhal až na konci skriptu nebo si na začátku skriptu zapnout bufferování pomocí ob_start().
davidmyska
Profil
díky dal jsem to takto a už to jede:
<?php
ob_start();
session_start();
?>
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>....

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:

0