PHP - Codeigniter - 无法使用post请求填充变量

时间:2014-12-22 05:15:19

标签: php codeigniter

我是PHP和Codeigniter的新手。 Actualy,我是一个想要探索开源世界的Windows程序员。 我正在尝试使用Codeigniter Framework在PHP中建立一个带有bacoffice的网站。 现在我正试图在数据库上注册用户,以后可以登录系统。 但是我无法在表单上的文本框字段中写入数据并将其传递给我的变量。

这是我的控制器:

public function InsertUser(){

        $this->load->model('sdcadmin/loginmodel');

        if($this->input->post()){

            $nome = $this->input->post('Nome') ? $this->input->post('Nome') : null; 
            $email = $this->input->post('Email') ? $this->input->post('Email') : null; 
            $utlIns = 'Sistema';
            $dataIns = getdate(1);
            $utlAlt = 'Sistema';
            $dataAlt = getdate(1);
            $senha = $this->input->post('Senha') ? $this->input->post('Senha') : null; 
            $repeteSenha = $this->input->post('Senharep') ? $this->input->post('Senharep') : null; 


                if($senha != $repeteSenha){
                    echo 'Passwords doesn't match!';
                }
                else
                {
                    $this->loginmodel->InsertUser($nome, $email, $senha, $utlIns, $dataIns, $utlAlt, $dataAlt);

                    echo 'Success!';
                }
        }
        else
        {
            echo 'Not Working';
        }  
    }

这是我的表格:

<form method="POST" action="Login/InsertUser">
        <img src="<?php echo base_url() ?>Images/logo.png"/>
        <div>
            <input type="text" placeholder="Nome" required="" id="Nome" />
        </div>
        <div>
            <input type="text" placeholder="Email" required="" id="Email" />
        </div>
        <div>
            <input type="password" placeholder="Palavra-Passe" required="" id="Senha" />
        </div>
        <div>
            <input type="password" placeholder="Repetir Palavra-Passe" required="" id="Senharep" />
        </div>
        <div>
            <input type="submit" value="Registar" id="btnSub" />
        </div>
    </form>

在我对此问题的调查中,可能是我的.htaccess文件阻止了所有POST请求,但我不确定。

这是我的.htaccess文件:

    <IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /dcm/

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]


#This code was added in atemp to allow posts request, but not working
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_METHOD} POST
# allow localhost
RewriteCond %{REMOTE_ADDR} !127\.0\.0\.1$   
RewriteRule ^ - [F] 


</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>

你能帮我吗?

非常感谢。

4 个答案:

答案 0 :(得分:1)

您需要添加&#34;名称&#34;属性到每个输入类型字段。

        <div>
            <input type="text" placeholder="Nome" required="" id="Nome" name="Nome" />
        </div>
        <div>
            <input type="text" placeholder="Email" required="" id="Email" name="Email" />
        </div>
        <div>
            <input type="password" placeholder="Palavra-Passe" required="" id="Senha" name="Senha"/>
        </div>
        <div>
            <input type="password" placeholder="Repetir Palavra-Passe" required="" id="Senharep" name="Senharep" />
        </div>

答案 1 :(得分:1)

您错过了在输入字段中添加添加名称属性。检查下面并更正它。

<div>
        <input type="text" placeholder="Nome" required="" id="Nome" name="Nome" />
    </div>
    <div>
        <input type="text" placeholder="Email" required="" id="Email" name="Email" />
    </div>
    <div>
        <input type="password" placeholder="Palavra-Passe" required="" id="Senha" name="Senha"/>
    </div>
    <div>
        <input type="password" placeholder="Repetir Palavra-Passe" required="" id="Senharep" name="Senharep" />
    </div>

答案 2 :(得分:0)

将名称属性添加到输入字段。

答案 3 :(得分:0)

好的,我现在感觉很傻。 我认为它是由Id映射的,而不是从Name atribute映射的。 你没事。

有效!

谢谢!