Более точный отступ ваших файлов может быть полезен в этом случае:
<?php
if(empty($_GET['type'])== "first")
{
header("Location: register.php?type=first&step=1");
exit;
}
if(empty($_GET['id']))
{
if($_GET['type'])
{
exit; //show the content first registration
}
header("Location: register.php?type=first&step=1");
exit;
}
else
{
$product_id=$_GET['id'];
header("Location: register.php?id=".$product_id."&step=1");
exit; //show the content with the product information
}
?>
<html>...</html>
Система не может добраться до html. Если $ _GET ["type"] не пусто, вызывается первый if или вложенный if и скрипт завершается. Если $ _GET ["id"] не пусто, то вложенное if может быть выполнено и скрипт завершится. Если $ _GET ["id"] пусто, выполняется последняя команда и сценарий завершается.
Эта строка очень интересна:
if(empty($_GET['type'])== "first")
Это говорит: «тип пуст? затем пусто ($ _ GET ['type'] равно true. True == "first" также верно, поэтому скрипт завершается. Это то, что вы хотели? Похоже, вы имели в виду
if (! Empty ($ _ GET ['type']) && $ _GET ['type'] == "first")
Чтобы добраться до ваших ситуаций 1 и 2:
Ситуация 1, если она возвращается на эту страницу, переходит в финал еще. Это добавляет & step = 1 к URL. Но это не меняет ситуацию, поэтому вы продолжаете добираться до этого и перенаправлять на тот же URL. Я не думаю, что вы собираетесь перейти к этому, как только вы добавили & step = 1, или вы?
Ситуация 2 переходит во второе условие if, потому что $ _GET ["type"] не пусто, а $ _GET ["id"] равно, а затем выполняет вложенный оператор if для прямого выхода.
Я думаю, вы имели в виду это:
<?php
if (!empty($_GET['step']) && (!empty($_GET['type']) || !empty($_GET['id'])))
{
// This is when the html should be shown, right?
// So no code here
}
/*elseif ($_GET['type'] == "first")
{
header("Location: register.php?type=first&step=1");
exit;
}*/ // Don't need this part?
elseif (!empty($_GET['id']))
{
$product_id=$_GET['id'];
header("Location: register.php?id=".$product_id."&step=1");
exit;
}
else
{
header("Location: register.php?type=first&step=1");
exit;
}
?>
<html>...</html>