Я использую PHP Code Igniter, и у меня возникают проблемы с проверкой формы. Я следил за учебником по проверке формы в Code Igniter, но он не работает. Пустые поля передаются в базу данных.PHP Code Igniter Form Validation не работает
Я добавил набор правил проверки формы в функцию индекса в контроллере.
Контроллер:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Phonebook extends CI_Controller {
var $TPL;
public function __construct()
{
parent::__construct();
$this->TPL['newentry'] = false;
$this->load->library(array('form_validation')); // load form lidation libaray & session library
$this->load->helper(array('url','form')); // load url,html,form helpers optional
}
public function index()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$TPL->form_validation->set_rules('fname', 'First Name', 'required|min_length[5]|max_length[12]|is_unique[phonebook.fname]');
$this->form_validation->set_rules('lname', 'Last Name', 'required|matches[passconf]');
$this->form_validation->set_rules('phone', 'Password Confirmation', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[phonebook.email]');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('phonebook_view');
}
else
{
$this->load->view('success_message');
}
}
public function newentry()
{
$fname = $this->input->post("fname");
$lname = $this->input->post("lname");
$phone = $this->input->post("phone");
$email = $this->input->post("email");
$query = $this->db->query("INSERT INTO phonebook VALUES (NULL, '$fname', '$lname', '$phone', '$email', NULL, NULL, NULL, NULL);");
$this->display();
}
public function addnew()
{
$this->TPL['newentry'] = TRUE;
$this->display();
}
}
И Посмотреть файл.
<html>
<body>
<h1><a href="<?= base_url()?>">Phonebook</a></h1>
<? if ($newentry) { ?>
<?= form_open('Phonebook/newentry') ?>
<?= form_fieldset("Add Entry") ?>
<?= form_label('First Name:', 'fname'); ?> <br>
<?= form_input(array('name' => 'fname',
'id' => 'fname')); ?> <br>
<?= form_label('Last Name:', 'lname'); ?> <br>
<?= form_input(array('name' => 'lname',
'id' => 'lname')); ?> <br>
<?= form_label('Phone Number:', 'phone'); ?> <br>
<?= form_input(array('name' => 'phone',
'id' => 'phone')); ?> <br>
<?= form_label('E-mail:', 'email'); ?> <br>
<?= form_input(array('name' => 'email',
'id' => 'email')); ?> <br>
<?= form_submit('phonebooksubmit', 'Submit'); ?>
<?= form_fieldset_close(); ?>
<?= form_close() ?>
<? } else { ?>
<p><a href="<?= base_url() ?>index.php?/Phonebook/addnew">Add new entry</a></p>
<? } ?>
</body>
</html>