URL with trailing slashes leads to different pages - MVC CI - php

I have a routed like the following in my Code Igniter route file.
$route['profile'] = "profile";
The class profile contains the following
$this->load->view('pages/profile.php');
Now I have a link on my profile.php page which looks like the following
<a href = 'logout'>Logout</a>
Now consider a user using it. If he visits the following url
localhost/project/profile
Then now the link on the profile.php page would lead to the following
localhost/project/logout
But if the user uses this url
localhost/project/profile/
That is if there is a trailing slash then the link on the page would lead to
localhost/project/profile/logout
And now my question is what should I do to lead the link in both the cases to
localhost/project/logout
Hope I am clear. Please help me out

I think that you're searching for this, load the url helper on your controller with this code line
$this->load->helper('url');
On your view whenever you want to echo URL's use this code
//this will echo something like this http://(yourdomain).index.php/logout
<a href = '<?=site_url("logout")?>'>Logout</a>
If you want let's say, an url to another controller you'll use something like this
//this will echo something like this http://(yourdomain).index.php/(anothercontroller)/logout
<a href = '<?=site_url("anothercontroller/logout")?>'>Logout</a>
More information about the url helper from codeigniter can be found here:
http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

Related

Laravel how to add a part of url to the current url?

I see that when I have a url like:
mysite.com/category/1 - without the closing slash
creating a link like:
subcat
will lead to a link like :
mysite.com/category/subcat
thus it goes back to the last slash in the url, but what I need is this:
mysite.com/category/1/subcat
is there a way or function in laravel to append a part of url to the current url?
Maybe the URL helper can help you? I assume you use blade
subcat
https://laravel.com/docs/5.6/helpers#method-url

Base_url() issue with the anchor tag in CodeIgniter

I am new to CodeIgniter and having trouble with link formation. In my page, I have a link to another page set to:
<li>Feed Page</li>
Here the feed is one of my controllers, but the link is showing as:
http://localhost/BusinessPad/localhost/BusinessPad/feed,
which doesn't actually exist. I can't understand how this happened; I have made sure: $config['index_page'] = ''; and I added an .htaccess file. If I leave $config['base_url']='', the base URL is still not working for me.
To deal with anchor tag, You can have like this
Feeds
You shall put the base_url inside your anchor tag and then your controller name.
Then you will get the url like localhost/BusinessPad/feed which you expect.
Note : Make sure you have loaded the url helper by $this->load->helper('url'); or loaded in autoload itself
Feed Page
if this not works use this
Feed Page
Explain :
<?php echo base_url();?>//URL
BusinessPad//Controller
feed//Function
in 1. this will give your site URL. http://localhost/BusinessPad/localhost/. if you host this to live server it will come with tour domain name.
then in 2 it will call your controller which Contains your functions.
Note: if you juct call your controller it will call automatically public function index() if you create.
then in 3 it will redirect to your function which you exactly need.

URL base changing after using any controller with parameters

i'm having an problem with the URL of Codeigniter.
When i use one controller with parameter, example: localhost/ci/products/news (where localhost/ci is the url base), after i click in any element <a />, example: <a href="home"/> Codeigniter redirects for localhost/ci/products/home and no for localhost/ci/home.
Anyone know why this happens?
You must use a base_url for links. Right now your anchor has a relative path in the href="home", you should have full path in your links, when u use mod_rewrite for nice urls.
like
Home

CodeIgniter controller to view to another controller url

Say for example, I loaded a view from controller1
The url should be index.php/controller1/<function where view is ran>
Then from that view I have a link.
<a href='controller2/view'>View</a>
After clicking that link, the url now looks like this.
index.php/controller1/controller2/view
Is there a way to clear previous url_segment, or is there a better way to link to another controller's function.
Do.
<?=base_url(); ?>/controller2/view
Inside your href.
You can write the link as
<a href='<?=base_url(); ?>controller2/view'>View</a>
remember that you have set the base_url in your config/config.php file
$config['base_url'] = 'http://yourSite';

how to give an anchor point in Laravel view

I am using blade templating and I want to make the users navigate to a point on a page when they click on a link. This is my view :-
View::make($data->path)->with('data', $data)->with('title', $title);
My path is being fetched from the database.
There is a link:-
<a id="middle">Welcome to the user section</a>
Now I don't think putting #middle in make() will help :-
I tried this:-
View::make($data->path."php#middle")->with('data', $data)->with('title', $title);
and
View::make($data->path.".blade.php#middle")->with('data', $data)->with('title', $title);
but neither seems to work.
How can i make this work?
Your view is just the file to render -- you shouldn't confuse it with the request URL, which is determined by routes.
All you need to do is add the anchor to the URL the user clicks to get to this location, on the end of your route. If it's not something you can determine at the time the link is generated, you should use a redirect in your logic to the URL you wish to include.
That said, you could also pass a variable to your page that javascript uses to scroll the page to the appropriate location as well:
View::make($data->path)->with('data', $data)->with('title', $title)->with('scroll', 'middle');
Then, on your page, in javascript:
document.getElementById('{{ $middle }}').scrollIntoView();
override getRedirectUrl :
protected function getRedirectUrl()
{
$url = $this->redirector->getUrlGenerator();
return $url->previous() . '#hashid';
}

Categories