Via een kennis heb ik een member script overgenomen. Het aanmelden werkt perfect, maar zodra ik wil gaan inloggen geeft de browser de volgende melding:
Warning: Cannot modify header information - headers already sent by (output started at http://*****/test/style.css:1) in /var/www/***/test/login.php on line 105
Ben nou al 3 uur bezig en krijg het niet voor elkaar, heb het script exact overgenomen en heb inmiddels al diverse topics gelezen over dit probleem
Dit zijn de bestanden:
style.css
<style type=text/css>
body, table
{
font-family: MS Sans Serif;
font-size: 10pt;
background: #EEEFEE;
color: #000000;
}
hr {
color: black;
height: 1;
}
a {
color: #000000;
text-decoration: none;
}
a:hover
{
text-decoration: underline;
}
input, textarea, select
{
font-family: MS Sans Serif;
font-size: 10pt;
background: #FFFFFF;
border: 1px solid #C0C0C0;
}
--!>
</style>
login.php
<?
session_start();
include("config.inc.php");
if(IsSet($stijl))
{
include($stijl);
}
$grens = date("YmdHi", mktime(date("H") - $tijd_blokkeren,date("i"), 0, date("m"),
date("d"), date("Y")));
$user_ip=$_SERVER['REMOTE_ADDR'];
$query = mysql_query("
SELECT id
FROM foute_aanmelding
WHERE ip='$user_ip' AND
tijd>$grens
")
or die(mysql_error());
$result = mysql_num_rows($query);
if(!$result)
{
if(IsSet($_POST['submit']))
{
// maak "gevaarlijke" tekens van invoer onschakelijk door een "\" toe te voegen
$gebruikersnaam = addslashes($_POST['gebruikersnaam']);
$wachtwoord = md5(addslashes($_POST['wachtwoord']));
// controleer gebruikersnaam en wachtwoord met gegevens uit de database
$query = mysql_query("
SELECT *
FROM members
WHERE gebruikersnaam='$gebruikersnaam' AND
wachtwoord='$wachtwoord' AND
geactiveerd='1'
")
or die(mysql_error());
$result = mysql_num_rows($query);
if(!$result)
{
// wachten met output om "brute force" tegen te gaan
sleep(2);
if (IsSet($_SESSION['foute_aanmelding']))
{
$_SESSION['foute_aanmelding']++;
if($_SESSION['foute_aanmelding']>=$max_foute_aanmelding)
{
$tijd=date("YmdHi");
// blokkeren van het ip adres
mysql_query ("
INSERT INTO foute_aanmelding
(
ip,
tijd
)
VALUES
(
'$user_ip',
'$tijd'
)
")
or die(mysql_error());
echo $blok_melding;
session_destroy();
}
}
else
{
$_SESSION['foute_aanmelding']=1;
}
// gebruikersnaam of wachtwoord is onjuist, terug naar inlogformulier
$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect.
Of je bent vergeten om je account te activeren...<br>
<br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
echo $a;
}
else
{
while($object = mysql_fetch_object($query))
{
$memberid = $object->memberid;
}
// inloggen: registreren gegevens in sessie en openen beveiligde pagina
$login = 1;
// aanmaken object "$reg_sessie" zodat gegevens onzichtbaar voor webbrowsers worden
$reg_sessie->login=$login;
$reg_sessie->memberid=$memberid;
$reg_sessie->ipadres=$user_ip;
$_SESSION['reg_sessie']=$reg_sessie;
// openen van de beveiligde pagina
header("Location: fotos.php"); //--- dit is de regel van de foutmelding
}
}
else
{
if(!IsSet($_SESSION['reg_sessie']->login))
{
// Het inlogformulier
$formulier = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input class=\"button\" type=\"submit\" value=\"Login\">
<input class=\"button\" type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else
{
// openen van de beveiligde pagina
header("Location: fotos.php");
}
if(!IsSet($_SESSION['reg_sessie']))
{
echo $formulier;
}
}
}
else
{
echo $blok_melding;
}
?>
Ik kan geen harde returns vinden en ook geen spaties aan het einde van de bestanden.
Wie zal mij willen helpen dit (veel voorkomende) probleem te verhelpen.
Alvast bedankt,
Arnold
753 views