使用$ _POST时,php变量超出范围

时间:2014-10-09 15:51:10

标签: php variables post scope global

我有变量$ a和$ location。但是,当我按下“提交”时,按钮变量已超出范围。我可以从输入框T2传入变量,但我无法设法将其设置为“输入框”。这是一个常规变量。我添加了echo $ b来调试它,我确实获得了验证条件语句为真的输出。

<?php
[...]

$a = '5';
$location = 'home';

if(isset($_POST['submit'])) {
    $location=$_POST['T2'];
    echo $location;
    echo $a;
    $b = '6';
    echo $b;
    [...]
}
?>

<input type="text" name="T2" value="<?php echo $location; ?>">
<button type="submit" name="submit" value="create">Submit</button>

3 个答案:

答案 0 :(得分:1)

$a="Testing";
echo $a;

if(isset($_POST['submit'])) {         // you're not getting here
    $location=$_POST['T2'];     
    echo $a;
    echo "Testing one two three";    // even this won't show :)
}

只有一个合理的理由让第二个回声不起作用,即你的if条件没有评估为真。没有其他原因可以导致这种情况。现在检查表单上名为submit的字段或按钮:)

一个简单的print_r($_POST);会告诉您发布的所有信息,如果submit也已发布,您可以查看该信息。

答案 1 :(得分:1)

我可以告诉你,你错过了表单标签以及应该post的方法,至少是你发布的代码。

旁注:如果您发布的内容不是完整代码,请执行此操作。以下作品在提交时打印home56

我相信这就是预期的结果。

<?php

$a = '5';
$location = 'home';

if(isset($_POST['submit'])) {
    $location=$_POST['T2'];
    echo $location;
    echo $a;
    $b = '6';
    echo $b;

}
?>

<form action="" method = "post">
<input type="text" name="T2" value="<?php echo $location; ?>">
<input type="submit" name="submit" value="create">

</form>

旁注:如果您愿意,可以保留现在的按钮,而不是我测试过的输入:

<button type="submit" name="submit" value="create">Submit</button>

脚注:

两者[...] - 是否相关?我敢打赌有。

答案 2 :(得分:0)

通过在隐藏的输入中回显它来实现它

<input type="hidden" name="myvar" value="<?php echo $a; ?>">

然后使用$ _POST提取它

$a=$_POST['myvar'];