簡體   English   中英

表單操作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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM