Hallo mensen,

Ik heb laatst een ip banner gedownload van de scripts hier. Nou wil ik dat als die persoon banned is, hij geredirect wordt naar banned.php ofzo. Zie hier het script:

<?php
#######################################
# #
# --- main page --- #
# #
# made by nano and ronald #
# created 16 August, 2004 #
#######################################

session_start();

require ("config/connect.php");
require ("includes/functions.php");

$ip = $_SERVER['REMOTE_ADDR'];
$date = time();


if (!isset($_SESSION['db_updated'])) {
if (check_ip($ip)) {
if (!update($ip, $date))
echo "er ging ergens iets niet goed (updaten)";
}
else {
if (!new_entry($ip, $date))
echo "er ging ergens iets niet goed (new entry)";
}
}

if (check_block($ip)) {
HIER DE REDIRECT
exit();
}
else {
echo "";
}
?>

Als ik header location of refresh gebruikt zegt ie headers already send... Ik heb javascript geprobeert op die plaats, zonder resultaat...

How 2 do?
Het bekende headers already sent probleem...
Hoezo werkt javascript niet?

echo "<script type='text/javascript'>window.location.href="banned.php";</script>";

Dat op de plek van 'HIER DE REDIRECT' zou toch moeten werken, of je hebt javascript natuurlijk uitstaan.

Edit: session_start(); moet overigens helemaal bovenaan je script staan! Nadat je PHP hebt geopend, moet daar direct session_start(); staan.
O wacht, nu werkt ie weer :) Bedankt@
Mensen zonder javascript kunnen de site nu gewoon nog bekijken hoor.
Gebruik dus ook even een HTML element: <meta http-equiv="refresh" content="0;URL=banned.php">
Meta refresh kan je ook uitzetten, met mijn toolbar.
Header("Location: ..."); kan je niet uitzetten.
@Han: lees topic in z'n geheel door.
TS
Als ik header location of refresh gebruikt zegt ie headers already send... Ik heb javascript geprobeert op die plaats, zonder resultaat...
Dat was mij onbekend.

Opzich lijkt het mij logisch om een IP-banscript (heeft alleen databaseaccess nodig, that's it) helemaal bovenaan de pagina uit te voeren, en niet ergens middenin als de pagina al half geladen is. Dat zou meteen de 'headers already sent' oplossen.
Je kunt ook voor zo'n script i.p.v. het doorsturen een pagina includen, en daarna exit(); uitvoeren. Zo valt er helemaal geen ontkomen aan : ).

Reageren