![](/img/trans.png)
[英]How to post data from multiple pages in a single form action in codeigniter?
[英]form action codeigniter does not find post data
我在codeigniter中的表单有问题。 我尝试了不同的方法,但找不到解决方案。
形式如下:
<form method="post" action="<?php echo base_url(); ?>cms/cms/newUser">
<div class="row">
<div class="col-md-3">
Naam:
</div>
<div class="col-md-9">
<input type="text" id="naam" name="username" />
</div>
</div>
<div class="row">
<div class="col-md-3">
E-mail:
</div>
<div class="col-md-9">
<input type="email" name="mail" id="email" />
</div>
</div>
<div class="row">
<div class="col-md-3">
Passwoord:
</div>
<div class="col-md-9">
<input type="password" name="pass" id="password" />
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<input type="submit" name="aanmaken" class="btn btn-block btn-info" value="aanmaken" />
</div>
</div>
在我的控制器中,我处理来自表单的数据。 控制器位于controllers / cms / cms.php
class Cms extends MY_Controller
{
public function newUser()
{
if(isset($_POST))
{
echo "verwerk deze data <br>";
if(isset($_POST['username']))
{
echo 'naam is set!';
}
else {
echo 'naam is not set!';
}
$naam = $_POST['username'];
$mail = $_POST['email'];
$pass = $_POST['password'];
echo "naam: " . $naam . "<br>";
echo "mail: " . $mail . "<br>";
echo "pass: " . $pass . "<br>";
$time = new DateTime();
$time->setTimezone(new DateTimeZone ('Europe/Brussels'));
$tijd = $time->format('Y-m-d H:i:s');
include_once('application/libraries/PasswordHash.php');
$hasher = new PasswordHash(12,false);
$passwoord = $hasher->HashPassword($pass);
$gebruiker = new Gebruiker();
$gebruiker->naam = $naam;
$gebruiker->email = $mail;
$gebruiker->paswoord = $passwoord;
$gebruiker->laatsteLogin = $tijd;
$gebruiker->active = 0;
echo "coded pas" . $passwoord . "<br>";
}
else
{
echo "no post";
}
}
当我检查我的网站并填写表格时,我得到了3 php错误,我从帖子中放入变量的值不存在。 if(isset)函数还说未设置变量。 我不知道为什么表单动作不起作用。
我什至尝试了codeigniter方式,但结果相同。
$name = $this->input->post('username');
谢谢您的帮助。
您只需要传递controllername / func_name并将控制器文件保存在controller
dir中,然后以CI方式尝试
<?php echo form_open("cms/newUser");?>
<?php echo form_close();?>
要么
<form method="post" action="<?php echo base_url(); ?>cms/newUser">
否则,您需要为此使用routing
,并告诉要在该路由上选择该控制器,然后转到config / routes.php并添加以下路由:
$route['cms'] = "cms/cms";
在表单标签中
<form method="post" action="<?php echo base_url(); ?>cms/cms/newUser">
cms
是控制器的名称,您已经使用了两次。 试试看
<form method="post" action="<?php echo base_url(); ?>cms/newUser">
HTML:
enter code here
<form method="post" action="<?php echo site_url(); ?>/cms/cms/newUser">
<div class="row">
<div class="col-md-3">
Naam:
</div>
<div class="col-md-9">
<input type="text" id="naam" name="username" />
</div>
电子邮件:
<div class="row">
<div class="col-md-3">
Passwoord:
</div>
<div class="col-md-9">
<input type="password" name="pass" id="password" />
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<input type="submit" name="aanmaken" class="btn btn-block btn-info" value="aanmaken" />
</div>
</div>
PHP:
class Cms extends MY_Controller
{
public function newUser()
{
if(isset($_POST))
{
echo "verwerk deze data <br>";
if($this->input->post('username'))
{
echo 'naam is set!';
}
else {
echo 'naam is not set!';
}
$naam = $this->input->post('username');
$mail = $this->input->post('mail');
$pass = $this->input->post('pass');
echo "naam: " . $naam . "<br>";
echo "mail: " . $mail . "<br>";
echo "pass: " . $pass . "<br>";
$time = new DateTime();
$time->setTimezone(new DateTimeZone ('Europe/Brussels'));
$tijd = $time->format('Y-m-d H:i:s');
include_once('application/libraries/PasswordHash.php');
$hasher = new PasswordHash(12,false);
$passwoord = $hasher->HashPassword($pass);
$gebruiker = new Gebruiker();
$gebruiker->naam = $naam;
$gebruiker->email = $mail;
$gebruiker->paswoord = $passwoord;
$gebruiker->laatsteLogin = $tijd;
$gebruiker->active = 0;
echo "coded pas" . $passwoord . "<br>";
}
else
{
echo "no post";
}
}
$ this-> input-> post('')将自动检查是否不需要isset()。 $ this-> input-> post('')将使用名称而不是id
尝试加载表单助手并使用此代码
控制器:
$ this-> viewContent ['form_action'] = base_url()。“ cms / cms / newUser”; $ this-> load-> view('your_view_page',$ this-> viewContent);
查看:echo form_open($ form_action);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.