cypisek01
24.05.2008, 16:37:02
witam, mam problem z sesja logowania na mojej stronie. www.kosiaczki.com
zainstalowalem Apache na swym kompie i tu wszystko gra, natomiast po wgraniu plikow na servo, przy poprawnym lub blednym zalogowaniu wystepuje blad:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/kosiaczk/public_html/home.php:1) in /home/kosiaczk/public_html/home.php on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/kosiaczk/public_html/home.php:1) in /home/kosiaczk/public_html/home.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at /home/kosiaczk/public_html/home.php:1) in /home/kosiaczk/public_html/home.php on line 10
Wie ktos moze dlaczego?? Dzieki z gory za pomoc
.radex
24.05.2008, 16:43:32
Wysłałeś tekst przed wysłaniem nagłówków.
Daj na początek skryptu ob_start();
EDIT:
Problem często występuje, jeśli plik był zakodowany za pomocą UTF-8, a potem otworzony za pomocą notatnika.
Black-Berry
24.05.2008, 16:43:43
błąd headers already sent oznacza, że coś zostało już wysłane do przeglądarki. Moze jakaś spacja albo niewidzialny znak, musisz zobaczyc co to za znak i go usunąć. Ewentualnie jeśli nie zależy Ci n apoprawnosci mozesz poprostu wyłączyć wyświetlanie warning'sów.
cypisek01
24.05.2008, 16:48:53
w pliku index.php mam na poczatku: <?php session_unset(); ?>
natomiast w error_log.php(czyli tym otwieranym po blednym zalogowaniu wpisalem:
<?php
session_start();
$_SESSION['username'] = $_POST['user'];
$_SESSION['userpass'] = $_POST['pass'];
$_SESSION['authuser'] = 0;
if (($_SESSION['username'] == 'tutaj login') and
($_SESSION['userpass'] == 'tutaj haslo')) {
$_SESSION['authuser'] = 1;
} else {
header("Location: error_log.php");
exit();
}
musze to zmieniac?
.radex
24.05.2008, 16:51:13
W index.php masz mieć na początku zamiast:
<?php session_unset(); ?>
<?php ob_start(); session_unset(); ?>
cypisek01
24.05.2008, 16:54:27
Cytat(radex_p @ 24.05.2008, 16:51:13 )

W index.php masz mieć na początku zamiast:
<?php session_unset(); ?>
<?php ob_start(); session_unset(); ?>
niestety to nie dziala;
zmienilem wlasnie i teraz juz nawet strony nie wyswietla...
.radex
24.05.2008, 16:56:07
Co konkretnie nie działa?
cypisek01
24.05.2008, 17:00:44
mam prosta stronke, obecnie trzy pliki php. Pierwszy index.php (logowanie), po poprawnym logowaniu powinno otworzyc sie home.php , a po blednym error_log.php. Na domowyn servie Apacha wszystko mi dziala, lecz jak wgralem pliki na serwer www nie moge sie zalogowac, a nawet przy blednym logowaniu tez nie dziala. zamiast otwierac mi strony pokazuja mi sie komunikaty jak wyzej.
zamienilem w index.php session_unset(); na ta co mi napisales ale nic to nie dalo. Nadal nie wiem czemu wyskakuje jako blad...
piotrooo89
24.05.2008, 17:25:15
może daj sobie UTF-8 bez BOM ja miałem tak samo i pomogło. notepad++ ma taką funkcję.
cypisek01
24.05.2008, 17:53:42
mam we wszystkich plikach utf-8 bez BOM , niestety nadal nic. Ciekawi mnie fakt ze na moim Apache wszystko dziala, a na servie www nie...
piotrooo89
24.05.2008, 17:58:37
a robiłeś tak:
<?php
$_SESSION['username'] = $_POST['user'];
$_SESSION['userpass'] = $_POST['pass'];
$_SESSION['authuser'] = 0;
if (($_SESSION['username'] == 'tutaj login') and
($_SESSION['userpass'] == 'tutaj haslo')) {
$_SESSION['authuser'] = 1;
} else {
header("Location: error_log.php");
?>
cypisek01
24.05.2008, 18:07:31
tak, zrobilem tak. Nadal nie dziala. Mozesz to zobaczyc na stronie www.kosiaczki.pl
haslo to: krystian , a login Rodzinka
jak by sie dalo to bym nawet wyslal te pliki do sprawdzenia.
szukalem rozwiazania w ksiazkach i na necie, niby jest oki.
Ale na servie nadal kicha...
susu
11.11.2016, 08:59:46
cześć,
głupio tak odkopywać temat po ośmiu latach, ale to chyba lepsze niż zakładanie kolejnego w podobnym temacie.
Mi również pojawia się błąd:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
Do wczoraj wszystko działało bardzo dobrze (strona wykonana przez firmę, która się tym zajmuje), aż postanowiłem zmienić tak na prawdę kilka liter w notatniku, który jest domyślnym edytorem w FileZilla. Po zapisaniu zedytowanego pliku zaczął pojawiać się powyższy błąd - nawet po zmianie kodu na identyczny jak przed zmianami.
Czy wystarczy teraz zapisać ten plik używając jakiegoś innego edytora?
Przepraszam za być może głupie pytanie, ale jestem laikiem w tych tematach.
<?php
session_start();
ob_start();
if (!$_SESSION['lang']) $_SESSION['lang']="pl";
if ($_GET['lang'])
{
$_SESSION['lang']=$_GET['lang'];
header("Location:index.php");
}
include "inc/config.php";
include "inc/functions.php";
include "inc/Pager.class.php";
include "lang/".$_SESSION['lang'].".php";
include "rewrite.php";
$db = mysql_connect($db_server, $db_user, $db_password);
mysql_select_db($db_name, $db);
mysql_query("SET NAMES utf8", $db);
?>
viking
11.11.2016, 09:40:58
W pliku są zapisane jakies dodatkowe znaki. Zapisz w innym edytorze jako utf-8 bez BOM.
Poza tym prawidłowym sposobem ustawienia kodowania jest
http://php.net/manual/pl/function.mysql-set-charset.php
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.