Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pomoc z sesja w php
Forum PHP.pl > Forum > PHP
cypisek01
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
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
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
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
W index.php masz mieć na początku zamiast:

<?php session_unset(); ?>

<?php ob_start(); session_unset(); ?>
cypisek01
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
Co konkretnie nie działa?
cypisek01
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
może daj sobie UTF-8 bez BOM ja miałem tak samo i pomogło. notepad++ ma taką funkcję.
cypisek01
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
a robiłeś tak:

  1. <?php
  2. $_SESSION['username'] = $_POST['user'];
  3. $_SESSION['userpass'] = $_POST['pass'];
  4. $_SESSION['authuser'] = 0;
  5. if (($_SESSION['username'] == 'tutaj login') and
  6. ($_SESSION['userpass'] == 'tutaj haslo')) {
  7. $_SESSION['authuser'] = 1;
  8. } else {
  9. header("Location: error_log.php");
  10. exit();
  11.  
  12. ?>
cypisek01
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
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.