Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem w pliku wyswitla sie blad
Forum PHP.pl > Forum > Przedszkole
Blizz
Witam mam taki problem mam 6 plikow na rejestracje + logowanie + dostem do specjalnego miejsca gdzie moga sei podlaczy tylko zarejestrowani
i mam taki problem w moich plikach mam gdzies bledy i moje pytanie brzy czy mogl by mi ktos powiedziec co robie zle by mi sie to nie wysyswietlalo
mam pliki takie jak rejestracja.php index.php uzytkownicy.php wyloguj.php fukcje.php omnie.php prosze o powiedzenia mi bledow w moim kodzie
Moj Blad brzmi
Cytat
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\usr\krasnal\www\page\rejestracja\funkcje.php:161) in c:\usr\krasnal\www\page\rejestracja\index.php on line 5

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\usr\krasnal\www\page\rejestracja\funkcje.php:161) in c:\usr\krasnal\www\page\rejestracja\index.php on line 5

i niewiem o co chodzi

a oto moje pliki

rejestracja.php
Cytat
<?
//wczytanie pliku z funkcjami
require_once ("funkcje.php");
//rozpoczecie sesji
session_start();
session_cache_limiter('nocache');
//kod PHP

if ($login && $plec && $haslo)
$wynik = dodaj_usera($login, $gg, $skad, $plec, $haslo, $haslo2);
else
exit;
?>


index.php
Cytat
<?php
//wczytanie pliku z funkcjami
require_once ("funkcje.php");
//rozpoczecie sesji
session_start();
session_cache_limiter('nocache');

//formularz logowania
wy_form_logo();
?>


uzytkownicy.php
Cytat
<?
//wczytanie pliku z funkcjami
require_once ("funkcje.php");
//rozpoczecie sesji
session_start();
session_cache_limiter('nocache');
//kod PHP
if ($_GET['m'] == 'rejestracja')
dodaj_form();
if ($_GET['m'] == 'log')
logowanie($login, $haslo);
?>


wyloguj.php
Cytat
<?
session_start();
session_cache_limiter('nocache');
//wczytanie pliku z funkcjami
require_once ("funkcje.php");
//sprawdzenie uzytkownika za pomoca sesji i ewentualne jej wyrejestrowanie.
if (session_is_registered("user"))
{
session_unregister("user");
echo "<H3 ALIGN=center>Zostalesœ wylogowany!</h3>";
html_url("index.php", "Logowanie");
}
else
{
echo "<H3 ALIGN=center>Nie bylesœ zalogowany!</h3>";
html_url("index.php", "Logowanie");
}
//zakonczenie wyrejestrowania
?>




cz.2
funkcje.php
Cytat
<?php

function pol_mysql()
{


//ustawiamy teraz dane naszej bazy
$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'krasnal';
$db_name = '123';

//ustawiamy polaczenie z baza danych
$lacz = mysql_pconnect($db_host, $db_user, $db_pass);
if(!$lacz)
{
echo "Wystapil blad: Polaczenie z baza nie powiodlo sie.";
exit; }

//wybieramy baze
if([email="!@mysql_select_db($db_name"]!@mysql_select_db($db_name[/email], $lacz)) {
echo '<b>Baza danych chwilowo niedostepna. Przepraszamy.</b>';
exit; }

}

function wynik_db_do_tablicy($wynik)
{
$tablica_wyn=array();

for($licznik=0; [email="$rzad=@mysql_fetch_array($wynik"]$rzad=@mysql_fetch_array($wynik[/email]); $licznik++)
$tablica_wyn[$licznik]=$rzad;

return $tablica_wyn;
}

function html_url($url, $nazwa)
{
// wyswietlenie URL-a jako lacza
?>
<P align="center">
<a href="<?=$url?>"><?=$nazwa?></a>
</P>
<?
}

