PHP回显值在条件if之外

时间:2014-02-05 21:34:47

标签: php pdo

我有以下PHP代码:

    <?php
    //Connection to PDO Database
    ?>

    <form method="post" action="">
    <p>Busisness telephone 1</p><input id="business_telephone_01" name="business_telephone_01" tabindex="auto" value="<?php echo $result['business_telephone_01']; ?>" type="text" />
    <input name="submit" type="submit" value="Save Changes"></form>

    <?php
    //Get from Form

    if((empty($_POST['submit']) === false)){
    $business_telephone_01 = $_POST['business_telephone_01'];
//Formating of telephone numbers
$message = 'This message I want to display';
echo 'This is another message';
      }

echo $message;
    //Code to update table through PDO
?>

无论我在哪里做回声是否是 echo'这是条件括号内的另一个消息'; 或_ echo $ message; _括号外没有任何回显且没有错误是正在展示。

html表单和PDO正在正常运行并且正在更新但没有任何回应。错误日志中没有显示错误。

更新

  • 如果我使用if((empty($_POST['submit']) === false)){,我会获得PHP 注意:未定义的变量:hello
  • 如果我使用if (isset($_POST['submit'])) {,我会收到PHP通知: 未定义的变量:hello
  • 如果我使用if (!isset($_POST['submit'])) {,它会给我一个我使用的未定义变量的列表,例如从 我的代码在business_telephone_01
  • 之上

我的完整代码

if((empty($_POST['submit']) === false)){
//Get from Form
        $address_building_name = $_POST['address_building_name'];
        $address_building_number = $_POST['address_building_number'];
        $address_street = $_POST['address_street'];
        $address_locality = $_POST['address_locality'];
        $address_postcode = $_POST['address_postcode'];
        $address_country = $_POST['address_country'];

//Formating of address
        $address_building_number = strtoupper($address_building_number);
        $address_building_number = str_replace(' ','',$address_building_number);
        $address_building_name = ucwords($address_building_name);
        $address_street = ucwords($address_street);
        $address_locality = ucwords($address_locality);
        $address_postcode = strtoupper($address_postcode);
        $address_country = ucwords($address_country);

        echo 'Hello';
        $good = 'Good bye';

    } 
    echo $good;

2 个答案:

答案 0 :(得分:2)

我愿意打赌$message没有被回应,因为它从未被初始化。 (应该初始化的if块未被执行,因为条件失败。)

首先,您应该使用isset来确定是否已提交POST变量:

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

或者,看看它是否 已提交:

if (!isset($_POST['submit'])) {

其次,您应该对您的程序启用错误报告,并告诉我们您获得的错误(如果有):

error_reporting(E_ALL);
ini_set("display_errors", 1);

您可以在开始<?php行之后将这两行添加到脚本的最顶部,这有助于了解情况。

答案 1 :(得分:0)

问题可能是$ message变量永远不会在if语句中设置。 如果“if”条件不匹配,则永远不会设置$ message,并且您将无法回显该值。

要进行测试,可以在启动if语句之前将$ message变量设置为某个值。

$message = 'condition failed';
if(isset($_POST['submit'])){
....
$message = 'This message I want to display';
}
echo $message;

如果满足条件,则会回显“此消息我要显示”。 如果条件失败,它将回显“条件失败”;

快速脏测试,但会告诉你$ message变量是否会在'if'语句中初始化。