无法在PHP if语句中访问$ _POST变量

时间:2012-04-18 12:28:28

标签: php

我将隐藏的变量从HTML传递到PHP页面。在PHP页面中,我想在表单中使用该变量。

<?php               
   $newVar=trim($_POST['newVar']);
   $subject = "new var is ---> $newVar";
?>

我无法在任何$newVar语句中使用if - 它显示为空白。如果我尝试回显$subject,则会显示$newVar的值,但当我尝试在任何$subject语句中回显if的值时,它不会向我显示值$newVar

我的代码是: html标记是:

<a href="#" class="applyNow"  onclick="document.sendVar.newVar.value='myVar'; document.sendVar.submit(); return false">New Variable</a>

<form method="post" name="sendVar" action="test.php" style="display:none;">
    <input type="hidden" name="newVar" value="">
    <input type="submit" value="Send form!">
</form>

PHP:

<?php               
   $newVar=trim($_POST['newVar']);
   $subject = "new var is ---> $newVar";
?>


if(isset($_POST['submit'])) {
    if(!isset($hasError)) {
       $from_add = "test@test.com";         
       $emailTo = 'shruti@example.com';                 
       $headers = "From: $from_add \r\n";
       $headers .= "Reply-To: $from_add \r\n";
       $headers .= "Return-Path: $from_add\r\n";
       $headers .= "X-Mailer: PHP \r\n";

       mail($emailTo, $subject, $headers);
 // HERE in $subject.. value of newVar is not displaying


       $emailSent = true;
     }

    $from_add = "do-not-reply@example.com";     
    $headers = "From: $from_add \r\n";
    $headers .= "Reply-To: $from_add \r\n";
    $headers .= "Return-Path: $from_add\r\n";
    $headers .= "X-Mailer: PHP \r\n";
}
?>

1 个答案:

答案 0 :(得分:3)

您似乎已经使用?>结束了PHP代码部分而没有使用<?php启动新代码部分 - 尽管我会假设这只是一个复制/粘贴错误,因为您没有抱怨你可以在浏览器中看到你的PHP源代码。

您遇到的实际问题是您正在检查是否设置了$_POST['submit'],但它永远不会,因为您没有为任何表单控件submit命名,因此没有代码在if块中将永远执行。

在您的HTML中,更改:

<input type="submit" value="Send form!">

...为:

<input type="submit" name="submit" value="Send form!">

......它应该有用。