PHP中的理想权重

PHP中的理想权重,php,html,Php,Html,事情是这样的,我有一个学校作业要做,我的老师想让我用PHP做一个应用程序,根据一个女人和一个男人的身高来计算理想体重。就像这样,男人会把它的高度放在一个文本框中,然后应用程序会做高度-58.0,女人是一样的,但它的高度-44.7。我试着这么努力去做,但我不知道为什么当我点击提交按钮时,我得到的只是一个空屏幕。。。这是我的第一个PHP应用程序,我现在正在研究它,有人能帮我吗 以下是HTML代码: <Doctype HTML> <html lang = "pt-br"> &l

事情是这样的,我有一个学校作业要做,我的老师想让我用PHP做一个应用程序,根据一个女人和一个男人的身高来计算理想体重。就像这样,男人会把它的高度放在一个文本框中,然后应用程序会做高度-58.0,女人是一样的,但它的高度-44.7。我试着这么努力去做,但我不知道为什么当我点击提交按钮时,我得到的只是一个空屏幕。。。这是我的第一个PHP应用程序,我现在正在研究它,有人能帮我吗

以下是HTML代码:

<Doctype HTML>
<html lang = "pt-br">
<head>
    <title>Peso Ideal!</title>
</head>
<body>
    <form method="POST" action="peso.php">
        <p><label for="altura">Altura</label><br />
            <input type="TEXT" name="altura"></p>

            <input type="RADIO" name="sexo" value="Masculino">
                Masculino

            <input type="RADIO" name="sexo" value="Feminino">
                Feminino<br /> <br />

            <input type="SUBMIT" name="btn1" value="Calcular!">
</body>
</html>

比索理想!
阿尔图拉

男性的 女性化

以及PHP脚本:

<?php
$altura = $_POST['altura'];
$sexo = $_POST['sexo'];
$peso_masc = $sexo - 50.0;
$peso_fem = $sexo - 60.0;

    if(null !== (['btn1'])){
        $sexo_selecionado = ['sexo'];

        if($sexo_selecionado=='Masculino'){
            echo $peso_masc;
        }
        else if($sexo_selecionado == 'Feminino'){
            echo $peso_fem;
        }
    }
?>

谢谢…

改变

if(null !== (['btn1'])){
    $sexo_selecionado = ['sexo'];

应该可以工作。

这里是错误

if(null !== (['btn1']))
你不能访问任何东西。换成

if(null !== $_POST['btn1'])

不是最复杂的,但很直截了当:

if (isset($_POST['btn1'])){
    if ($_POST['sexo'] == 'Masculino') {
        $peso = $_POST['altura'] - 50;
    }
    else {
        $peso = $_POST['altura'] - 60;
    }
    echo $peso;
}

您的php有几个问题。我在你出错的地方添加了评论

<?php
$altura = $_POST['altura'];
$sexo = $_POST['sexo'];
$peso_masc = $sexo - 50.0; // you're subtracting the value from the male/female here, when you should be subtracting it from $altura
$peso_fem = $sexo - 60.0; //same here

if(null !== (['btn1'])){ //this should be $_POST['btn1'], also, you should use isset()
    $sexo_selecionado = ['sexo']; // this isn't how you do strings, it should be $sexo, but there's no reason for this variable, you can just test $sexo below

    if($sexo_selecionado=='Masculino'){
        echo $peso_masc;
    }
    elseif($sexo_selecionado == 'Feminino'){
        echo $peso_fem;
    }
}
?>

此外,您没有理由将$\u POST变量分配给其他变量,因此您可以将代码压缩为:

<?php

if(isset($_POST['btn1'])){

    if($_POST['sexo']=='Masculino'){
        echo $_POST['altura'] - 50;
    }
    elseif($_POST['sexo'] == 'Feminino'){
        echo $_POST['altura'] - 60;
    }
}
?>


如果您看到的是白色页面:可能发生了被抑制的错误。请参阅php.net上的错误报告和显示错误。另外:这个逻辑应该如何工作:
$sexo-50.0
$sexo
要么是“阳性”,要么是“阴性”,因此您试图计算
阳性-50.0
。那是不可能的。:-)如果您对整个实现给出反馈:
$\u POST['altura']
也不能保证是浮点/整数,因此您应该转换提供的值(如果无法转换,则抛出异常/错误)。@Bjorn True,他的代码中有很多东西需要修改。非常好,不好意思问这么简单的问题!哈哈哈,谢谢你,伙计!很乐意帮忙。不要感到羞耻每个人都从某个地方开始!
<?php
$altura = $_POST['altura'];
$sexo = $_POST['sexo'];
$peso_masc = $altura - 50.0;
$peso_fem = $altura - 60.0; 

if(isset($_POST['btn1'])){

    if($sexo=='Masculino'){
        echo $peso_masc;
    }
    elseif($sexo == 'Feminino'){
        echo $peso_fem;
    }
}
?>
<?php

if(isset($_POST['btn1'])){

    if($_POST['sexo']=='Masculino'){
        echo $_POST['altura'] - 50;
    }
    elseif($_POST['sexo'] == 'Feminino'){
        echo $_POST['altura'] - 60;
    }
}
?>