Това от хоста ли е?

goshkoy

Registered
index.php
PHP:
<?php
	session_start();
	if(isset($_SESSION['logged']) == true) {
		echo "Боза";
	}else{
		include("login.php");
	}
?>

дава ми тази грешка като го отворя
Код:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/cheetahb/public_html/georgi/admin/index.php:1) in /home/cheetahb/public_html/georgi/admin/index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/cheetahb/public_html/georgi/admin/index.php:1) in /home/cheetahb/public_html/georgi/admin/index.php on line 2
login.php
PHP:
<?php
	$admin = "admin";
	$pass = "1234";
	if(isset($_SESSION['logged']) != true) {
		if(isset($_POST['login'])) {
			if($_POST['admin'] != $admin || $_POST['pass'] != $pass) {
				$error['invalid_login'] = "Грешен потребител и/или парола";
			}
			if(count($error) == 0) {
				$_SESSION['logged'] = true;
				header('Location:index.php');
				exit();
			}
		}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<title>Администраторски вход</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	</head>

	<body>
		<form action="" method="post">
			Потребителско име:<input type="text" name="admin" />
			Парола:<input type="password" name="pass" />
			<input type="submit" name="login" value="Вход" />
			<?php
				if($error['invalid_login']) {
					echo $error['invalid_login'];
				}
			?>
		</form>
	</body>

</html>
<?php
	}else{
		header('Location:index.php');
		exit();
	}
?>
когато натисна вход и ми дава това и потребителското име и паролата ако са верни ми дава това
Код:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/cheetahb/public_html/georgi/admin/index.php:1) in /home/cheetahb/public_html/georgi/admin/index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/cheetahb/public_html/georgi/admin/index.php:1) in /home/cheetahb/public_html/georgi/admin/index.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /home/cheetahb/public_html/georgi/admin/index.php:1) in /home/cheetahb/public_html/georgi/admin/login.php on line 11
 
Пробвай да махнеш session_start() от index.php и провери дали ти се запазват сесиите.

А относно другата грешка, ще се наложи да си буферираш output-а с ob_start(). Сложи го най-отгоре в login.php и кажи какво е станало.
 
Не е от хоста.

Този index.php файл. "session_start();" трябва да е на първият ред на файла веднага след "<?php".

От ред: 1 на файла.
Това <?php session_start(); трябва да е най-горе(в началото) на файла.


PHP:
<?php session_start();
        if(isset($_SESSION['logged']) == true) {
                echo "Боза";
        }else{
                include("login.php");
        }
?>
 
Eddy не става от хоста е мойто момче щот на локалхост си работи перфектно ;]]
 
Не от хоста, това че на localhost ти работи не означава, че кода ти е написан правилно. И аз съм имал такива проблеми.


1. Не трябва да има нищо преди session_start(); , дори празен ред преди него.
2. session_start(); винаги седи най-горе на файла.
3. header(); функцията се праща винаги преди всякъкви "echo" и html, js тагове.

Пример:

1,2,3,4 - Са редовете.


Този код от долу ще ти изкара грешката за headerite
PHP:
1:
2:<?php 
3: session_start();
4: //php kod



Този код от долу - няма да ти изкара грешка.
PHP:
1:<?php session_start();
2: //php kod
3: //php kod
4: //php kod
 
проблема беше в енкодинга смених го от utf-8 на utf-8 без бом и се оправи не беше от това което предположи ти и да ти каза че може да имам 100 празни реда без да пише нищо в тях преди да сложа session_start()
 
goshkoy каза:
проблема беше в енкодинга смених го от utf-8 на utf-8 без бом и се оправи не беше от това което предположи ти и да ти каза че може да имам 100 празни реда без да пише нищо в тях преди да сложа session_start()

Много си зависи. Някъде прави проблем, затова е и практично, когато имаш само PHP код, накрая да не затваряш с ?>, а да го оставиш отворено, за да го чете като PHP, вместо това, ако имаш празен ред отдолу да ти даде грешка.
 

Горе