Проблем с header()

pzlatarov

Registered
Това ми е кода:
Код:
<?php
$mysql_user = '';
$mysql_password = '';
$mysql_db = '';
$mysql_host = '';
$startconnection = mysql_connect($mysql_host,$mysql_user,$mysql_password);
	if(!$startconnection)
	{
		header("Location: error.php?msg=Не може да се осъществи връзка с базата данни!");
	}

Обаче, когато има грешка в свързването с БД, освен обичайните съобщения излиза и това
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\polls\common.php:6) in D:\xampp\htdocs\polls\common.php on line 9

И не мога да разбера защо като сложа хедъра след mysql_connect става така. Някакви идеи?
 
Сложи ob_start(); най-отгоре
<?php
ob_start();
$mysql_user = '';
$mysql_password = '';
$mysql_db = '';
$mysql_host = '';
$startconnection = mysql_connect($mysql_host,$mysql_user,$mysql_password);
if(!$startconnection)
{
header("Location: error.php?msg=Не може да се осъществи връзка с базата данни!");
}
 
Всъщност не знам защо точно :)
Ще се въздържа от коментар , за да не прозвуча смешен , но без него ще получаваш еднотипни грешки от сорта на
Warning: Cannot modify header information - headers already sent by (output started at нейде) in error location
 
буфер на изхода :)
в смисъл вместо скрипта да се праща на браузъра по ред на изпълнението той се "запазва" локално докато не се изпълни
съответно ако има хедъри в него ще ги събере и ще ги праща в началото
ob_start не се ползва по принцип за такива случай а е доста полезна функция ;)
проблема е че изкарваш някакъв текст преди header което в твоя слочай е грешката от mysql_connect
 

Горе