访问cookie时,提交按钮消失


Submit button disappears when accessing cookies

当我尝试使用内联php访问cookie时,无论出于何种原因,我的提交都会消失。

    <div id='add_form'>
        <form id='form' method='post' action='reg.do.php'>
            <label for='date'>Date of Charge:</label><input type='text' name='date' id='date' maxlength='10' value='<?php echo (isset($_POST['name']) ? sanitize($_POST['name']) : ''); ?>' ><br>
            <label for='vendor'>Vendor:</label><input type='text' name='vendor' id='vendor' value='<?php echo (isset($_POST['vendor']) ? sanitize($_POST['vendor']) : ''); ?>' ><br>
            <label for='amount'>Amount:</label><input type='text' name='amount' id='amount' value='<?php echo (isset($_POST['amount']) ? sanitize($_POST['amount']) : ''); ?>' ><br>
            <label for='service'>Description of Service:</label><input type='text' name='service' id='service' value='<?php echo (isset($_POST['service']) ? sanitize($_POST['service']) : ''); ?>' ><br>
            <label for='winner'>Winner:</label><input type='text' name='winner' id='winner' value='<?php echo (isset($_POST['winner']) ? sanitize($_POST['winner']) : ''); ?>' ><br>
            <label for='job'>Job Number:</label><input type='text' name='job' id='job' value='<?php echo (isset($_POST['job']) ? sanitize($_POST['job']) : ''); ?>' ><br>
            <input type='hidden' name='user' id='user' value='<?php echo (isset($_COOKIE['cookie_id']) ? sanitize($_COOKIE['cookie_id']) : ''); ?>' >
            <input type='submit' value='Submit'>
        </form>
    </div>

如果我去掉了最后一个隐藏的输入字段,或者将其内部的$_COOKIE访问权限更改为$_POST,那么提交按钮就会出现。我该怎么解决这个问题?

请参阅http://php.net/manual/ro/reserved.variables.cookies.php,我认为您需要在cookie上使用htmlspecialchars函数。

是否启用了display_errors?也许您的代码中有一个错误,所以php会中断,就像内联IF条件中的未关闭;-)

试试这个。。。

<div id='add_form'>
    <form id='form' method='post' action='reg.do.php'>
        <label for='date'>Date of Charge:</label><input type='text' name='date' id='date' maxlength='10' value='<?php echo (isset($_POST['name']) ? sanitize($_POST['name']) : ''); ?>' ><br>
        <label for='vendor'>Vendor:</label><input type='text' name='vendor' id='vendor' value='<?php echo (isset($_POST['vendor']) ? sanitize($_POST['vendor']) : ''); ?>' ><br>
        <label for='amount'>Amount:</label><input type='text' name='amount' id='amount' value='<?php echo (isset($_POST['amount']) ? sanitize($_POST['amount']) : ''); ?>' ><br>
        <label for='service'>Description of Service:</label><input type='text' name='service' id='service' value='<?php echo (isset($_POST['service']) ? sanitize($_POST['service']) : ''); ?>' ><br>
        <label for='winner'>Winner:</label><input type='text' name='winner' id='winner' value='<?php echo (isset($_POST['winner']) ? sanitize($_POST['winner']) : ''); ?>' ><br>
        <label for='job'>Job Number:</label><input type='text' name='job' id='job' value='<?php echo (isset($_POST['job']) ? sanitize($_POST['job']) : ''); ?>' ><br>
        <input type='hidden' name='user' id='user' value='<?php echo ( isset($_COOKIE['cookie_id']) ) ? sanitize($_COOKIE['cookie_id']) : ''; ?>' >
        <input type='submit' value='Submit'>
    </form>
</div>

顺便说一下。。。最好使用某种模板引擎,而不是内联php代码。