Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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中只需输入浮点数是否需要选中?_Php_Forms_Validation - Fatal编程技术网

在php中只需输入浮点数是否需要选中?

在php中只需输入浮点数是否需要选中?,php,forms,validation,Php,Forms,Validation,我想验证用户是否只在文本字段中输入浮点数,如3.4。在本例中,我只需要使用php检查$value1和$value2 libraryForm.php <form action="savelibscores.php" method="POST"> S3: <input class="inputfield" type="text" name="s3" size="5"> <br /><br/> S4: <input class="inputfiel

我想验证用户是否只在文本字段中输入浮点数,如
3.4
。在本例中,我只需要使用
php
检查
$value1
$value2

libraryForm.php

<form action="savelibscores.php" method="POST">
S3: <input class="inputfield" type="text" name="s3" size="5"> <br /><br/>
S4: <input class="inputfield" type="text" name="s4" size="5"> <br /><br/>
<b>Year:<b/>
<select name="year"> 
<option value="Choose">Please select..</option>
<option value="2005">2005</option> 
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option></select><br/><br/>

<br/>
<input type="submit" value="Save" name="submit">
<input type="reset" name="reset" value="Clear"><br /><br/>

</form>


S3:

S4:

年份: 请选择。。 2005 2006 2007 2008 2010 2011 2012年




savelibscores.php

<?php

 define('DB_NAME','');
 define('DB_USER','');
 define('DB_PASSWORD','');
 define('DB_HOST','localhost');

 $connect = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);

 if(!$connect){
      die('Could not connect:'.mysql_error());
 }

 $db_selected=mysql_select_db(DB_NAME,$connect);

 if(!$db_selected){
    die('Can\'t use'.DB_NAME.':'.mysql_error());
 }

 if(isset($_POST['submit'])){
    $value1=$_POST['s3'];
    $value2=$_POST['s4'];
   $value3=$_POST['year'];
 if(!empty($value1) && !empty($value2) && !empty($value3)){
       $sql=mysql_query("INSERT INTO `library`(s3,s4,year) VALUES ('".$value1."','".$value2."','".$value3."')")or die(mysql_error());
}
   else{
    echo "Please fill all the fields.";
   }
}
?>
试试这个:

<input type="number" step="0.1">


查看更多详细信息。

您有两个选择

作用

函数,第二个参数是
FILTER\u VALIDATE\u FLOAT
FILTER

或者在变量名之前强制转换
(float)


前两个将检查它是否是浮点数,第三个将把你给它的任何东西转换成浮点数。我喜欢使用
filter\u var()
函数,因为它使代码更清晰,而且它对验证所有类型的东西(电子邮件地址、IP地址、URL等)也非常有用。

可能重复@Ben N@chris85谢谢大家!!!还要注意,SQL是可注入的。您还应该切换到PDO或mysqli驱动程序。注入问题的一个解决方案是将值转换为浮点数,但最好的解决方案是准备语句。