//wyswietla nam pole do zalogowania sie, badz rejestracji winksmiley.jpg
function wy_form_logo()
{
?>
<form method=post action="uzytkownicy.php?m=log">
<TABLE ALIGN="center">
<tr>
<td><b>Login:</b></td>
<td><input type=text name="login"></td>
<td><b>Haslo:</b></td>
<td><INPUT type=password name="haslo"></td>
<td align=center colspan=2>
<INPUT TYPE="SUBMIT" VALUE="Zaloguj"></td>
<td><a href="uzytkownicy.php?m=rejestracja">Rejestracja</a></td>
</tr>
</table></form>

<?
}
// formularz rejestracji
function dodaj_form()
{
?>
<form method=post action="rejestracja.php">
<TABLE ALIGN="center">
<tr>
<td colspan=2><H1>Dodanie nowego uzytkownika</H1><TD></TD></td>
<tr>
<td>Login:</td>
<td><input type=text name=login></td></tr>
<tr>
<td>Numer Gadu-Gadu:</td>
<td><input type=text name=gg></td></tr>
<tr>
<td>Skšd jesteœ:</td>
<td><input type=tekst name=skad></td></tr>
<tr>
<td>Plec:</td>
<td>Mezczyzna: <input type="radio" value="m" checked name="plec"> Kobieta: <input type="radio" name="plec" value="k"></td></tr>
<tr>
<td>Haslo:</td>
<td><input type=password name=haslo></td></tr>
<tr>
<td>Powtórz haslo:</td>
<td><input type=password name=haslo2></td></tr>
<tr><td colspan=2><h4>Haslo powinno skladac sie z nie wiecej niz 12 znaków.</H4></td></TR>
<tr>
<td align=center colspan=2>
<input type=submit value="Zapisz"></td></TABLE></form>
<?
html_url("index.php", "Logowanie");
}
//dodajemy uzytkownika do bazy danych
function dodaj_usera($login, $gg, $skad, $plec, $haslo, $haslo2)
{
if ($haslo != $haslo2)
{
echo "<H3 ALIGN=center>Hasla nie sa takie same.</h3>";
dodaj_form();
exit;
}
$polaczenie= pol_mysql();
// sprawdzenie, czy login nie powtarza sie
$wynik = mysql_query("select * from users where login='$login'");
if(!$wynik)
return "Problem: zapytanie z bazy nieudane";
if (mysql_num_rows($wynik)>0)
{
echo "<H3 ALIGN=center>Uzytkownik o takiej nazwie jest juz zarejestrowany, spróbuj inny login</h3>";
dodaj_form();
}
$czas = date("j-m-Y-G:i:s");
// umieszczenie usera w bazie danych
$zapytanie = "insert into users values
('', '$login', '$gg', '$skad', '$plec', '$haslo', '$czas')";
$wynik=mysql_query($zapytanie);
if($wynik)
{
echo "<H3 ALIGN=center>Rejestracja zakonczona pomyœlnie</h3>";
echo "<H4 ALIGN=center><a href='index.php'>Strona Logowania</a></h4>";
exit;
}
return true;
}

function logowanie($login, $haslo)
{
$polaczenie= pol_mysql();
// sprawdzenie, czy login nie powtarza sie
$wynik = mysql_query("select * from users where login='$login'");
if(!$wynik)
return "Problem: zapytanie z bazy nieudane";
if (mysql_num_rows($wynik)== 0)
{
echo "<H3 ALIGN=center>Niema takiego uzytkownika w bazie danych</h3>";
wy_form_logo();
exit;
}
$tab_user = wynik_db_do_tablicy($wynik);
if ($tab_user[0]['haslo'] != $haslo)
{
echo "<H3 ALIGN=center>Niepoprawne haslo</h3>";
wy_form_logo();
exit;
}
$user = $login;
//rejestrowanie danych sesji
session_register("user");
echo "zalogowany jako: <b>" .$user."</b>, jesteœ z <b>".$tab_user[0]['skad']."</b>, data twojej rejestracji to: <b>".$tab_user[0]['data']."</b><br>";
echo "<a href=omnie.php>Strona o mnie</a>";

}
?>


