在if语句中嵌套条件

时间:2012-01-23 22:40:53

标签: php if-statement conditional-operator

我希望在if语句的另一个条件(如果有意义)中嵌套两个条件。让我解释一下。

我有一张表格。我有名字,电子邮件,然后我有两个textareas(一个由$ designer_program表示,一个由$ _designer_language表示)。一个textarea适用于填写表单的设计人员,一个textarea适用于填写表单的程序员。他们只需要填写一个,但必须填写一个。所以我在PHP中使用的if语句如下:

if (isset($_POST['designer_name']) && isset($_POST['designer_email']) && isset($_POST['designer_program'])){

etc.

这很好,但我想做Designer_program或designer_language。基本上我尝试过这样的事情:

if (isset($_POST['designer_name']) && isset($_POST['designer_email']) && isset(($_POST['designer_program']) || ($_POST['designer_language'])){

但是我想你不能像那样嵌套条件?我确信有一个简单的语法解决方案,但我找不到它。谢谢。

修改

这是完整的代码:

<?php

if (isset($_POST['designer_name']) && isset($_POST['designer_email']) && isset($_POST['designer_program'])){
    $designer_name = $_POST['designer_name'];
    $designer_email = $_POST['designer_email'];
    $designer_program = $_POST['designer_program'];
    $designer_language = $_POST['designer_language'];

    if(!empty($designer_name) && !empty($designer_email) && !empty($designer_program)){
        $to = 'example@example.com';
        $subject = 'Test Application: '.$designer_name;
        $body = "Test Application";
        $headers = 'From: '.$designer_email;

        if (@mail($to, $subject, $body, $headers)){
                echo '<script type="text/javascript">document.location.href="thankyou.php";</script>';
        }

        }
        else{
        echo '<script type="text/javascript">
        window.alert("Please fill out all fields.");
        </script>';
        }

    }
?>

1 个答案:

答案 0 :(得分:1)

您的逻辑失败,因为所有文本区域都被发送,无论它们是否包含信息。

您需要对POST进行一次检查,然后使用您对非空值而不是设置值的条件进行检查。

if (isset($_POST['designer_name'])
{
    if (!empty() && !empty() && ( !empty() || !empty() ))
    {