Page 1 of 1

PHP redirection

Posted: Wed Nov 15, 2006 12:57 am
by sa177ir
feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


I am trying to do some redirection within my PHP script, but have been unsuccessful.

I have the following snippet of code - depending on which branch is taken, I would like to redirect to a certain page.  I'm checking the variable hostName to make sure that it contains only alphanumerica characters.  If it has characters other than alphanumeric, redirect the script to page X.  If it's clean, redirect to page Y

Code: Select all

$validateString = '^[a-zA-Z0-9._-]+$';
if (!ereg($validateString, $hostName))
{
   //redirect to page X

}
else
{
   //redirect to page Y
}
I have attempted to user headers, but I get the following error:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/apache2-default/coen285/validateLogin.php:8) in /var/www/apache2-default/coen285/validateLogin.php on line 47

Does anyone have any ideas or suggestions to fix the problem? Any help would be appreciated.

Thanks!


feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]

Posted: Wed Nov 15, 2006 1:33 am
by dibyendrah
When you use header function to redirect and if there is some browser output before that redirecion it will displays that kind of errors. Try to fix the errors or don't print the output from the file "validateLogin.php" before header("location:somefile");

Hope that works.

Good luck and regards,
Dibyendra

Posted: Wed Nov 15, 2006 1:42 am
by sa177ir
Dibyendrah...that worked! Oh, man...oh, man, do I owe you! Thank you so much for that. I don't think there would have been any way that I figured it out. Forums are awesome!

Thanks again!

Posted: Wed Nov 15, 2006 3:28 am
by dibyendrah
header_sent() will be useful if you want to know if there are any headers already sent to the browser.

Code: Select all

if (headers_sent()) {
    exit("Headers already sent. Can not redirect to $url_to_redirect");
}else{
    header("location:$url_to_redirect");
}
Hope you will find this useful too.