i omnie.php
Cytat
<?php
//wczytanie pliku z funkcjami
require_once ("funkcje.php");
//rozpoczecie sesji
session_start();
session_cache_limiter('nocache');
//kod PHP
if (session_is_registered("user"))
{
echo "Moze posluzyc jako menu, czy cos innego winksmiley.jpg";
echo "<br><A HREF=wyloguj.php>Wyloguj</a>";
}
else
{
echo "<H3 ALIGN=center>Nie masz uprawnien do korzystania z tej strony! Wróc i sie zaloguj</h3>";
html_url("index.php", "Logowanie");
exit;
}
?>


moze mi ktos powiedziec moj blad questionmark.gif
maciek258
session_start() daj na początek zaraz po <?
sprawdź czy nie masz spacji pred <?
Helios
Najpierw wywolujesz plik funkcje.php, ktory wysyla dane do przegladarki a pozniej probujesz wysylac naglowki (session_start()) a nie taka powinna byc kolejnosc. Najpierw naglowki, pozniej dane. Bedzie Ci sie sypac nawet jak usuniesz z dolaczanych przed session_start plikow wszelkie wyswietlanie danych a w tych plikach bedzie np. bialy znak na koncu pliku. Rozwiazanie: zmiana kolejnosci (naglowki, pozniej dolaczanie plikow z wyswietlaniem danych), manual: ob_start() ob_end_flush()
Blizz
oki sprawdzilem jest ciagle za tym lecz ciagle mi wywala ten blad moze mi ktos pomuc ??zalezy mi na tym?? bo kolegi nademna nie kapuje
Trobin
Chodzi o to, że session_start wysyła do przeglądarki nagłówki i one powinny lecieć tam najprędzej. Tymczasem w Twoim skrypcie najpierw wysyłasz dane (includując funkcje.php) a dopiero potem session_start, który ma pierwszeństwo przed resztą danych wysyłanych do przeglądarki (podobnie zresztą jak cookies). Rozwiązaniem może być przesunięcie session_start na sam pocztątek skryptu, bądź skorzystanie z funkcji ob_start() i ob_end_flush(). ob_start(); umieść na początku swojego pliku (zaraz za <?php) a ob_end_flush(); umieść na końcu pliku (tuż przed ?>).
gumonman
jeżeli nic nie będzie pomagać, to upewnij się że Twój edytor nie dodaje jakiś swoich znaczników. Sprawdź czy masz kodowanie (np. utf-8) bez BOM. Jeżeli będziesz miał ustawione BOMsy, to session_start(); za chiny nie odpali winksmiley.jpg
Mlodycompany
rozpoczecie sesji na poczatek strony i powinno grac. ja to samo mialem.
netes
Ten błąd pojawia się dość często nawet kiedy session_start() jest na początku dokumentu i nie jest poprzedzony żadnym znakiem.
Problemem jest kodowanie z Byte-Order-Mark (jak napisał -gumonman- wyżej). Aby się tego pozbyć użyj np. Notepad++, z menu wybierasz format i "Koduj bez BOM", zapisujesz i gra winksmiley.jpg
Mlodycompany
ja jak mialem problem ze sesja to mialem umieszczone rozpoczecie w pliku ktory byl includowany do indexu. jak go otwieralem osobno to dzialal ale w indexie juz nie. czuje ze on popelnil ten sam blad biggrin.gif
nate
Kiedyś miałem ten sam problem, rade sprawdzić ustawienia serwera Apache.
Widzę, że korzystasz z krasnala, wiec znajdz sobie plik httpd.conf albo apache2.conf.

Poszukaj w nim linijki output_buffering i ustaw ją na Off
Cienki1980

Proszę zapoznać się z Tematyką i zasadami panującymi na forum Przedszkole i dodać poprawny tag do tematu.

W innym przypadku wątek zostanie zamknięty.

PS. Proszę również poprawić BBCode w pierwszym poście.
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.