djpotwosss
26.05.2012, 13:49:00
Witajcie, mam taki problem.
Gdy wpiszę w przeglądarce adres np domena.pl/admin.php to tego błędu nie ma, a gdy zaincluduje plik to pojawia sie error:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\WWW\index.php:10) in C:\WWW\admin.php on line 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\WWW\index.php:10) in C:\WWW\admin.php on line 3PLik:
<?php
//header("Cache-Control: max-age=0");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Panel administracyjny</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css" media="all">
<?php if($_GET['s'] == 'zdjecia') { ?>
</style>
</head>
<body>
<?php
if($_GET['s'] == 'wyloguj') {
header("HTTP/1.1 301 Moved Permanently"); }
if($_SESSION['logowanie'] != 'zapraszamy') {
?>
<br />
<div id="logowanie">Logowanie</div>
<?php
if($_POST['submit']) {
function checkPass($user, $pass){
$users = array("root" => "root" );
if($users[$user] == $pass){
return true;
}
else{
return false;
}
}
else{
return false;
}
}
if(!isSet($_POST["haslo"]) || !isSet($_POST["user"])){ ?>
<div class="formularz_logowania">
<div style="text-align: center;"><b>Błędna nazwa użytkownika lub hasło!</b></div>
</div>
<?php
}
else if(checkPass($_POST["user"], $_POST["haslo"])){
$_SESSION['logowanie'] = "zapraszamy";
header("HTTP/1.1 301 Moved Permanently"); }
else{
?>
<div class="formularz_logowania">
<div style="text-align: center;"><b>Błędna nazwa użytkownika lub hasło!</b></div>
</div>
<?php
}
}
?>
<form name="logowanie" action="admin.php" method="post">
<div class="formularz_logowania">
<label for="user">Login: </label>
<input type="text" size="35" id="user" name="user" />
</div>
<div class="formularz_logowania">
<label for="haslo">Hasło: </label>
<input type="password" name="haslo" size="35" id="haslo" />
</div>
<div class="formularz_logowania">
<input class="zaloguj" type="submit" name="submit" value="Zaloguj się do panelu!" />
</div>
</form>
<?php }
if($_SESSION['logowanie'] == 'zapraszamy') {
include("config.php"); //config baza
?>
<div id="calosc">
<div id="dane">
<?php
if($_GET['s'] == 'edycja') include("edytuj_podstrone.php");
?>
</div>
<br />
</div>
<?php
} ?>
</body>
</html>
gorden
26.05.2012, 13:52:38
wywal session_start z admin.php
djpotwosss
26.05.2012, 14:03:40
Wywaliłem i wtedy nie działa logowanie.. Tzn nic sie nie dzieje po wpisaniu danych do logowanie..
matis95
26.05.2012, 17:32:08
Cytat(djpotwosss @ 26.05.2012, 15:03:40 )

Wywaliłem i wtedy nie działa logowanie.. Tzn nic sie nie dzieje po wpisaniu danych do logowanie..
Jeśli dobrze paczę to plik admin.php "includujesz" do index.php. Jeśli tak jest, to na początku pliku index.php wstaw:
Kod
ob_start();
session_start();
A na koniec
Kod
ob_end_flush();
Oraz usuń wywołanie tych funkcji z pliku admin.php
djpotwosss
26.05.2012, 19:10:47
Zrobiłem tak i dalej wywala ten błąd tylko teraz na samej górze strony:(
ciekawskiii
26.05.2012, 19:20:23
Wiecej niz raz wywolujesz session_start(). To Twoj skrypt wiec powinienes wiedziec co i jak, przypatrz sie na includowane pliki i znajdziesz.
djpotwosss
26.05.2012, 19:21:59
session_start() jest wywołany tylko raz..
ciekawskiii
26.05.2012, 19:28:11
pokaz ten plik co includujesz
djpotwosss
26.05.2012, 19:31:15
includuje właśnie plik admin.php ...
A w pliku index.php includuje tak:
<?php
if($_GET['idz'] == 'administrator') include("admin.php");
?>
ciekawskiii
26.05.2012, 19:40:21
to pokaz plik index
ciekawskiii
26.05.2012, 19:57:25
w index plik z session_start() includujesz w srodku strony a session powinien byc na poczatku pliku, wywal session z pliku admin i daj go do pliku index na poczatku a po drugie w includowanym pliku nie daje sie calego naglowka html, wystarczy ze masz go w index
djpotwosss
26.05.2012, 20:05:45
Zrobiłem tak jak mówiłeś i dalej błąd na górze strony:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\WWW\index.php:1) in C:\WWW\index.php on line 3
Warning: Cannot modify header information - headers already sent by (output started at C:\WWW\index.php:1) in C:\WWW\index.php on line 4
ciekawskiii
26.05.2012, 20:19:40
session_start() przed DOCTYPE!
djpotwosss
26.05.2012, 20:24:32
tak mam..
vifus
26.05.2012, 22:04:16
spróbuj dać to na samą górę:
<? include("config.php"); ?>
djpotwosss
27.05.2012, 10:51:45
Dałem to na samą górę pliku index.php i dalej taki sam błąd..
PiNkOs
27.05.2012, 12:50:54
Też spotkałem się kiedyś z podobnym problemem.
Pobierz
Notepada i każdy plik przekoduj na UTF-8 bez BOM. (Menu Format -> Konwertuj na Format UTF-8 bez BOM)
Nie wiem czy pomoże, niemniej jednak mi kiedyś to pomogło.
djpotwosss
27.05.2012, 14:37:28
Dzięki Ci bardzo, problem zanikł

Od dziś będę używać tylko Notepada
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.