Jump to content
Sign in to follow this  
Sim

Init.php go-to statement

Recommended Posts

I am trying to avoid creating a new IF statement and use a one time go-to statement. Which it just ignores. 

 

<?php

    $start = microtime();

    session_start();
   
if(count($_POST) > 0 && empty($_GET['action']))
{
  foreach($_SESSION['lastPage'] as $key => $val)
  {
    $_GET[$key] = $val;
  }
 print(var_dump($_GET));// . "<br><br><br><br>" . var_dump($_SESSION['lastPage']));//. "....") ;//var_dump($_POST));
}
else{
  $_SESSION['lastPage'] = $_GET;//$_SERVER["QUERY_STRING"];
}

    if (file_exists("install/")) {
        header("Location: install/");
        exit;
    }

    require 'class/hooks.php';
    include 'dbconn.php';
    require "class/ItemHelperFunctions.php";
    $helper = new ItemHelperFunctions();
  
    require 'class/settings.php'; 
    require 'class/template.php';
    require 'class/templateRender.php';
    require 'class/page.php';
    require 'class/image.php';
    require 'class/user.php';
    require 'class/gang.php';
    require 'class/property.php';

    $settings = new settings();

    $page->loadModuleMetaData();

    if (!isset($_GET['page'])) {
       $_GET['page'] = $page->landingPage;
       //$_GET['page'] = "news";
    }

    $pageToLoad = $_GET['page'];
    $exclude = array(
    "banned",
    "login",
    "logout",
    "forgotpassword",
    );

    if (!empty($_SESSION['userID']))
    {
      $user = new user($_SESSION['userID']);
      $user->updateTimer('laston', time());
      $user->checkRank();
    
    debug($user->info->US_charID);
      if($user->info->U_userLevel != 3 && !$user->info->US_charID ==0)
      {
        $page->loadPage("createCharacter");
        goto quickCheat;
      }
    }
    debug("test");
    if (!isset($page->modules[$pageToLoad])) {
        if (!empty($_SESSION['userID'])) {
            $user = new user($_SESSION['userID']);
            $user->updateTimer('laston', time());
            $user->checkRank();
        }
        $page->loadPage("pageNotFound");
    } else {

        $jailPageCheck = $page->modules[$pageToLoad];

        if (!empty($_SESSION['userID'])) {
            
            $user = new user($_SESSION['userID']);
            $user->updateTimer('laston', time());
            $user->checkRank();


            if ($_GET["page"] == "logout") {
                $page->loadPage('logout');
            } else if ($user->info->U_status == 0) {
                $deadPage = "dead";
                $hook = new Hook("deadPage");
                $deadPage = $hook->run($deadPage, true);
                $page->loadPage($deadPage);
            } else if ($user->info->U_status == 2 && $jailPageCheck["requireLogin"]) {
                $page->loadPage('users');
            } else if ($user->info->U_userLevel == 3) {
                $bannedPage = "banned";
                $hook = new Hook("bannedPage");
                $bannedPage = $hook->run($bannedPage, true);
                $page->loadPage($bannedPage);
            } else if (!$user->checkTimer('jail')) {
                if ($jailPageCheck["accessInJail"]) {
                    $page->loadPage($pageToLoad);
                } else {
                    $jailPage = "jail";
                    $hook = new Hook("jailPage");
                    $jailPage = $hook->run($jailPage, true);
                    $page->loadPage($jailPage);
                }
            } else {
                $page->loadPage($pageToLoad);
            }
                
        } else if (!$jailPageCheck["requireLogin"]) {
            $page->loadPage($_GET['page']);
        } else {
            
            $page->loadPage("login");
            
        }
    
    }
  quickCheat:
    
    $page->printPage();

    $page->success = true;
    
?>

 

 

My go-to statement is the second if after the includes and the quick cheat: is almost at the bottom of the file. So not much searching is needed.

 

The problem is it ignores the go-to execution and proceeds instead of jumping to quick cheat maybe this is purposely done in php7, but I seen no documentation that girl is no longer supported. @Dave will love this post 

 

The question should have been. The best and easiest way to load my create character page until a character was created. But I overlooked the simplicity of it.

if($user->info->U_userLevel != 3 && $user->info->US_charID ==0)
      {
        $page->loadPage("createCharacter");
        $page->printPage();
        $page->success = true;
        exit();
      }

Edit #2: I still would love to know why the go-to statement did not work

Share this post


Link to post
Share on other sites
Posted (edited)

There should be a hook within init that you can use to alter what module to go to

I’ve made a module for GL like this before and this was the hook.

new hook("moduleLoad", function ($page) {
    	global $user;
    	if ($user) {
    		if (!$user->info->US_setup) {
    			return "createCharacter";
    		}
    	}
    	return $page;
    });

 

Edited by Dayo
  • Thanks 1

Share this post


Link to post
Share on other sites

I forgot that hook existed. I rather use the hook then the code I posted. 🙂

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...