Moved the navigation to a function to avoid the 'headers already sent' problem

This commit is contained in:
Chris 2019-01-31 10:17:40 +01:00
parent 5bbd61d112
commit 6255a05061

View File

@ -1,4 +1,8 @@
<?PHP
// This function just prints a simple navigation
function navi () {
?>
Navigation: Navigation:
<ul> <ul>
<li><a href="/">home</a></li> <li><a href="/">home</a></li>
@ -11,34 +15,45 @@ Navigation:
<li><a href="/this-route-is-not-defined">404 Test</a></li> <li><a href="/this-route-is-not-defined">404 Test</a></li>
<li><a href="/this-route-is-defined">405 Test</a></li> <li><a href="/this-route-is-defined">405 Test</a></li>
</ul> </ul>
<?PHP <?PHP
}
// Include router class // Include router class
include('Route.php'); include('Route.php');
// Add navigation route (startpage)
Route::add('/',function(){
navi();
echo 'Welcome :-)';
});
// Add base route (startpage) // Add base route (startpage)
Route::add('/',function(){ Route::add('/',function(){
navi();
echo 'Welcome :-)'; echo 'Welcome :-)';
}); });
// Another base route example // Another base route example
Route::add('/index.php',function(){ Route::add('/index.php',function(){
navi();
echo 'You are not realy on index.php ;-)'; echo 'You are not realy on index.php ;-)';
}); });
// Simple test route that simulates static html file // Simple test route that simulates static html file
Route::add('/test.html',function(){ Route::add('/test.html',function(){
navi();
echo 'Hello from test.html'; echo 'Hello from test.html';
}); });
// Post route example // Post route example
Route::add('/contact-form',function(){ Route::add('/contact-form',function(){
navi();
echo '<form method="post"><input type="text" name="test" /><input type="submit" value="send" /></form>'; echo '<form method="post"><input type="text" name="test" /><input type="submit" value="send" /></form>';
},'get'); },'get');
// Post route example // Post route example
Route::add('/contact-form',function(){ Route::add('/contact-form',function(){
navi();
echo 'Hey! The form has been sent:<br/>'; echo 'Hey! The form has been sent:<br/>';
print_r($_POST); print_r($_POST);
},'post'); },'post');
@ -48,38 +63,45 @@ Route::add('/contact-form',function(){
// Also users could inject mysql-code or other untrusted data if you use (.*) // Also users could inject mysql-code or other untrusted data if you use (.*)
// You should better use a saver expression like /user/([0-9]*)/edit or /user/([A-Za-z]*)/edit // You should better use a saver expression like /user/([0-9]*)/edit or /user/([A-Za-z]*)/edit
Route::add('/user/(.*)/edit',function($id){ Route::add('/user/(.*)/edit',function($id){
navi();
echo 'Edit user with id '.$id.'<br/>'; echo 'Edit user with id '.$id.'<br/>';
}); });
// Accept only numbers as parameter. Other characters will result in a 404 error // Accept only numbers as parameter. Other characters will result in a 404 error
Route::add('/foo/([0-9]*)/bar',function($var1){ Route::add('/foo/([0-9]*)/bar',function($var1){
navi();
echo $var1.' is a great number!'; echo $var1.' is a great number!';
}); });
// Crazy route with parameters // Crazy route with parameters
Route::add('/(.*)/(.*)/(.*)/(.*)',function($var1,$var2,$var3,$var4){ Route::add('/(.*)/(.*)/(.*)/(.*)',function($var1,$var2,$var3,$var4){
navi();
echo 'This is the first match: '.$var1.' / '.$var2.' / '.$var3.' / '.$var4.'<br/>'; echo 'This is the first match: '.$var1.' / '.$var2.' / '.$var3.' / '.$var4.'<br/>';
}); });
// Long route example // Long route example
// This route gets never triggered because the route before matches too // This route gets never triggered because the route before matches too
Route::add('/foo/bar/foo/bar',function(){ Route::add('/foo/bar/foo/bar',function(){
navi();
echo 'This is the second match <br/>'; echo 'This is the second match <br/>';
}); });
// 405 test // 405 test
Route::add('/this-route-is-defined',function(){ Route::add('/this-route-is-defined',function(){
navi();
echo 'You need to patch this route to see this content'; echo 'You need to patch this route to see this content';
},'patch'); },'patch');
// Add a 404 not found route // Add a 404 not found route
Route::pathNotFound(function($path){ Route::pathNotFound(function($path){
navi();
echo 'Error 404 :-(<br/>'; echo 'Error 404 :-(<br/>';
echo 'The requested path "'.$path.'" was not found!'; echo 'The requested path "'.$path.'" was not found!';
}); });
// Add a 405 method not allowed route // Add a 405 method not allowed route
Route::methodNotAllowed(function($path, $method){ Route::methodNotAllowed(function($path, $method){
navi();
echo 'Error 405 :-(<br/>'; echo 'Error 405 :-(<br/>';
echo 'The requested path "'.$path.'" exists. But the request method "'.$method.'" is not allowed on this path!'; echo 'The requested path "'.$path.'" exists. But the request method "'.$method.'" is not allowed on this path!';
}); });