我有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();
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{}
和else{}
语句在模型中工作正常,但变量$postedTLD
正在向mysql发送空值。
有什么想法,为什么要发送这个?
答案 0 :(得分:3)
$postedTLD = $_POST["urlInput"];
应该是:
$postedTLD = $this->input->post('urlInput');
有关如何访问POST值的详细信息,请参阅documentation。
答案 1 :(得分:0)
您可以使用单行代码将所有发布数据作为数组获取。
$postData=$this->input->post(NULL,TRUE);