如何让用户只输入阶乘的正数值

时间:2014-04-11 12:49:41

标签: php

我希望用户只输入正数来计算因子不是字母而不是PHP中的html形式的负数,因为我是php的新手,我该怎么办?

<div id="mydiv">
<?php if(isset($_POST['fa'])) 
{ $val = $_POST['factori']; $valu=$val-1; while ( $valu!=1 ) 
{ $val=$valu*$val; $valu--; } } 
?> 
<form method="post" action=""> <h2>Calculate factorial for any number<br></h2>

2 个答案:

答案 0 :(得分:0)

如果您想禁止人们在您的客户端(前端)输入负数,那么您必须使用JavaScript来监听输入区域中的更改,并且必须使用正则表达式验证它们(或者只是通过检查输入值是否是否为否定),您可以提供某些警告信息并使提交表单无效。

另一种方法是允许用户将任何数值发布到您的后端(PHP),并且您可以简单地检查该值是否合法,如果它不合法,您可以简单地返回错误而不是计算值。

尝试解决问题,如果碰壁就回到我们身边。

答案 1 :(得分:0)

这样做,检查数字是否为数字&gt; 0

<div id="mydiv">
    <?php 
    if(isset($_POST['fa'])) 
    { 
            $val = $_POST['factori']; 
            if(is_numeric($val) && $val > 0) // check if input is numeric and  > 0
            { //valid input
              $valu=$val-1; 
              while ( $valu!=1 ) 
              { 
                    $val=$valu*$val; $valu--; 
              } 
            }
            else
            {
                   // input is not numeric or is < 0
            } 

    } 
    ?> 
    <form method="post" action=""> <h2>Calculate factorial for any number<br></h2>