HELP!!

Wanneer ik mijn login.php include in mijn main_index.php, krijg ik foutmelding over mijn sessies!

zie http://www.rhynix.ecwhost.com/Flemish%20Forces/main_index.php

Weet iemand waaraan dat eventueel kan liggen?

heb gewoon
<?php
include("login.php")
?>
op die plaats gezet. Mijn login.php staat in dezelfde map als die van mijn main_index.php
mijn login.php

<?php
include("config.php");
$controle=1;
$verstuurd=0;
if($_SERVER['REQUEST_METHOD']=='POST'){
$verstuurd=1;
if(empty($_POST['nickname'])){
$controle=0;
$wachtwoord = md5($_POST['wachtwoord']);
}
if(empty($_POST['wachtwoord'])){
$controle=0;
$nickname = $_POST['nickname'];
} else {
$nickname = $_POST['nickname'];
$wachtwoord = $_POST['wachtwoord'];
}
if($controle==1){
$wachtwoord_org = $_POST['wachtwoord'];
$wachtwoord = md5($_POST['wachtwoord']);
$bestaande_nickname = mysql_query("SELECT nickname FROM $tabel_naam WHERE nickname='".addslashes($nickname)."'");
if(mysql_num_rows($bestaande_nickname)==0){
$controle=0;
$nick_fout="Onbekende nickname";
}
if($controle==1){
$goede_ww = mysql_query("SELECT nickname FROM $tabel_naam WHERE nickname='$nickname' AND wachtwoord='$wachtwoord'");
if(mysql_num_rows($goede_ww)==0) {
$controle=0;
$ww_fout="Fout wachtwoord";
}
}
if($controle==1){
$resultaat_id = mysql_query("SELECT id FROM $tabel_naam WHERE nickname='".addslashes($nickname)."'");
$id = mysql_result($resultaat_id, 0);
}
}
}
if($verstuurd==0||$controle==0) {
?>
<html>
<head>
<title>Log-in</title>
</head>
<body>
<form name="login" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table>
<?php
if($verstuurd==1){
if(empty($_POST['nickname'])){
echo "<tr><td colspan=\"2\">".$fout_tags_open."Vul een nickname in".$fout_tags_sluit."</td></tr>";
}
if(isset($nick_fout)){
echo "<tr><td colspan=\"2\">".$fout_tags_open.$nick_fout.$fout_tags_sluit."</td></tr>";
}
}
?>
<tr>
<td>Nickname:</td>
<td><input type="text" name="nickname" <?php if($verstuurd==1&&!empty($_POST['nickname'])){echo "value=\"".stripslashes(htmlentities($nickname))."\"";} ?>></td>
</tr>
<?php
if(isset($ww_fout)){
echo "<tr><td colspan=\"2\">".$fout_tags_open.$ww_fout.$fout_tags_sluit."</td></tr>";
}
if($verstuurd==1&&empty($_POST['wachtwoord'])){
echo "<tr><td colspan=\"2\">".$fout_tags_open."Vul een wachtwoord in".$fout_tags_sluit."</td></tr>";
}
?>
<tr>
<td>Wachtwoord:</td>
<td><input type="password" name="wachtwoord" <?php if($verstuurd==1&&!empty($_POST['wachtwoord'])){echo "value=\"".stripslashes(htmlentities($wachtwoord_org))."\"";} ?>></td>
</tr>
<tr>
<td colspan="2"><input type="checkbox" name="onthoud" checked>Onthoud me</td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" value="Log-in">&nbsp;<input type="reset" value="Opnieuw"></center></td>
</tr>
</table>
</form>
<a href="voegtoe.php?locatie=<?php echo $locatie; ?>">Registreer</a> <a href="ww_vergeten.php"><font size="-1">Wachtwoord vergeten</font></a>.
</body>
</html>
<?php
}
if($verstuurd==1&&$controle==1){
$ingelogd=true;
if(isset($_POST['onthoud'])){
$query = "UPDATE $tabel_naam SET ingelogd=1, ip='".$_SERVER['REMOTE_ADDR']."' WHERE id='$id'";
mysql_query($query);
$id2 = $id;
for($i=0; $i<7; $i++){
$id2 = base64_encode($id2);
}
$lengte_c = strlen($id2);
$lengte_h = intval($lengte_c / 2);
$u = '';
for($i=0; $i<$lengte_h; $i++){
$u .= $id2[$i];
}
if($lengte_h==($lengte_c/2)){
$begin_pos = $lengte_c - $lengte_h;
} else {
$begin_pos = $lengte_c - $lengte_h-1;
}
$p = '';
for($i=$begin_pos; $i<$lengte_c; $i++){
$p .= $id2[$i];
}
for($i=0; $i<4; $i++){
$u = base64_encode($u);
$p = base64_encode($p);
}
setcookie("u", $u, time()+518400);
setcookie("p", $p, time()+518400);
}
$_SESSION['ingelogd'] = $ingelogd;
$_SESSION['id'] = $id;
$_SESSION['ip']= $_SERVER['REMOTE_ADDR'];
header("location: $locatie");
}
?>
mijn config.php

