Php 表单提交返回空数据
我正在使用PHP框架CodeIgniter 查看Php 表单提交返回空数据,php,codeigniter,Php,Codeigniter,我正在使用PHP框架CodeIgniter 查看 <?php echo form_open('login/connect'); ?> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td><?php echo form_label('Username', 'username'); ?></td>
<?php echo form_open('login/connect'); ?>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><?php echo form_label('Username', 'username'); ?></td>
<td><?php echo form_input(array('id'=>'username', 'name'=>'username')); ?></td>
</tr>
<tr>
<td><?php echo form_label('Password', 'password'); ?></td>
<td><?php echo form_password(array('id'=>'password', 'name'=>'password')); ?></td>
</tr>
<tr>
<td></td>
<td><?php echo form_submit('login_submit', 'Valider'); ?></td>
</tr>
</table>
<?php echo form_close(); ?>
}
HTML
<div id="login">
<div id="login-inner">
<h1>Login</h1>
<form action="http://myswebsite.com/admin/index.php/login/connect" method="post" accept-charset="utf-8">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><label for="username">Username</label></td>
<td><input type="text" name="username" value="" id="username" /></td>
</tr>
<tr>
<td><label for="password">Password</label></td>
<td><input type="password" name="password" value="" id="password" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="login_submit" value="Valider" /></td>
</tr>
</table>
</form>
</div>
</div>
登录
用户名
密码
但它返回一个空数组
有人能提出一个解决这个问题的方法吗
谢谢。我想他使用的是CodeIgniter,因此表单_open()将自动放置方法=“post”。请你能分享表单的输出HTML吗 检查您是否没有重定向请求,否则post变量将被重置。 尝试打印而不是var\u dump…不要使用$\u POST 试用
$username= $this->input->post('username');
$password=$this->input->post('password');
确定了问题。
它与网站url有关,表单提交时出现了不需要的301重定向。
引用:在父类之后输入以下类::\u construct()强>
$this->load->helper('url');
$this->load->helper('form');
您没有指定方法,因此它应该是一个get-requestShow-your-Controller。@oPi您不需要在codeigniter中指定方法,默认情况下是它的
post
。检查为什么要包含.php
扩展名<代码>$this->load->view('login.tpl.php')代码>@jogesh_-pi不知道。很抱歉,soHello出现了错误,我尝试了print\r,但它不起作用(仍然获取空数据)。捕获发送的请求后,我从标题中获得以下信息:状态代码:301永久移动这是问题吗?如果是,如何避免这种情况(这方面有好的教程吗)?提前感谢。状态代码301表示永久重定向。这应该是问题所在。跟踪您的请求并了解重定向的“位置”。发生重定向时,将重置POST变量。您应该在重定向之前看到您的$\帖子。很抱歉,我对CodeIgniter没有太多经验,但我认为问题就在这里。是的,正确的方法是$this->input->post()
,但是$\u post
也可以。如果OP没有通过$\u POST
获得输出,那么$this->input->POST()
@jogesh\u pi也会发生同样的情况。捕获发送的请求后,我从标题中获得以下信息:状态代码:301永久移动这是问题吗?如果是,如何避免这种情况(这方面有好的教程吗)?提前谢谢。@jogesh_-pi我也已将代码更新为上述方法。@nikhil查看这篇文章@jogesh_-pi谢谢,发现了问题。它与不需要的重定向有关。
$this->load->helper('url');
$this->load->helper('form');