Redirecting to a new url

Standard PHP Fashion

You might do this in a view or public file, where $package is available

$url = $package->url('/register/'); // pre-pends the url prefix for the package  
header("Location: {$url}", $statusCode=302);/*302 temporary is the default*/   
exit; // Not always necessary, but exiting stops silly errors from preventing the redirect  

Built-in Methods

Any one of these will perform a redirect.

  • $lia->goto($url, $statusCode=302); - Standard redirect to the url
  • $lia->gotoWithMessage($url, "You don't have access to this page", $statusCode=302);
    • Redirect to the url with the given message.
  • $lia->gotoWithContent($url, $statusCode=302);
    • Redirect to the url with the content of the current request.

gotoWithContent(...) example

For url /user/logout/, we're in public/logout.php:

<?php  
$url = $package->url('/'); // returns '/user/'  
$lia->gotoWithContent($url); //Default 302 temporary is good. 301 permanent would cause the browser to do an immediate redirect in the future, instead of running the request to /user/logout/, and that would be bad.  
// remove cookie from user's browser  
// delete cookie entry in the database  
if ($logoutFailed){  
    echo "Something went wrong when logging you out. You may need to clear cookies in your browser if this continues.";  
    return;  
}   
echo "Logged out successfully! Please come back soon :)"  

Which will land us on public/index.php:

<div class="goto-message">  
    <?=$lia->getGotoMessage()?>  
</div>  
<?php  
//some php logic   
if ($userIsLoggedIn) echo $this->view("user/profile",['user'=>$user]);  
else echo $this->view('user/login');