vaag header probleem
Alleen nou krijg ik ineens de fout melding "Warning: Cannot modify header information - headers already sent by blabla".
Normaal haal ik de fout erzo uit alleen nou ben ik een tijdje bezig geweest om te kijken waar het probleem zit en nou kwam ik erachter dat het komt door het aantal gebruikte leestekens op de website (ja heel erg raar, tenminste denk ik), want als ik ergens (waar dan ook) teksten of tags weg haal dan werkt het wel.
En ik heb dit uitgetest tot het moment dat als ik 1 leesteken bijvoeg (waar dan ook) die error krijg...
Misschien een duister verhaal maar ik wou wel eens weten waar dit dan ooit aan kan liggen??
een probleem omschrijving en stuk van je code zou vast veel helpen
Meestal komt bovenstaande error juist als je al code hebt geplaatst voor de regel waar je de headers verstuurd.
Zet alles wat je wilt outputten in een variabele en echo deze onderaan!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
//inlog gegevens controleren en sessie maken
$action = '';
if($_POST['sessie_cms'])
{
$action = $_POST['sessie_cms'];
if($action == 'login')
{
$user_cms = $_POST['user_cms'];
$pass_cms = md5($_POST['pass_cms']);
$loginquery = mysql_query("SELECT id_cms, user_cms, pass_cms FROM table WHERE user_cms = '" . $user_cms . "' AND pass_cms = '" . $pass_cms . "'");
$results = mysql_num_rows($loginquery);
if ($results == 1)
{
while($loginFetch = mysql_fetch_array($loginquery))
{
$_SESSION['sLogin_cms'] = 1;
$_SESSION['sUser_cms'] = $loginFetch['user_cms'];
$_SESSION['sId_cms'] = $loginFetch['id_cms'];
}
$id_cms = $_SESSION['sId_cms'];
if(headers_sent($file, $line))
{
// ... where were the mysterious headers sent from?
echo "Headers were already sent in $file on line $line...";
}
header('Location: '.$_SERVER['PHP_SELF'].'?db_page='.$_GET['refpage'].'&id_cms='.$id_cms.'');
exit;
}elseif(!$results)
{
if(headers_sent($file, $line))
{
// ... where were the mysterious headers sent from?
echo "Headers were already sent in $file on line $line...";
}
header('Location: '.$_SERVER['PHP_SELF'].'?page=admin/CMS/login.cms&refpage=' . $_GET['refpage'] . '&user_cms='.$user_cms.'&validate_cms=false');
exit;
}
}else
{
header('Location: '.$site_url.'');
exit;
}
}else
{
header('Location: '.$site_url.'');
exit;
}
?>
//inlog gegevens controleren en sessie maken
$action = '';
if($_POST['sessie_cms'])
{
$action = $_POST['sessie_cms'];
if($action == 'login')
{
$user_cms = $_POST['user_cms'];
$pass_cms = md5($_POST['pass_cms']);
$loginquery = mysql_query("SELECT id_cms, user_cms, pass_cms FROM table WHERE user_cms = '" . $user_cms . "' AND pass_cms = '" . $pass_cms . "'");
$results = mysql_num_rows($loginquery);
if ($results == 1)
{
while($loginFetch = mysql_fetch_array($loginquery))
{
$_SESSION['sLogin_cms'] = 1;
$_SESSION['sUser_cms'] = $loginFetch['user_cms'];
$_SESSION['sId_cms'] = $loginFetch['id_cms'];
}
$id_cms = $_SESSION['sId_cms'];
if(headers_sent($file, $line))
{
// ... where were the mysterious headers sent from?
echo "Headers were already sent in $file on line $line...";
}
header('Location: '.$_SERVER['PHP_SELF'].'?db_page='.$_GET['refpage'].'&id_cms='.$id_cms.'');
exit;
}elseif(!$results)
{
if(headers_sent($file, $line))
{
// ... where were the mysterious headers sent from?
echo "Headers were already sent in $file on line $line...";
}
header('Location: '.$_SERVER['PHP_SELF'].'?page=admin/CMS/login.cms&refpage=' . $_GET['refpage'] . '&user_cms='.$user_cms.'&validate_cms=false');
exit;
}
}else
{
header('Location: '.$site_url.'');
exit;
}
}else
{
header('Location: '.$site_url.'');
exit;
}
?>
En het probleem is dus dat het nou in precies dezelfde structuur als mijn andere websites niet meer werkt, en wel weer werkt al ik ergens (waar dan ook) teksten of tags welhaal. Dus net als wat ik zei het is net of als je boven een aantal leestekens komt het niet meer werkt.
Oja, de pagina wordt geincluded in een index met config en head
------ index.php ------
Code (php)
----- config.php -----
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// error handling
ini_set('display_errors','1');
ini_set('display_startup_errors','1');
error_reporting(E_ALL);
//db configuration
$host = 'localhost';
$user = 'user';
$pass = '*****';
$db = 'db';
mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_select_db($db);
?>
// error handling
ini_set('display_errors','1');
ini_set('display_startup_errors','1');
error_reporting(E_ALL);
//db configuration
$host = 'localhost';
$user = 'user';
$pass = '*****';
$db = 'db';
mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_select_db($db);
?>
----- head.php ------
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>title</title>
stylesheet en js
</head>
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>title</title>
stylesheet en js
</head>
?>
<body>
Gewijzigd op 01/01/1970 01:00:00 door JSP
Ik tast hier verder ook in het duister over.
Kan het niet te maken hebben met een verschillende PHP versie of iets dergelijks?
Gerben van Erkelens schreef op 05.03.2009 14:25:
Kan het niet te maken hebben met een verschillende PHP versie of iets dergelijks?
Heb is wel hetzelfde hosting bedrijf waar de andere websites ook op staan... ik kan wellicht de versie ff opvragen...
EDIT:
de versie is 5.2.9 op alle websites, ze staan wel op verschillende servers maar ik ga ervan uit dat ze de instellingen wel gelijk hebben staan voor alle servers.
Gewijzigd op 01/01/1970 01:00:00 door JSP