1

我有一个Codeigniter Form

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

然后一个controller

 $this->load->view('support/header', $urlSubmissionMeta); ## Header info 
  $this->load->view('support/toolbar'); #logo
  //
    # Determine whether domain already has been crawled.
    $this->load->model('domaincheckmodel');
        $this->domaincheckmodel->verifyduplicates(); 

    # Then Perform Scan
    $this->load->model('performscanmodel');
        $this->performscanmodel->fetchlinks();

A model,叫 domaincheckmodel.php:

   function verifyduplicates(){
        #PREPARE DATA
        $postedTLD = $_POST["urlInput"];    // Get unsanitized data
        $sql = "SELECT tld from ClientDomain WHERE tld = ?";
        $endquery = $this->db->query($sql,array($this->db->escape_str($postedTLD))); // Query db

        #CONDITION   - if #rows GT 0, load domain already exists.
        if($endquery->num_rows() > 0){
            $this->load->view('err/domainexists'); ##domain already used
            ## redir to new pagee to .. please login..
        } 

        else{ #number of rows must be 0, insert into db
            $newDomain = "INSERT INTO ClientDomain(tld) VALUES('".$this->db->escape_str($postedTLD)."')";
            $this->db->query($newDomain);

            $this->load->view('success/domainfree');
            ## please register to begin saving history of your scans, without doing so you lose results.
        }

问题是当我提交表单时,if{}andelse{}语句在模型中工作正常,但变量$postedTLD正在向 mysql 发送一个空白值。

这里有什么想法为什么要发送?

4

2 回答 2

3
$postedTLD = $_POST["urlInput"]; 

应该:

$postedTLD = $this->input->post('urlInput');

有关如何访问 POST 值的更多信息,请参阅文档。

于 2013-01-23T01:52:04.453 回答
0

您可以使用单行代码将所有发布数据作为数组获取。

$postData=$this->input->post(NULL,TRUE);
于 2013-01-23T04:32:33.727 回答