2

我正在编写一个小的电子邮件到文本的脚本,似乎每次我将“doMail()”函数包装在 if 语句中时,它都会失败,或者在函数内,如果我将 mail() 函数包装为一个 if 语句,它也失败了。

但是,如果我删除条件,它就像一个魅力?我应该怎么做,这可能是什么原因?

编辑:通过“......它失败了”,我的意思是它呼应了“出了点问题!” 就像它应该根据代码一样。

这是代码:

<?php
error_reporting(E_ALL);
session_start();
if (!$_SESSION['doesExist'] == true) 
    {
        echo "Session doesn't exist!";
        die();
    }

if (!isset($_POST['num']) || !isset($_POST['carrier']) || !isset($_POST['msg'])) 
    {
        echo "Failed!";
        die();
    }

$num = $_POST['num'];
$car = $_POST['carrier'];
$msg = $_POST['msg'];
$subject = '';
$head = 'From: admin@google.com' . "\r\n";

switch ($car)
    {
        case "att":
            $num .= "@txt.att.net";
            break;
        case "verizon":
            $num .= "@vtext.com";
            break;
        case "tmobile":
            $num .= "@tmomail.net";
            break;
    }

function doMail($toNum, $sub, $message, $headers)
    {
        if(mail($toNum, $sub, $message, $headers))
            {
                echo "Done!";
            }
        else
            {
                echo "Something went wrong!";
            }
    }

doMail($num, $subject, $msg, $head);

?>
4

1 回答 1

1

显然,根据此注释,该mail()函数可能会返回一个空字符串而不是布尔值,TRUE因此将FALSE在条件语句中进行评估,因为考虑了一个空值FALSE

于 2013-02-16T23:15:43.867 回答