【问题标题】:Empty Value for $_POST variable in codeignitercodeigniter 中 $_POST 变量的空值
【发布时间】:2013-01-24 02:21:50
【问题描述】:

我有一个表格:

       <?php
            $attr = array('id'=>'urlSubmit');
            $urlInputAttr = array('name'=>'urlInput','value'=>'yourdomain.com','maxlength'=>'50','size'=>'25');
            echo form_open('urlSubmission',$attr);
            echo form_input($urlInputAttr);
            #echo form_submit('urlInput', '');
            echo form_close();
        ?>

a controller called **urlsubmission**

    # Determine whether domain already has been crawled.
                $this->load->model('domaincheckmodel');

                    $this->domaincheckmodel->verifyduplicates();

还有一个模型(domaincheckmodel)中的函数,它基本上检查重复记录并插入一个新域:

function verifyduplicates(){
        # $_POSTed value of urlInput
        $tldEntered = $this->input->post('urlInput'); ## echo out $_POSTed domain entered.
        ## Gather if the domain exists in db
        $DupDomains = $this->db->get_where('ClientDomain', array('tld'=>$tldEntered));   // Get ClientDomain table

    if($DupDomains->num_rows() > 0 ){
        $this->load->view('err/domainexists'); ##domain already used
    }

    # else, no domain present, insert.
    else{
        #array of insert values:
        $insertNewDomain = array('tld'=>$tldEntered);
        $this->db->insert('ClientDomain', $insertNewDomain); 
        $this->load->view('success/domainfree'); ##domain is free and has not been entered.
    }

问题是:我提交时,它向数据库提交了一条记录,但tld为空。

【问题讨论】:

  • 如何提交?您的代码中没有提交按钮。
  • 我看到您前一段时间在一个问题中发布了相同的功能...您是否重新安装了 CI 应用程序,现在它没有发布?
  • 在使用$this-&gt;input-&gt;post('urlInput');而不是$_POST['urlInput']后不再报错,但现在提交记录,但db中的tld字段为空。

标签: php codeigniter activerecord post


【解决方案1】:
function verifyduplicates(){
    #PREPARE DATA
    if ($this->input->post('name_of_your_button')){
        $postedTLD = $this->input->post('urlInput');    // Get unsanitized data
        echo $postedTLD;
        $this->db->set('tld', $postedTLD); // AutoMagically escaped by AR
        #INSERT DATA
        $this->db->insert('ClientDomain'); 
    }
} 

只需确保您为提交按钮命名

【讨论】:

  • 提交的name字段需要和&lt;input type="submit" name="urlInput" /&gt;一样的“name”吗?
  • 你可以为它命名任何你想要的名字。例如名称是submit_button 然后是$this->input->post('submit_button'),你可以将它命名为urlInput,只要它是唯一的
  • 这仍然是提交一个空值
  • 你要向 clientDomain 插入什么?
猜你喜欢
  • 1970-01-01
  • 2016-02-12
  • 2012-12-21
  • 1970-01-01
  • 1970-01-01
  • 2019-12-27
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
相关资源
最近更新 更多