Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

PHP

How do I get page to redirect to shirts.php and not Google search for "Redirecting Invalid Shirt IDs" tutorial?

I have entered and reviewed the code that appears to be matching the tutorial.

<?php 

include('inc/products.php'); 

  if (isset($_GET["id"])) {

    $product_id = $_GET["id"];
    if (isset($products[$product_id])) {

      $product = $products[$product_id];

    }
  }

  if (!isset($products)) {
    header("Location: shirts.php");
    }

exit();

  $section = "shirts";
  $pageTitle = $product["name"];
  include("inc/header.php");

?>

The page works fine showing the shirts. But when I change the id= to an invalid number or remove the id altogether to check the redirect operation I endup at the google search page instead of back at shirts.php like happens for Randy.

EDIT: I did catch that my original post had the exit; command inside the closing curly brace, but there is no change in result.

2 Answers

David Kaneshiro Jr.
David Kaneshiro Jr.
29,247 Points

I think your third if statement should be checking the $product variable not $products.

if (!isset($product)) {
   header ("Location: shirts.php");
}

I just tried that and the normal page went blank and removing or modifying the id= still goes to google.

Just a thought, I am using XAMPP on Win7 Ult and Firefox31 browser. A test on Chrome 35 came back the same. Could it be a setting in one of these that is causing the google search over a redirect?

I tried it on Chrome35 and the redirect is working but the individual shirt page went blank once I changed the latter isset from $products to $product.

Is there a subject I can check on Caniuse.com to see if there are php issues with redirect or something?

I put exit; back inside the closing curly bracket and the page is now working normally, including redirect in the Chrome browser.

However, the Firefox is still redirecting to a Google search for an unrecognized address, although the shirt page is back up.