Richie378
Richie378

Reputation: 115

PHP redirection page based on GET variables

I am new to PHP, so please bear with me in this elementary level question.

I want to create a script that redirects the user to various addresses based on the GET variable. for example, redirection.php?id=youtube should redirect them to www.youtube.com, redirection.php?id=twitter should redirect them to www.twitter.com, and so on.

Here is my code:

<!DOCTYPE html>
<html>
<head>
<title>Please Wait...</title>
</head>
<body>

<?php
// directs the user to various locations on the internet
print_r($_GET);

if($_GET['id'] === 'youtube') {
    header('Location: http://www.youtube.com/') ;
    die()
}
if($_GET['id'] === 'twitter') {
    header('Location: http://www.twitter.com/') ;
    die()
}
if($_GET['id'] === 'reddit') {
    header('Location: http://www.reddit.com/') ;
    die()
}
?>

</body>
</html>

So far the PHP file does not respond at all, what do I change to fix this?

Again, sorry for the elementary level question, but this is literally my first PHP script and I am not very familiar with some of the terminology which makes Google searching for the correct code difficult.

Upvotes: 1

Views: 291

Answers (2)

Rinku
Rinku

Reputation: 83

You can try below code:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Please Wait...</title>
    </head>
    <body>

    <?php
    // directs the user to various locations on the internet
    extract($_REQUEST);

    if(isset($id) && $id == 'youtube') {
        header('Location: http://www.youtube.com/') ;
        die();
    }
    if(isset($id) && $id === 'twitter') {
        header('Location: http://www.twitter.com/') ;
        die();
    }
    if(isset($id) && $id === 'reddit') {
        header('Location: http://www.reddit.com/') ;
        die();
    }
    ?>

    </body>
    </html>

Upvotes: 0

Saty
Saty

Reputation: 22532

When comparing values in PHP for equality you can use either the == operator or the === operator. What’s the difference between the 2? Well, it’s quite simple. The == operator just checks to see if the left and right values are equal. But, the === operator (note the extra “=”) actually checks to see if the left and right values are equal, and also checks to see if they are of the same variable type (like whether they are both booleans, ints, etc.).

And

die(); you forget semicolon in die()

you code should be

if($_GET['id'] == 'youtube') {
    header('Location: http://www.youtube.com/') ;
    die();
}
if($_GET['id'] == 'twitter') {
    header('Location: http://www.twitter.com/') ;
    die();
}
if($_GET['id'] == 'reddit') {
    header('Location: http://www.reddit.com/') ;
    die();
}

Upvotes: 1

Related Questions