I have searched the forum but couldnt understand the PHP redirect page loop issue.
I have a simple PHP page:
<?php include('core/init.core.php');
$page_request="graph";
if (isset($_SESSION['account']['user_role']) &&
$_SESSION['account']['user_role'] =='coaching_manager' ||
$_SESSION['account']['user_role'] =='OEM'||
$_SESSION['account']['user_role'] =='GM'||
$_SESSION['account']['user_role'] =='director'||
$_SESSION['account']['user_role'] =='proactive_coaching_manager') {
$page_request="graph";
}
else
$page_request='request_form';
if (isset($_GET['page_request'])) {
$page_request=$_GET['page_request'];
}
$user = get_user_on_uin(strval($_SESSION['account']['ein']));
//var_dump(mysqli_num_rows($user));
//die();
if(mysqli_num_rows($user)>0){ //if user exists in the user table in sql
//get user data from user table in sql
$user=$user->fetch_assoc();
//update user details in db
update_user_on_uin($_SESSION['account']['firstname'],
$_SESSION['account']['lastname'],
$_SESSION['account']['email'],
$_SESSION['account']['phone'],
$_SESSION['account']['ein'],
$_SESSION['account']['managerein'],
$_SESSION['account']['ouc'],
$_SESSION['account']['user_role'],
$_SESSION['account']['som'],
$_SESSION['account']['gm']);
switch ($user['user_role']){
case 'engineer':
//check if user have changed their role/ouc if yes then resetup the user
if ($_SESSION['account']['ouc']==$user['ouc']) {
if ($page_request=='request_form') {
header('Location: request-form-engineer.php');
die();
}
elseif ($page_request=='view_requests') {
header('Location: view-requests-engineer.php');
die();
}
elseif ($page_request=='view_accepted_requests') {
header('Location: view-accepted-requests.php');
die();
}
elseif ($page_request=='view_rejected_requests') {
header('Location: view-rejected-requests.php');
die();
}
elseif ($page_request=='view_coach_assigned_requests') {
header('Location: view-coachassigned-requests.php');
die();
}
elseif ($page_request=='view_completed_requests') {
header('Location: view-completed-requests.php');
die();
}
}
else{
update_user_on_uin($_SESSION['account']['firstname'],
$_SESSION['account']['lastname'],
$_SESSION['account']['email'],
$_SESSION['account']['phone'],
$_SESSION['account']['ein'],
$_SESSION['account']['managerein'],
$_SESSION['account']['ouc'],
$_SESSION['account']['user_role'],
$_SESSION['account']['som'],
$_SESSION['account']['gm']);
//header('Location: setup-account.php?message=update');
header('Location: dashboard.php');
die();
}
case 'manager':
if ($_SESSION['account']['ouc']==$user['ouc']) {
if ($page_request=='request_form') {
header('Location: request-form-om.php');
die();
}
elseif ($page_request=='view_requests') {
header('Location: view-requests-om.php');
die();
}
elseif ($page_request=='view_accepted_requests') {
header('Location: view-accepted-requests.php');
die();
}
elseif ($page_request=='view_rejected_requests') {
header('Location: view-rejected-requests.php');
die();
}
elseif ($page_request=='view_coach_assigned_requests') {
header('Location: view-coachassigned-requests.php');
die();
}
elseif ($page_request=='view_completed_requests') {
header('Location: view-completed-requests.php');
die();
}
}
else{
update_user_on_uin($_SESSION['account']['firstname'],
$_SESSION['account']['lastname'],
$_SESSION['account']['email'],
$_SESSION['account']['phone'],
$_SESSION['account']['ein'],
$_SESSION['account']['managerein'],
$_SESSION['account']['ouc'],
$_SESSION['account']['user_role'],
$_SESSION['account']['som'],
$_SESSION['account']['gm']);
//header('Location: setup-account.php?message=update');
header('Location: dashboard.php');
// header('Location: setup-account.php?message=update');
die();
}
case 'coaching_manager':
if ($_SESSION['account']['ouc']==$user['ouc']) {
if ($page_request=='request_form') {
header('Location: request-form-coaching-manager.php');
die();
}
elseif ($page_request=='view_requests') {
header('Location: view-requests-coaching-manager.php');
die();
}
elseif ($page_request=='view_accepted_requests') {
header('Location: view-accepted-requests.php');
die();
}
elseif ($page_request=='view_rejected_requests') {
header('Location: view-rejected-requests.php');
die();
}
elseif ($page_request=='view_coach_assigned_requests') {
header('Location: view-coachassigned-requests.php');
die();
}
elseif ($page_request=='view_completed_requests') {
header('Location: view-completed-requests.php');
die();
}
elseif ($page_request=='graph') {
header('Location: graph.php');
die();
}
}
else{
update_user_on_uin($_SESSION['account']['firstname'],
$_SESSION['account']['lastname'],
$_SESSION['account']['email'],
$_SESSION['account']['phone'],
$_SESSION['account']['ein'],
$_SESSION['account']['managerein'],
$_SESSION['account']['ouc'],
$_SESSION['account']['user_role'],
$_SESSION['account']['som'],
$_SESSION['account']['gm']);
//header('Location: setup-account.php?message=update');
header('Location: dashboard.php');
//header('Location: setup-account.php?message=update');
die();
}
case 'coach':
if ($_SESSION['account']['ouc']==$user['ouc']) {
if ($page_request=='request_form') {
header('Location: request-form-coach.php');
die();
}
elseif ($page_request=='view_requests') {
header('Location: view-requests-coach.php');
die();
}
elseif ($page_request=='view_accepted_requests') {
header('Location: view-accepted-requests.php');
die();
}
elseif ($page_request=='view_rejected_requests') {
header('Location: view-rejected-requests.php');
die();
}
elseif ($page_request=='view_coach_assigned_requests') {
header('Location: view-coachassigned-requests.php');
die();
}
elseif ($page_request=='view_completed_requests') {
header('Location: view-completed-requests.php');
die();
}
}
else{
update_user_on_uin($_SESSION['account']['firstname'],
$_SESSION['account']['lastname'],
$_SESSION['account']['email'],
$_SESSION['account']['phone'],
$_SESSION['account']['ein'],
$_SESSION['account']['managerein'],
$_SESSION['account']['ouc'],
$_SESSION['account']['user_role'],
$_SESSION['account']['som'],
$_SESSION['account']['gm']);
//header('Location: setup-account.php?message=update');
header('Location: dashboard.php');
//header('Location: setup-account.php?message=update');
die();
}
default:
break;
}//end of switch
} //end of if block
else{
//header('Location: setup-account.php?message=new_user');
//var_dump("expression");
// die();
if( insert_user($_SESSION['account']['firstname'],
$_SESSION['account']['lastname'],
$_SESSION['account']['email'],
$_SESSION['account']['phone'],
$_SESSION['account']['ein'],
$_SESSION['account']['managerein'],
$_SESSION['account']['ouc'],
$_SESSION['account']['user_role'],
$_SESSION['account']['som'],
$_SESSION['account']['gm']) )
{
header("Location: dashboard.php");
die();
}
else
{
var_dump('Sorry we do not recognise you. bye!');
die();
}
// header("Location: dashboard.php");
// die(); */
}
//if no, redirect to role selection page
?>
This page name is dashboard.php
init.core.php
page starts the session.
The task is simple. If user found then update user details with $_Session
details. If not then add a new user and redirect to this page to display relevant info. I can see it executes the else part i.e. inserts user but It inserts alot of records in the database before eventually giving up stating ERR_TOO_MANY_REDIRECTS
Where am I going wrong?