I'm trying to redirect the user if their input is not in the database
$checkid = $_POST["id"];
$query = "SELECT id, Status FROM profileinfo WHERE id=$checkid";
$res = mysqli_query($link, $query);
$nres = mysqli_num_rows($res);
if ($nres == 0) {
header( "Location: login.php"));
exit();
}
And it doesn't redirect .. it just gives a blank page. There aren't any HTML tags before or after, nor any echo's.
You have one )
too many in header( "Location: login.php"));
Use:
header("Location: login.php");
Plus I believe the space between (
and "
could also have an effect. I've seen it happen before.
Sidenote: Using an absolute URL (http://
) over a relative one is recommended, as Dagon noted
and is also mentioned in the manual on PHP.net
Edit: I must admit, I made a slight mistake about the space between (
and "
however there is some truth to this as I got mixed up with having a space between "
and Location
should that ever happen (to anyone reading this); the header will not redirect. I.e.: header(" Location: login.php");
would be invalid. This has been tested.
There is an extra )
, have you checked the syntax error?
header( "Location: login.php"));
^
I got fed up typing in a comment box, so here's an alternative answer :)
The root problem is the unhelpful blank screen, while you are developing you want to see any errors that come up.
I'd recommend you set the following PHP options:
display_errors On
error_reporting -1
html_errors On
How to add these settings? Depends on your exact system... but if you have an apache server the easiest way is probably to add a file named .htaccess
in the same folder as your PHP files. In that case your file will look like this:
# this is your .htaccess file
php_flag display_errors On
php_value error_reporting -1
php_flag html_errors On
Apache will read this file and pass the runtime settings to PHP. More info here:
http://uk1.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting
and here:
http://www.php.net/manual/en/configuration.changes.php
One extra piece of advice - when you launch your site change display_errors
to Off so you don't give hackers a helping hand.