Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 输入值是否可以与HTML表单中的占位符相同?_Php_Html_Mysql_Forms_Codeigniter - Fatal编程技术网

Php 输入值是否可以与HTML表单中的占位符相同?

Php 输入值是否可以与HTML表单中的占位符相同?,php,html,mysql,forms,codeigniter,Php,Html,Mysql,Forms,Codeigniter,我有一个HTML表单,它接受CVV编号作为字段项之一- <label for="cvv">CVV</label> <input type="text" placeholder="123" maxlength="3" id="cvv" name="cvv"> 我可以在数据库中输入任何CVV值,除了与占位符值相同的123。我一直得到以下错误- Error Number: 1366 Incorrect integer value: '' for column '

我有一个HTML表单,它接受CVV编号作为字段项之一-

<label for="cvv">CVV</label>
<input type="text" placeholder="123" maxlength="3" id="cvv" name="cvv">
我可以在数据库中输入任何CVV值,除了与占位符值相同的
123
。我一直得到以下错误-

Error Number: 1366

Incorrect integer value: '' for column 'cvv' at row 1

INSERT INTO `payment` (`cardno`, `exp`, `cvv`, `name`, `org`) VALUES ('6547893210258135', '04/20', '', 'Joe Bloggs', '15')

Filename: C:\xampp\htdocs\ci_redesign_newdb\system\database\DB_driver.php

Line Number: 330
当我在将
$pay
数组插入数据库之前打印该数组时,
cvv为123
,cvv字段为空-

Array ( [cardno] => 6547893210258135 [exp] => 04/20 [cvv] => [name] => Joe Bloggs [org] => 15 )
但是,如果我将CVV值更改为其他值,则会填充CVV字段-

Array ( [cardno] => 6547893210258135 [exp] => 04/20 [cvv] => 103 [name] => Joe Bloggs [org] => 15 )
由于该字段已填充,因此我可以将其输入数据库而不会出现任何错误。表单不接受与字段占位符相同的值(即本例中的
123
)的原因可能是什么

编辑1

表单中的所有输入字段似乎都存在此问题。我只注意到了
cvv
,因为我碰巧输入了
123
作为测试。因此,看起来所有输入值与占位符值相同的字段都没有被输入

编辑2-问题来源

问题似乎源于jQuery源文件版本2.0.3。我在代码中注释掉了该文件-

<script src='<?php echo base_url(); ?>assets/js/jquery-2.0.3.min.js'></script>

这是可以通过编辑jQuery源文件来解决的问题吗?我应该做出这样的改变吗?不想做出可能在其他地方引起问题的更改。

这真的很奇怪。我确信有一些JavaScript代码或您正在使用的库导致了这种情况

解决问题的一种可能方法是在提交输入之前删除/更改输入的占位符属性

比如,

<form id="yourform" name="yourform">
 <input type="text" placeholder="123" id="cvv"/>
 <div class="button" onclick="submitForm()">Submit</div>
</form>

我不确定它是否会起作用,我也不知道解决这个问题的正确方法,但会起作用。

你确定要在cvv中插入任何值吗?再次检查您的验证。您是否尝试通过phpMyAdmin插入123?如果它有效,那么代码中就有错误。@BenJunior我肯定我正在将值123插入cvv中。在我的本地主机和测试服务器上检查了多次。我可以在SQLyog中手动输入该值。我肯定代码中肯定有错误。php还可以,因为它可以插入123以外的值。我认为占位符在某种程度上导致了冲突。好吧,将占位符设置为
103
,然后尝试使用
123
103
这两个值。还要注意
maxlength
-CVV的长度可以是4位。当您说您在CVV字段中输入了占位符值时,您是真的输入了它还是只保留了字段中的占位符文本。占位符文本通常不会发送到服务器,因此您需要在cvv输入中直接键入123,服务器才能看到该值。您在该页面上有活动的javascript吗?这是一个很好的解决方法。非常感谢。问题似乎是我正在使用的jQuery源文件。我将编辑问题以发布更多详细信息。
Array ( [cardno] => 1234567890123456 [exp] => mm/yy [cvv] => 123 [name] => Name [org] => 15 )
<form id="yourform" name="yourform">
 <input type="text" placeholder="123" id="cvv"/>
 <div class="button" onclick="submitForm()">Submit</div>
</form>
function submitForm(){
   document.getElementById("cvv").placeholder = "";
    //Do it for all of your input elems.

   document.yourform.submit();
}