<?php
session_start();
//De database server, meestal is dat localhost
$db_server = "localhost";
//Je login naam bij je database
$db_login = "******";
//Je wachtwoord voor je database
$db_pass = "******";
//Naam van de database
$db_naam = "******";
//Naam van de table waar alles in staat
$tabel_naam = "gebruikers";
//locatie van je script. bijv: http://www.mijndomein.nl/beveiligde_directory/
$locatie = "http://www.rhynix.ecwhost.com/Flemish Forces/";
//Hier stel je de naam van de website in. Deze naam wordt ook meegestuurd met mails
$website_naam = "Mijn domein";
//Hier stel je de open tags in die worden laten zien als de gebruiker iets fout doet (bijvoorbeeld verkeerd wachtwoord invullen)
$fout_tags_open = "<font color=\"#FF0000\"><b>";
//Hier stel je de afsluitende tags in, als de gebruiker iets fout heeft gedaan. Let erop, de volgorde moet precies andersom zijn als bij de opening
$fout_tags_sluit = "</b></font>";
//Hier stel je je naam in waarvan je e-mailtjes worden gestuurd (activatie en wachtwoord vergeten mailtjes)
$van_naam = "voorbeeld";
//Hier stel je het e-mail adres in waarvan de mailtjes gestuurd worden (activatie en wachtwoord vergeten mailtjes)
$van_email = "[email protected]";

//HIERONDER NIKS MEER VERANDEREN, ALLEEN ALS JE WEET WAT JE AAN HET DOEN BENT
if(isset($_SESSION['id'])){
$id = $_SESSION['id'];
}
mysql_connect($db_server, $db_login, $db_pass) or die("Er kan geen verbinding gemaakt worden met de database, MySQL retouneerde: ".mysql_error());
mysql_select_db($db_naam) or die("Er kan geen database geselecteerd worden. MySQL retouneerde devolgende error: ".mysql_error());
?>
In main_index.php zijn al headers verstuurd voordat de session wordt gestart. En dat werkt niet.
Wanneer ik login.php los bekijk, bevat het helemaal geen fouten. Maar wanneer ik login.php include in een andere pagina, dan pas geeft hij de meldingen. Iemand een oplossing? Ik zou het echt niet weten...
Rhynix schreef op 06.04.2005 23:33
Iemand een oplossing? Ik zou het echt niet weten...
Ik wel! Lees het bericht boven die van jou!

Elwin
SanThe schreef op 06.04.2005 23:30
In main_index.php zijn al headers verstuurd voordat de session wordt gestart. En dat werkt niet.


Zoals ik al zei. En er mogen voor session ook geen <html><head> enz. voor staan. En ik denk dat jouw main_index.php daar voor zorgt.

Reageren