Header already sent
Ik blijf een probleem hebben met mijn php code die een warning blijft geven.
Ik heb alles al opgezocht, witruimte weggelaten, <head></head> in de config bestanden weggelaten en nog steeds deze warning waardoor het niet werkt.
Offline werkt alles perfect wat ik dus niet begrijp als deze online staat dat hij het niet doet?
Hierbij de 2 errors:
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/deb2dsf3/domains/dd.be/public_html/ddfsn/config.php:4) in /usr/home/dedfs13/domains/dd.be/public_html/dfdsn/processlogin.php on line 21
config.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">
<body>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$lolocation = 'index.php' ;
$error = '<p>Foutmelding: u moet <a href="'.$lolocation.'">aangemeldt</a> zijn om deze pagina te kunnen bekijken.</p>';
$error2 = '<p>U heeft niet alle velden ingevuld, registreer opnieuw <a href="'.$lolocation.'">hier</a>.</p>';
$error3 = '<p>De gebruikersnaam bestaat al, registreer opnieuw <a href="'.$lolocation.'">hier</a>.</p>';
$error4 = '<p>De wachtwoorden/mails zijn niet gelijk, registreer opnieuw <a href="'.$lolocation.'">hier</a>.</p>';
$error5 = '<p>Het is geen geldig e-mailadres, registreer opnieuw <a href="'.$lolocation.'">hier</a>.</p>';
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="root"; // Mysql password
$db_name="project"; // Database name
$tbl_name="members"; // Table name
$friends="friends"; // Friend table
$pm ="pm"; //pm table
$post ="posts";
$replies = "replies";
//database connecteren en selecteren
mysql_connect("$host", "$username", "$password")or die("Kan geen verbinding maken.");
mysql_select_db("$db_name")or die("Kan de database niet selecteren.");
?>
$lolocation = 'index.php' ;
$error = '<p>Foutmelding: u moet <a href="'.$lolocation.'">aangemeldt</a> zijn om deze pagina te kunnen bekijken.</p>';
$error2 = '<p>U heeft niet alle velden ingevuld, registreer opnieuw <a href="'.$lolocation.'">hier</a>.</p>';
$error3 = '<p>De gebruikersnaam bestaat al, registreer opnieuw <a href="'.$lolocation.'">hier</a>.</p>';
$error4 = '<p>De wachtwoorden/mails zijn niet gelijk, registreer opnieuw <a href="'.$lolocation.'">hier</a>.</p>';
$error5 = '<p>Het is geen geldig e-mailadres, registreer opnieuw <a href="'.$lolocation.'">hier</a>.</p>';
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="root"; // Mysql password
$db_name="project"; // Database name
$tbl_name="members"; // Table name
$friends="friends"; // Friend table
$pm ="pm"; //pm table
$post ="posts";
$replies = "replies";
//database connecteren en selecteren
mysql_connect("$host", "$username", "$password")or die("Kan geen verbinding maken.");
mysql_select_db("$db_name")or die("Kan de database niet selecteren.");
?>
</body>
</html>
processlogin.php
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
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
<?php
session_start();
include('config.php');
//logout
unset($_GET['logout']);
//haal de username en password uit de database en tel de rijen
$wachtwoord = $_POST['password'];
$wachtwoord = mysql_real_escape_string($wachtwoord);
$wachtwoord = md5($wachtwoord);
$sql="SELECT * FROM $tbl_name WHERE username='".mysql_real_escape_string($_POST['username'])."' and password='".$wachtwoord." '";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
//als er 1 rij is dan maken we een sessie aan
if($count == 1){
$_SESSION['loggedin'] = $_POST['username'];
header('Location: profiel.php?user=' . $_SESSION['loggedin']);
}
else
{
echo $error;
}
?>
session_start();
include('config.php');
//logout
unset($_GET['logout']);
//haal de username en password uit de database en tel de rijen
$wachtwoord = $_POST['password'];
$wachtwoord = mysql_real_escape_string($wachtwoord);
$wachtwoord = md5($wachtwoord);
$sql="SELECT * FROM $tbl_name WHERE username='".mysql_real_escape_string($_POST['username'])."' and password='".$wachtwoord." '";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
//als er 1 rij is dan maken we een sessie aan
if($count == 1){
$_SESSION['loggedin'] = $_POST['username'];
header('Location: profiel.php?user=' . $_SESSION['loggedin']);
}
else
{
echo $error;
}
?>
en bij het uitloggen geeft hij deze
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/ddfs13/domains/dd.be/public_html/don/config.php:4) in /usr/home/debfsd3/domains/dd.be/public_html/ddfsn/check.php on line 14
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/desdf/domains/dd.be/public_html/dfsn/config.php:4) in /usr/home/debdsf3/domains/dd.be/public_html/sdfsd/check.php on line 27
waarbij check.php
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
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
<?php
//start sessie
session_start();
//gebruik de config file
include('config.php');
$sql = "SELECT username FROM $tbl_name WHERE username='".mysql_real_escape_string($_GET["user"])."'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if($count == 0 && isset($_SESSION["loggedin"]))
header('Location: profiel.php?user=' . $_SESSION['loggedin']);
//Als het inloggen mislukt toon de foutboodschap
if(!isset($_SESSION['loggedin'] ))
{
echo $error;
exit;
}
//Verwijder de sessie wanneer wordt uitgelogt
if(isset($_GET['logout'])){
session_unset();
session_destroy();
header('Location: '.$lolocation);
}
?>
//start sessie
session_start();
//gebruik de config file
include('config.php');
$sql = "SELECT username FROM $tbl_name WHERE username='".mysql_real_escape_string($_GET["user"])."'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if($count == 0 && isset($_SESSION["loggedin"]))
header('Location: profiel.php?user=' . $_SESSION['loggedin']);
//Als het inloggen mislukt toon de foutboodschap
if(!isset($_SESSION['loggedin'] ))
{
echo $error;
exit;
}
//Verwijder de sessie wanneer wordt uitgelogt
if(isset($_GET['logout'])){
session_unset();
session_destroy();
header('Location: '.$lolocation);
}
?>
Ik snap het probleem niet, kan ik geen header gebruiken in de if testen en dat probleem met processlogin snap ik helemaal niet.
Mvg,
Ja mag geen echo voor een header plaatsen, om de error weg te krijgen kun je ob_start(); doen, maar dat is niet echt de nette manier.
Altijd eerst even google raadplegen.
Joris van Rijn op 04/06/2011 14:55:46:
Altijd eerst even google raadplegen.
Ik heb google al geraadpleegd. Daarom dat ik nu pas een post doe. Dat van OB heb ik ook gelezen en dat lost het probleem eigelijk niet op. Het geeft de warning niet meer maar het lost niets op. Ik zou graag willen weten waarom het nu plotseling online niet gaat en offline wel.
Waarom heeft je config.php uberhaubt html tag en body e.d. lijkt me niet nodig voor een config.php en bovendien is dat ook het probleem wat die errors veroorzaakt.