I am very curious on why when I print_r($this->input->post()), it prints an array and then has 1 after it.
This is what it prints:
Array ( [username] => lilmousiee [birthdate] => 1992-04-26 [gender] => 1 [password] => 66lah66lab [password2] => 66lah66lab [pin] => 2323 [pin2] => 2323 [email] => mouseywings@live.com [email2] => mouseywings@live.com [region] => 1 [dtype] => air [dname] => Mattyco [dgender] => 1 [terms] => [recaptcha_challenge_field] => 03AHJ_VutHNI6hK3M_trpE-n4Qr9V5wWSH10p8hmQjrYVLeWf65ylIDva5XdH78uGED5KCsMx8tp3FHZ6p1xTllyrdSP7nEbnSILQ9CDqrxoD2pit5o9T9Cowy06_O6XLLM22fvH_5ICqoYrmI-o-P8dGCal0fNKuSohgvFU03FmgbhuYTDjJ_xUA [recaptcha_response_field] => asdfsadf [submit] => Register [search] => [type] => usersitems ) 1
Why is it printing that “1” after the array? I do not have one even typed… And there is no input field that does a value of 1 after the register button… And what exactly is the “search” and “type” keys?
The last part of my HTML:
<legend>Terms of Use</legend>
<div id="terms">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae turpis ut sem tristique luctus. Sed tincidunt consequat tristique. Mauris laoreet vestibulum aliquam. Ut enim tortor, aliquet at faucibus sed, venenatis eget tellus. Praesent velit nisl, bibendum a dignissim nec, hendrerit non lacus. Fusce dapibus pharetra molestie. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae turpis ut sem tristique luctus. Sed tincidunt consequat tristique. Mauris laoreet vestibulum aliquam. Ut enim tortor, aliquet at faucibus sed, venenatis eget tellus. Praesent velit nisl, bibendum a dignissim nec, hendrerit non lacus. Fusce dapibus pharetra molestie. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae turpis ut sem tristique luctus. Sed tincidunt consequat tristique. Mauris laoreet vestibulum aliquam. Ut enim tortor, aliquet at faucibus sed, venenatis eget tellus. Praesent velit nisl, bibendum a dignissim nec, hendrerit non lacus. Fusce dapibus pharetra molestie. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae turpis ut sem tristique luctus. Sed tincidunt consequat tristique. Mauris laoreet vestibulum aliquam. Ut enim tortor, aliquet at faucibus sed, venenatis eget tellus. Praesent velit nisl, bibendum a dignissim nec, hendrerit non lacus. Fusce dapibus pharetra molestie. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
</div>
<?php echo form_checkbox(array('name' => 'terms')); ?> Accept Terms of Use
<div class="row clearfix">
<?php
echo recaptcha_get_html($public_key);
?>
</div>
</fieldset>
<?php echo print_r($array); ?>
<div class="row clearfix"><?php echo form_submit('submit', 'Register'); ?></div>
<? echo form_close(); ?>
I’m just having trouble passing $this->input->post() array into a validation function. Here is MY_Form_validation.php in my libraries folder:
class MY_Form_validation extends CI_Form_validation {
private $post;
public function __construct($params = array()) {
foreach($params as $param) {
parent::__construct($param['config']);
$this->post = $param['post'];
}
}
}
Is there a reason that “1” is being printed as the $this->post value… When it should hold the key and values of the array?
This is how I’m passing the parameters:
$this->load->library('MY_Form_validation', array('config' => '', 'post' => $this->input->post()));
But when I put print_r($this->post), it only prints “1”..
It’s because
$this->input->post()is an object and not a string or an array. It’s printing out 1 because the object exists and has properties. If it did not exist or was empty, it would print 0. It’s just a numerical representation of the boolean return value.As someone mentioned, if you do
var_dump($this->input->post())you won’t have the “1” character showing up.To get the value of a field, specify the fieldname in the parentheses:
Another clarification; You can use
$this->input->post()‘s return value like this: