Wątek przeniesiony 2014-03-08 19:07 z PHP przez ŁF.

Pliki cookies - wina kodu?

0

Witam, mam problem. Dzisiaj zainstalowałem taki o to kodzik na moją stronę

font-family:Verdana;
line-height:1.8;
word-spacing:3px;
}
</style>

<form method="POST" action="rejestracja.php">
<b>Login:</b> <input type="text" name="login"><br>
<b>Hasło:</b> <input type="password" name="haslo1"><br>
<b>Powtórz hasło:</b> <input type="password" name="haslo2"><br>
<b>Email:</b> <input type="text" name="email"><br>
<input type="submit" value="Zaloguj" name="loguj">
</form> 
<?php
mysql_connect("localhost","exilion","EzQVCC");
mysql_select_db("exilion_daneU");

function filtruj($zmienna) 
{
    if(get_magic_quotes_gpc())
        $zmienna = stripslashes($zmienna); // usuwamy slashe

	// usuwamy spacje, tagi html oraz niebezpieczne znaki
    return mysql_real_escape_string(htmlspecialchars(trim($zmienna))); 
}

if (isset($_POST['loguj'])) 
{
	$login = filtruj($_POST['login']);
	$haslo1 = filtruj($_POST['haslo1']);
	$haslo2 = filtruj($_POST['haslo2']);
	$email = filtruj($_POST['email']);
	$ip = filtruj($_SERVER['REMOTE_ADDR']);
	
	// sprawdzamy czy login nie jest już w bazie
	if (mysql_num_rows(mysql_query("SELECT login FROM uzytkownicy WHERE login = '".$login."';")) == 0) 
	{
		if ($haslo1 == $haslo2) // sprawdzamy czy hasła takie same
		{
			mysql_query("INSERT INTO `uzytkownicy` (`login`, `haslo`, `email`, `rejestracja`, `logowanie`, `ip`)
				VALUES ('".$login."', '".md5($haslo1)."', '".$email."', '".time()."', '".time()."', '".$ip."');");

			echo "Konto zostało utworzone!";
		}
		else echo "Hasła nie są takie same";
	}
	else echo "Podany login jest już zajęty.";
}
?>
<?php mysql_close(); ?> 

logowanie

<style>
body {
font-size:15px;
font-family:Verdana;
line-height:1.8;
word-spacing:3px;
}
</style>

<?php
session_start();
mysql_connect("localhost","exilion","EzQVCC");
mysql_select_db("exilion_daneU");
?>

<?php
if (isset($_GET['wyloguj'])==1) 
{
	$_SESSION['zalogowany'] = false;
	session_destroy();
}
?>

<?php
function filtruj($zmienna) 
{
    if(get_magic_quotes_gpc())
        $zmienna = stripslashes($zmienna); // usuwamy slashe

	// usuwamy spacje, tagi html oraz niebezpieczne znaki
    return mysql_real_escape_string(htmlspecialchars(trim($zmienna))); 
}

if (isset($_POST['loguj'])) 
{
	$login = filtruj($_POST['login']);
	$haslo = filtruj($_POST['haslo']);
	$ip = filtruj($_SERVER['REMOTE_ADDR']);
	
	// sprawdzamy czy login i hasło są dobre
	if (mysql_num_rows(mysql_query("SELECT login, haslo FROM uzytkownicy WHERE login = '".$login."' AND haslo = '".md5($haslo)."';")) > 0) 
	{	
		// uaktualniamy date logowania oraz ip
		mysql_query("UPDATE `uzytkownicy` SET (`logowanie` = '".time().", `ip` = '".$ip."'') WHERE login = '".$login."';");
	
		$_SESSION['zalogowany'] = true;
		$_SESSION['login'] = $login;
		
		// zalogowany

	}
	else echo "Wpisano złe dane.";
}

if ($_SESSION['zalogowany']==true)
{
	echo "Witaj <b>".$_SESSION['login']."</b><br><br>";
	
	echo '<a href="?wyloguj=1">[Wyloguj]</a>';
}
?>

<?php if ($_SESSION['zalogowany']==false): ?>

<form method="POST" action="logowanie.php">
<b>Login:</b> <input type="text" name="login"><br>
<b>Hasło:</b> <input type="password" name="haslo"><br>
<input type="submit" value="Zaloguj" name="loguj">
</form> 

<?php endif; ?>



<?php mysql_close(); ?>

I kiedy wejdę na swoją stronę i kliknę w "logowanie" to otrzymuje formularz do logowania oraz takie błędy:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/exilion/public_html/logowanie.php:1) in /home/exilion/public_html/logowanie.php on line 11

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/exilion/public_html/logowanie.php:1) in /home/exilion/public_html/logowanie.php on line 11

Strona: exilion.xaa.pl

Proszę o pomoc czego to jest wina.

dodanie znacznika <code> dla treści błędów - Furious Programming

0

Przeczytaj ten błąd na głos - czego nie rozumiesz?
Przed session_start wysyłasz już jakieś dane, co powoduje błąd.

0

A jak mogę ten błąd naprawić?

0

Spraw, aby:

<style>
body {
font-size:15px;
font-family:Verdana;
line-height:1.8;
word-spacing:3px;
}
</style>

Nie było wysyłane przed wykonaniem session_start albo użyj buforowania wyjścia.

0

zacznij plik od

<?php
session_start();
?>

uważaj, żeby przed <?php nie było żadnego białego znaki

dodanie znaczników <code class="php"> i `` - Furious Programming

1 użytkowników online, w tym zalogowanych: 0, gości: 1