PHP检查$ _POST是否等于特定值

时间:2016-07-07 17:24:51

标签: php validation if-statement

我正在尝试让PHP $_POST显示其是否与表单选择相等。 我已经搜索/尝试了不同的东西,但似乎可以使它工作。

形式:

<html>
<body>
<form action="sig_action.php" method="post">
    Phone Lines:<br />
    <select name="phone_op_1">
        <option value="T ">T: Office Phone</option>
        <option value="F ">F: Office Fax</option>
        <option value="TF ">TF: Toll Free Office Phone</option>
        <option value="C ">C: Cell Phone</option>
        <option value="none">none</option>
    </select><br />
    <input type="submit" value="Submit">
</form>
</body>
</html>

表单处理程序:

<html>
    <?php
        if ($_POST['phone_op_1'] == 'none') {
        echo 'found none';
        } else {
        echo 'not found none';
        }
    ?>
</html>

3 个答案:

答案 0 :(得分:0)

从技术上讲,$ _POST是空的,如果你指定没有被选中,那么它就没有了#39;没有&#39;在变量

<html>
<body>
<form action="sig_action.php" method="post">
Phone Lines:<br />
<select name="phone_op_1">
    <option value="T ">T: Office Phone</option>
    <option value="F ">F: Office Fax</option>
    <option value="TF ">TF: Toll Free Office Phone</option>
    <option value="C ">C: Cell Phone</option>
    <option selected value="none">none</option>
</select><br />
<input type="submit" value="Submit">
</form>
</body>
</html>

答案 1 :(得分:0)

你的代码应该是:

<html>
    <?php
        if ($_POST['phone_op_1'] == 'none' || empty($_POST['phone_op_1'])) {
        echo 'found none';
        } else {
        echo 'not found none';
        }
    ?>
</html>

<html>
<body>
<form action="sig_action.php" method="post">
    Phone Lines:<br />
    <select name="phone_op_1">
        <option value="none" selected>none</option>
        <option value="T ">T: Office Phone</option>
        <option value="F ">F: Office Fax</option>
        <option value="TF ">TF: Toll Free Office Phone</option>
        <option value="C ">C: Cell Phone</option>
    </select><br />
    <input type="submit" value="Submit">
</form>
</body>
</html>

如果未选择任何内容,则不会设置该值。此外,如果您不希望他们能够重新选择&#34; none&#34;选项,然后还添加disabled attribute

旁注:

虽然在PHP中检查这样的值在技术上没有任何问题,但它可以被认为是不好的做法。一个好的做法是为此选项提供所有可能值的数组,然后检查$_POST['phone_op_1']是否存在$my_array = array( 'T ', 'F ', 'TF ', 'C ' ); $result = 'none'; if (in_array(strtoupper($_POST['phone_op_1']), $my_array)) { $output = strtoupper($_POST['phone_op_1']); } echo $output; 的数组中。然后,如果该数组中不存在,则假设该值为&#34; none&#34;

例:
import glob
path = 'E:\calpy_em27_neu\spectra_out_demo\140803\*'
files = glob.glob(path)

with open('info.txt', 'rt') as infofile:
    for count, line in enumerate(infofile):
        print count
print(len(files))

答案 2 :(得分:0)

尝试这样的事情:

if(!isset($_POST['phone_op_1']))
{
    // To determine if the var has a value
    // you can handle an error here
}
else
{
    // Do you logic here
}

或者尝试调试打印这样的值:

print_r($_POST);
die();