【问题标题】:I am not getting post values from form in codeigniter我没有从 codeigniter 的表单中获取帖子值
【发布时间】:2017-09-21 18:52:21
【问题描述】:

我在codeigniter中有一个表格,如下:

<form action="<?php echo site_url()?>login/admin_login" method="post">
<?php //echo form_open('login/admin_login'); // This is also not working?>
    <div class="form-group">
            <i class="fa fa-user fa-2x" aria-hidden="true"></i>
      <input type="email" name="email" class="form-control" placeholder="Email Address">
    </div>
    <div class="form-group">
            <i class="fa fa-unlock-alt fa-2x" aria-hidden="true"></i>
      <input type="password" name="password" class="form-control" placeholder="Password">
            <div class="center">
        <a href="#" class="pull-xs-right">
          <small>Forgot?</small>
        </a>
            </div>
      <div class="clearfix"></div>
      </div>
      <div class="center">
      <?php echo form_submit(['name'=>'submit', 'value'=>'Login', 'class'=>'btn  btn-azure']); ?>
    </div>
</form>

而我的控制器是这样的:

<?php
class Login extends CI_Controller {

  public function admin_login()
  {
    print_r($_POST); die();

   }
}
?>

我已正确分配基本网址。如需更多信息,请联系$config['base_url'] = 'http://localhost/ims/codeigniter/';。当我提交表单时,url 更改为目标控制器,但它正在加载相同的表单。当我用 url 重新加载页面时(提交表单后),返回一个空数组。它不返回表单提交的值。为什么会这样?我在哪里做错了。我已经交叉检查了表单目标控制器和检查元素,我在哪里做错了?

【问题讨论】:

  • 你不应该使用输入助手吗?我认为代码点火器至少破坏了 GET 超级全局。
  • 这不应该是问题,在我看来。它在其他地方工作正常。我已经测试过了。
  • 尝试使用base_url() 代替site_url() 并使用exit; 代替die()
  • 您是否从您的网址中删除了index.php。如果没有将您的 action 更改为 &lt;?php echo site_url()?&gt;index.php/login/admin_login

标签: php codeigniter


【解决方案1】:

使用 CI 表单或者 Html 表单

改变这个

<?php echo form_submit(['name'=>'submit', 'value'=>'Login', 'class'=>'btn  btn-azure']); ?>

到这里

<input type="submit" name="submit" value="Login" class= "btn  btn-azure">

确保您的项目在 URL 中没有 index.php 的情况下工作。 (action="&lt;?php echo site_url()?&gt;index.php/login/admin_login)

【讨论】:

  • 我也试过输入类型。是的,我已经删除了 index.php。但它仍然无法正常工作。当我提交表单时,url 重定向到正确的控制器和方法,但不加载控制器的内容。当我刷新该网址时,它返回一个空数组。
  • @Amit,重定向是什么意思?如果有任何 http 重定向,$_POST 将为空。
  • 是的,没错。我同意你的观点。问题是提交表单时,它会转到确切的控制器/方法,但它没有加载该方法的内容。
【解决方案2】:

我正在推测那个提交按钮代码,所以请使用它来检查它是否真的设置了必填字段,只是为了检查。

<?php
class Login extends CI_Controller {

  public function admin_login(){
    if(isset($_POST['submit'])){
        print_r($_POST); die();
    }else{
        echo 'use input tags!';
    }
  }
}
?>

【讨论】:

  • 问题是当点击提交按钮时,url被重定向到正确的控制器/方法,但它没有加载方法的内容。即使我在控制器中打印“Hi”。我已经尝试过你的建议,它没有加载方法的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 2015-01-05
  • 1970-01-01
相关资源
最近更新 更多