Php 单元转换器

Php 单元转换器,php,html,converter,Php,Html,Converter,我正在努力让我的PHP单元转换器工作 我试图让多个转换器运行,但似乎无法让它工作 如果有人能告诉我哪里出了问题并帮我解决,那就太好了 <?php if($_POST){ $fahrenheit = $_POST['fahrenheit']; $celsius = ($fahrenheit - 32)*5/9; } if($_POST){ $celsius = $_POST['celcius']; $fahrenheit = ($celcius - 3

我正在努力让我的PHP单元转换器工作

我试图让多个转换器运行,但似乎无法让它工作

如果有人能告诉我哪里出了问题并帮我解决,那就太好了

<?php
 if($_POST){
    $fahrenheit = $_POST['fahrenheit'];
    $celsius = ($fahrenheit - 32)*5/9;
 }

 if($_POST){
    $celsius = $_POST['celcius'];
    $fahrenheit = ($celcius - 32)*5/9;
 }
 ?>


        <form action="" method="post">
        Fahrenheit: <input type="text" name="fahrenheit" /><br />
        <?php
        if(isset($celsius)){
            echo "Celsius = ".$celsius;
        }
        ?>
       </form>

<?php
    function fahrenheit_to_celsius($given_value)
    {
        $celsius=5/9*($given_value-32);
        return $celsius ;
    }

    function celsius_to_fahrenheit($given_value)
    {
        $fahrenheit=$given_value*9/5+32;
        return $fahrenheit ;
    }

    function inches_to_centimeter($given_value)
    {
      $centimeter=$given_value/2.54;
      return $centimeter ;
    }

    function centimeter_to_inches($given_value)
    {
      $inches=$given_value*2.54
    }
?>

<html>
    <head>
        <title>Temp. Conv.</title>
    </head>
    <body>
        <form action="" method="post">
        <table>
<!-- FAHRENHEIGHT & CELCIUS V -->
            <tr>
                <td>
                    <select name="first_temp_type_name">
                        <option value="fahrenheit">Fahrenheit</option>
                        <option value="celsius">Celsius</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" name="given_value">
                </td>
            </tr>
            <tr>
                <td>
                    <select name="second_temp_type_name">
                        <option value="fahrenheit">Fahrenheit</option>
                        <option value="celsius">Celsius</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="submit" name="btn" value="Convert">
                </td>
            </tr>

<!--FAHRENHEIGHT & CELCIUS ^ -->

<!-- CENTEMETERS & INCHES -->

            <tr>
                <td>
                    <select name="first_length_type_name">
                        <option value="centimeter">centimeter</option>
                        <option value="inches">Inches</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" name="given_value">
                </td>
            </tr>

            <tr>
                <td>
                    <select name="second_length_type_name">
                      <option value="centimeter">centimeter</option>
                      <option value="inches">Inches</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" name="given_value">
                </td>
            </tr>

<!--CENTEMETERS & INCHES ^-->

            <tr>
                <td>
                    <?php
                    if(isset($_POST['btn']))
                    {
                        $first_temp_type_name=$_POST['first_temp_type_name'];
                        $second_temp_type_name=$_POST['second_temp_type_name'];
                        $given_value=$_POST['given_value'];
                        if($first_temp_type_name=='fahrenheit')
                        {
                            $celsious=fahrenheit_to_celsius($given_value);
                            echo "Fahrenheit $given_value = $celsious Celsious";
                        }
                        if($first_temp_type_name=='celsius')
                        {
                            $fahrenheit=celsius_to_fahrenheit($given_value);
                            echo "Celsious  $given_value = $fahrenheit Fahrenheit";
                        }


                    }

                    if(isset($_POST['btn']))
                    {
                        $first_length_type_name=$_POST['first_length_type_name'];
                        $second_length_type_name=$_POST['second_length_type_name'];
                        $given_value=$_POST['given_value'];
                        if($first_length_type_name=='centimeter')
                        {
                            $centimeter=centimeter_to_inches($given_value);
                            echo "Centimeter $given_value = $inches Inches";
                        }
                        if($first_length_type_name=='inches')
                        {
                            $centimeter=inches_to_centimeter($given_value);
                            echo "Inches  $given_value = $centimeter centimeter";
                        }


                    }

                    ?>
                </td>
            </tr>
        </table>
        </form>
    </body>
</html>
我知道发生了很多事,我道歉


非常感谢您的帮助:

如果您想制作一个转换器,您只需要一个输入,以及您希望转换为的内容之间的下拉列表。然后在提交表单时在PHP中使用一个开关来检查您希望使用的函数

您当前的问题是覆盖了很多值,并且没有检查正确的按钮。这也过于复杂化了

您可以进一步开发这个转换器,确保输入是一个实际的数字-使用filter_var和适合您需要的标志。您可以对其进行验证或消毒,请参阅


您好,请使用以下代码

<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$convertedTemperature    = 0;

/* The condition is entered when the request is of POST type. */
if($_SERVER['REQUEST_METHOD'] == 'POST'){
   $temperature            = $_POST['temperature'];
   $fromConvertionUnit     = $_POST['fromConvertionUnit'];
   $toConvertionUnit       = $_POST['toConvertionUnit'];

/* if the temperature conversion are of same unit then no need for conversion */

   if($fromConvertionUnit == $toConvertionUnit){
       $convertedTemperature = $temperature;
   }else if($fromConvertionUnit == 'fahrenheit' && $toConvertionUnit == 'celcius') {

/* formula to convert Fahrenheit to Celcius */
       $convertedTemperature = ($temperature - 32) * 0.5556;
   }else if($fromConvertionUnit == 'celcius' && $toConvertionUnit == 'fahrenheit') {

/* formula to convert Celcius to Fahrenheit */
       $convertedTemperature = ($temperature * 1.8) + 32;
   }
}
?>
<!doctype html>
<html lang="en">
   <head>
       <meta charset="UTF-8">
       <title>Temperature Converter</title>
   </head>
   <body>
       <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
           <div>
<!-- If the temperature value has be submitted and has data then it will prefilled -->
               <label for="temperature">Temperature</label> <br/>
               <input type="number" name="temperature" id="temperature" value="<?php echo (!empty($temperature)) ? $temperature : '' ?>">
           </div>
           <div>
               <label for="fromConvertionUnit">Select From Convertion Unit</label><br/>
               <select name="fromConvertionUnit" id="fromConvertionUnit">
                   <option value="fahrenheit">Fahrenheit</option>
                   <option value="celcius">Celcius</option>
               </select>
       </div>
       <div>
               <label for="toConvertionUnit">Select To Convertion Unit</label><br/>
               <select name="toConvertionUnit" id="toConvertionUnit">
                   <option value="fahrenheit">Fahrenheit</option>
                   <option value="celcius">Celcius</option>
               </select>
       </div>
<!-- Once the page is submitted and conversion is done the respective values will be added in the following section -->
           <div>
       Converted Temperature <b> <?php  echo (!empty($temperature)) ? $temperature : '--' ?></b> Value From   <b><?php echo  (!empty($fromConvertionUnit)) ? $fromConvertionUnit : '--' ?></b> TO  <b><?php echo  (!empty($toConvertionUnit)) ? $toConvertionUnit : '--' ?></b> is <b><?php echo  (!empty($convertedTemperature)) ? $convertedTemperature : '--' ?><b/>
               <label for="converted_value">Converted Value</label><br/>
<input type="number" value="<?php echo (!empty($convertedTemperature)) ? $convertedTemperature : '0' ?>">
           </div>
           <div>
<input type="submit" value="Convert">
           </div>
       </form>
   </body>
</html>

如果美元邮政{需要数组键检查我该怎么做,对不起,我是PHP新手。如果$_POST在@Scuzzy有效,它只会检查POST methodsearch在San Google上是否发送了任何内容,你会找到很多入门教程,在那里你可以学习如何使用PHP制作表单:-.@Qirel是的,但是$fahrenheit和$concerties正在被覆盖十乘二if post语句。为什么有人要复制和粘贴这个?是什么使它起作用的,你做了什么更改?一个好的答案总是包括一些文本和描述。@Qirel我在代码中添加了一条注释。首先,他添加了两倍的条件,这是不必要的,公式没有正确应用。在他没有提到要重定向哪个页面,因此必须通过使用此代码正确处理:。因此,尽管如此,我还是让他使用我的代码。因此,我希望这能回答您的问题。请您重新投票表决我的答案。
<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$convertedTemperature    = 0;

/* The condition is entered when the request is of POST type. */
if($_SERVER['REQUEST_METHOD'] == 'POST'){
   $temperature            = $_POST['temperature'];
   $fromConvertionUnit     = $_POST['fromConvertionUnit'];
   $toConvertionUnit       = $_POST['toConvertionUnit'];

/* if the temperature conversion are of same unit then no need for conversion */

   if($fromConvertionUnit == $toConvertionUnit){
       $convertedTemperature = $temperature;
   }else if($fromConvertionUnit == 'fahrenheit' && $toConvertionUnit == 'celcius') {

/* formula to convert Fahrenheit to Celcius */
       $convertedTemperature = ($temperature - 32) * 0.5556;
   }else if($fromConvertionUnit == 'celcius' && $toConvertionUnit == 'fahrenheit') {

/* formula to convert Celcius to Fahrenheit */
       $convertedTemperature = ($temperature * 1.8) + 32;
   }
}
?>
<!doctype html>
<html lang="en">
   <head>
       <meta charset="UTF-8">
       <title>Temperature Converter</title>
   </head>
   <body>
       <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
           <div>
<!-- If the temperature value has be submitted and has data then it will prefilled -->
               <label for="temperature">Temperature</label> <br/>
               <input type="number" name="temperature" id="temperature" value="<?php echo (!empty($temperature)) ? $temperature : '' ?>">
           </div>
           <div>
               <label for="fromConvertionUnit">Select From Convertion Unit</label><br/>
               <select name="fromConvertionUnit" id="fromConvertionUnit">
                   <option value="fahrenheit">Fahrenheit</option>
                   <option value="celcius">Celcius</option>
               </select>
       </div>
       <div>
               <label for="toConvertionUnit">Select To Convertion Unit</label><br/>
               <select name="toConvertionUnit" id="toConvertionUnit">
                   <option value="fahrenheit">Fahrenheit</option>
                   <option value="celcius">Celcius</option>
               </select>
       </div>
<!-- Once the page is submitted and conversion is done the respective values will be added in the following section -->
           <div>
       Converted Temperature <b> <?php  echo (!empty($temperature)) ? $temperature : '--' ?></b> Value From   <b><?php echo  (!empty($fromConvertionUnit)) ? $fromConvertionUnit : '--' ?></b> TO  <b><?php echo  (!empty($toConvertionUnit)) ? $toConvertionUnit : '--' ?></b> is <b><?php echo  (!empty($convertedTemperature)) ? $convertedTemperature : '--' ?><b/>
               <label for="converted_value">Converted Value</label><br/>
<input type="number" value="<?php echo (!empty($convertedTemperature)) ? $convertedTemperature : '0' ?>">
           </div>
           <div>
<input type="submit" value="Convert">
           </div>
       </form>
   </body>
</html>