我有登录表单,其中包含网址 - " http://localhost/ci/signin"。点击提交后,会转到 - " http://localhost/ci/login/userLogin",这会影响超链接打开问题,因为它会在' login'中搜索该页面,实际上是&# 34; http://localhost/ci/home&#34 ;.
如何解决这个问题?
我的登录表单页码是:
<?php echo form_open('login/userLogin'); ?
<div class="top-margin">
<label>Email <span class="text-danger">*</span></label>
<?= form_input(['name'=>'email','class'=>'form-control']); ?>
</div>
<div class="top-margin">
<label>Password <span class="text-danger">*</span></label>
<?= form_password(['name'=>'password','class'=>'form-control']); ?>
</div>
<hr>
<div class="row">
<div class="col-lg-8">
<b><a href="">Forgot password?</a></b>
</div>
<div class="col-lg-4 text-right">
<?= form_submit(['name'=>'submit','value'=>'Sign in','class'=>'btn btn-action']); ?>
</div>
</div>
</form>
我的&#34;登录&#34;控制器代码是:
class Login extends MY_Controller
{
public function userLogin()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('email','Email','trim|required|valid_email');
$this->form_validation->set_rules('password','Password','required');
$this->form_validation->set_error_delimiters("<p class='text-danger'>","</p>");
if($this->form_validation->run() == FALSE)
{
$data['title'] = ucfirst('signin'); // Capitalize the first letter
$this->load->view('user/header', $data);
$this->load->view('user/nav', $data);
$this->load->view('user/signin', $data);
$this->load->view('user/footer', $data);
}
else
{
echo "Success";
}
}
}
?>
路线:
$route['(:any)'] = 'user/view/$1';
$route['default_controller'] = 'user/view';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
答案 0 :(得分:0)
如果我正确理解您的问题和您的代码(从未使用过codeigniter),您可以从登录目录中加载表单。
<?php echo form_open('login/userLogin'); ?
尝试时会发生什么:
<?php echo form_open('home/userLogin'); ?
希望这有帮助! :)
答案 1 :(得分:0)
我自己并没有使用CodeIgnite,但它可能有正确输出URL的辅助函数。
在Laravel中它是:
url('this/url/is/not/added/to/the/current/url');
即使您在本地主机:8000 /某页&#39;这个输出:
"localhost:8000/this/url/is/not/added/to/the/current/url"
它是一个PHP(帮助器)函数,因此用PHP输出。
答案 2 :(得分:-1)
是。我找到了解决问题的方法。实际上这是我的错。 Hyperlinks
无效,因为我没有为full address
撰写hyperlinks
。
以前,我的超链接是 -
<a href="home">Home</a>
现在,我把它改为......
<a href="<?= base_url();?>home">Home</a>
现在,它有效。享受。