![](/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.