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


How to make user enter only positive numeric value for factorial

我希望用户在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>

如果你想禁止人们在你的客户端(前端)中输入负数,那么你必须使用JavaScript来监听输入区域中的更改,并且你必须使用regex来验证它们(或者简单地检查输入值是否为负数),你可以发出某些警告消息,并使提交表单无效。

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

试着解决这个问题,如果你碰壁了就回来找我们。

这样做,检查数字是否为数字并且>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>