使用 isset 验证字段
Validate fields with isset
我尝试创建一个基本的计算器,它运行良好,但我需要验证字段。我尝试使用 if()
但 php 忽略了这一点。如果字段为空未显示消息 'Complete all fields' 并执行 function operadora();
结果 0。
我做错了什么?
对不起我的英语不好:(
这是表格:
<form action="calcular.php" method="post">
<input name="valor1" type="number">
<select name="operacion" id="">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input name="valor2" type="number">
<input type="submit" name="enviar" value="enviar">
</form>
这是 php 代码:
<?php
if(isset($_POST['enviar'])){
if(!isset($_POST['valor1']) ||
!isset($_POST['valor2'])){
echo 'complete all fields';
}
else{
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$operacion = $_POST['operacion'];
operadora($operacion,$valor1,$valor2);
}
}
function operadora($operador, $valor1, $valor2){
if(!strcmp($operador,"+")){
$resultado = $valor1+$valor2;
echo $resultado;
}
if(!strcmp($operador,"-")){
$resultado = $valor1-$valor2;
echo $resultado;
}
if(!strcmp($operador,"*")){
$resultado = $valor1*$valor2;
echo $resultado;
}
if(!strcmp($operador,"/")){
$resultado = $valor1/$valor2;
echo $resultado;
}
};
?>
试试这个
if(isset($_POST['enviar']))
{
if(isset($_POST['valor1']) && isset($_POST['valor2']))
{
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$operacion = $_POST['operacion'];
operadora($operacion,$valor1,$valor2);
}
else
{
echo 'complete all fields';
}
}
使用 empty() 检查字段,因为当您发送空表单字段时总是会被设置。
if (!empty($_POST['valor1')
&& !empty($_POST['valor2'])
&& !empty($_POST['operacion'])) {
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$operaction = $_POST['operaction'];
operadora($operaction, $valor1, $valor2);
} else {
echo 'Complete all fields';
}
strcmp()
strcmp returns 0 当字符串相等时,
所以你需要使用那个 if 语句
if (strcmp($operador, "+") == 0) {
$resultado = $valor1 + $valor2;
echo $resultando;
}
对于该操作,我更喜欢 switch 语句。
function operadora($operador, $valor1, $valor2)
{
$resultado = 0;
switch($operador) {
case '+':
$resultado = $valor1 + $valor2;
break;
case '-':
$resultado = $valor1 - $valor2;
break;
case '*':
$resultado = $valor1 * $valor2;
break;
case '/':
$resultado = $valor1 / $valor2;
break;
}
echo $resultado;
}
我尝试创建一个基本的计算器,它运行良好,但我需要验证字段。我尝试使用 if()
但 php 忽略了这一点。如果字段为空未显示消息 'Complete all fields' 并执行 function operadora();
结果 0。
我做错了什么?
对不起我的英语不好:(
这是表格:
<form action="calcular.php" method="post">
<input name="valor1" type="number">
<select name="operacion" id="">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input name="valor2" type="number">
<input type="submit" name="enviar" value="enviar">
</form>
这是 php 代码:
<?php
if(isset($_POST['enviar'])){
if(!isset($_POST['valor1']) ||
!isset($_POST['valor2'])){
echo 'complete all fields';
}
else{
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$operacion = $_POST['operacion'];
operadora($operacion,$valor1,$valor2);
}
}
function operadora($operador, $valor1, $valor2){
if(!strcmp($operador,"+")){
$resultado = $valor1+$valor2;
echo $resultado;
}
if(!strcmp($operador,"-")){
$resultado = $valor1-$valor2;
echo $resultado;
}
if(!strcmp($operador,"*")){
$resultado = $valor1*$valor2;
echo $resultado;
}
if(!strcmp($operador,"/")){
$resultado = $valor1/$valor2;
echo $resultado;
}
};
?>
试试这个
if(isset($_POST['enviar']))
{
if(isset($_POST['valor1']) && isset($_POST['valor2']))
{
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$operacion = $_POST['operacion'];
operadora($operacion,$valor1,$valor2);
}
else
{
echo 'complete all fields';
}
}
使用 empty() 检查字段,因为当您发送空表单字段时总是会被设置。
if (!empty($_POST['valor1')
&& !empty($_POST['valor2'])
&& !empty($_POST['operacion'])) {
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$operaction = $_POST['operaction'];
operadora($operaction, $valor1, $valor2);
} else {
echo 'Complete all fields';
}
strcmp() strcmp returns 0 当字符串相等时, 所以你需要使用那个 if 语句
if (strcmp($operador, "+") == 0) {
$resultado = $valor1 + $valor2;
echo $resultando;
}
对于该操作,我更喜欢 switch 语句。
function operadora($operador, $valor1, $valor2)
{
$resultado = 0;
switch($operador) {
case '+':
$resultado = $valor1 + $valor2;
break;
case '-':
$resultado = $valor1 - $valor2;
break;
case '*':
$resultado = $valor1 * $valor2;
break;
case '/':
$resultado = $valor1 / $valor2;
break;
}
echo $resultado;
}