URI CodeIgniter и действие формы

скажем, мы на

somesite.com/mail 

это означает, что мы используем контроллер с именем «mail». Этот контроллер имеет функцию:

 public function index(){ $this->load->view('header'); $this->load->view('mail/contact_form'); $this->load->view('footer'); } 

Эта функция загружается, когда мы вводим только адресную строку

 somesite.com/mail 

и нажмите enter (никаких дополнительных аргументов). И давайте посмотрим первую строку вида contact_form:

 <form role="form" method="post" action="sendmail"> 

И это моя проблема. Когда я набираю адрес с обратной косой чертой в конце, вот так:

 mysite.com/mail/ 

и используйте мою формулу контакта, все работает хорошо, и мой контроллер Mail загружает функцию sendmail, и теперь URL:

 mysite.com/mail/sendmail/ 

Но когда я забываю про обратную косую черту (mysite.com/mail), он ищет контроллер с именем «sendmail», но я не хочу этого. Мой url тогда:

 mysite.com/sendmail 

но, конечно, у меня нет контроллеров с именем sendmail. Мой вопрос: как изменить действие моей формулы или что мне делать, чтобы это работало хорошо? Единственный ответ, который нужно помнить о обратной косой чертой или что?

Solutions Collecting From Web of "URI CodeIgniter и действие формы"

В качестве простого примера, чтобы дать вам это использовать CI site_url()

site_url("controller/function") и он позаботится о других URL-адресах

 <form role="form" method="post" action="<?php echo site_url('mail/sendmail');?>"> 

Пройдите через url_helper

используйте base_url('mail/sendmail')

следующим образом

<form role="form" method="post" action="<?=base_url('mail/sendmail')?>">

 <?php include(conexao.php) if($_post) { $usuario = $_POST['usuario']; $senha = md5 ($post['senha']; $sql = 'select * from usuarios where usuario = ' .$usuario. " and senha = " .$senha."'"; $query = mysql_query($sql); $num_rows = mysql_num_rows($query); if ($num_rows >=1_ { session_start(); $_session['logado'] = true; $_session['usuario'] = $usuario; header('Location: logado.php'); else $erro= 1 } } ?> <html> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale = 1.0"> </head> <body> <section> <div class="col-md-8 defaultbox-container"> <h1>Acesso</h1> <?php if($erro){ ?> <div class="alert alert-danger alert-dismissable"> <strong>Erro!</strong> Usuario ou senha incorretos. </div> <?php } ?> <form role="form" method="post" action=""> <div class="form-group"> <label for="">Usuario:</label> <input type="text" class="form-control" name="usuario" placeholder="Usuario"> </div> <div class="form-group"> <label for="">Senha:</label> <input type="password" class="form-control" name="senha" placeholder="Senha"> </div> <button type="submit" >Acessar</button> </form> </div> </section> </body> </html> в <?php include(conexao.php) if($_post) { $usuario = $_POST['usuario']; $senha = md5 ($post['senha']; $sql = 'select * from usuarios where usuario = ' .$usuario. " and senha = " .$senha."'"; $query = mysql_query($sql); $num_rows = mysql_num_rows($query); if ($num_rows >=1_ { session_start(); $_session['logado'] = true; $_session['usuario'] = $usuario; header('Location: logado.php'); else $erro= 1 } } ?> <html> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale = 1.0"> </head> <body> <section> <div class="col-md-8 defaultbox-container"> <h1>Acesso</h1> <?php if($erro){ ?> <div class="alert alert-danger alert-dismissable"> <strong>Erro!</strong> Usuario ou senha incorretos. </div> <?php } ?> <form role="form" method="post" action=""> <div class="form-group"> <label for="">Usuario:</label> <input type="text" class="form-control" name="usuario" placeholder="Usuario"> </div> <div class="form-group"> <label for="">Senha:</label> <input type="password" class="form-control" name="senha" placeholder="Senha"> </div> <button type="submit" >Acessar</button> </form> </div> </section> </body> </html> 
 <?php include('conexao.php'); session_start(); //VERIFICA SE O USUARIO ESTA LOGADO if($_SESSION['logado'] == 0){ header('Location: login.php'); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Login</title> </head> <body> <section class="container"> <div class="col-md-8 defaultbox-container"> <h1>BEM VINDO <?php echo $_SESSION['usuario'];?> <small>Painel de controle</small> <a href="logout.php" class="btn btn-danger pull-right">Logout</a></h1> <div> </div> </div> </section> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> </body> </html> в <?php include('conexao.php'); session_start(); //VERIFICA SE O USUARIO ESTA LOGADO if($_SESSION['logado'] == 0){ header('Location: login.php'); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Login</title> </head> <body> <section class="container"> <div class="col-md-8 defaultbox-container"> <h1>BEM VINDO <?php echo $_SESSION['usuario'];?> <small>Painel de controle</small> <a href="logout.php" class="btn btn-danger pull-right">Logout</a></h1> <div> </div> </div> </section> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> </body> </html> 

Не забудьте изменить, чтобы сделать в нижнем регистре, или он не позволит вам отправлять специальные символы, такие как –

 $config['charset'] = 'utf-8'; 

Первый вызов URL-адреса помощника. Затем дайте действие в форме, например action="<?php echo base_url();?>index.php/mail/sendmail"

затем напишите код в функции контроллера