Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-页面需要两次提交才能显示更改_Php_Html - Fatal编程技术网

PHP-页面需要两次提交才能显示更改

PHP-页面需要两次提交才能显示更改,php,html,Php,Html,我遇到了最讨厌的PHP。我需要提交页面两次,然后才对页面进行更改。例如如果在启用工具时提交页面,它将显示工具的设置:要显示这些设置,您需要提交两次页面。这个代码有什么问题 另一个例子: 代码: <?php if (isset($_POST["submit"])) { $string = '<?php $customoptions = ' . $_POST["customoptions"] . '; $primarycolor = "' . $_POST["

我遇到了最讨厌的PHP。我需要提交页面两次,然后才对页面进行更改。例如如果在启用工具时提交页面,它将显示工具的设置:要显示这些设置,您需要提交两次页面。这个代码有什么问题

另一个例子:


代码:

<?php
if (isset($_POST["submit"]))
{
    $string = '<?php
    $customoptions = ' . $_POST["customoptions"] . ';
    $primarycolor = "' . $_POST["primarycolor"] . '";
    $adminbg = "' . $_POST["adminbg"] . '";
    ?>';

    $fp = fopen("includes/userstyle.php", "w");
    fwrite($fp, $string);
    fclose($fp);
}
?>
   <form action="" name="customopt" method="post">
    <table>
        <tr>
            <td>Panel language</td>
            <td>
                <select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);">
                    <option><?php echo $lang['chooselanguage']; ?></option>
                    <option value="dashboard.php?lang=en">English</option>
                    <option value="dashboard.php?lang=nl">Dutch</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>Custom Style</td>
            <td>
                <select name="customoptions" id="customoptions">
                    <option <?php echo ($customoptions == true) ? 'selected' : '' ?> value="true">
                        <?php echo $lang['enabled']; ?>
                    </option>
                    <option <?php echo ($customoptions == true) ? 'selected' : '' ?> value="false">
                        <?php echo $lang['disabled']; ?>
                    </option>
                </select>
            </td>
        </tr>
        <?php
        if ($customoptions)
        {
            ?>
            <tr>
                <td>Primary Color</td>
                <td><input name="primarycolor" type="text" id="primarycolor" value="<?php echo $primarycolor; ?>"></td>
            </tr>
            <tr>
                <td>Background Color</td>
                <td><input name="adminbg" type="text" id="adminbg" value="<?php echo $adminbg; ?>"></td>
            </tr>
            <?php
        }
        ?>
    </table>
    <input type="submit" name="submit" value="<?php echo $lang['ok']; ?>">
</form>

好的,试着去做这件事与上面写着
if(isset($\u POST['submit'])的顶部有关。
如果未设置,请尝试给它一个默认值<代码>如果(!(设置($\u POST['submit']))

当您从字符串内部定义$string remove时,我将引用$customoptions变量$primarycolor和$adminbg

。您已经在一个php标记中了!虽然我不明白您为什么要这样做,但您必须提交两次的原因是,第一次提交时,它会运行脚本并更新文件。但是,在下次运行脚本之前,您不会看到更新的文件。如果这有任何意义的话。@LelioFaieta这是正确的,它需要将几个字符串写入一个PHP文件,这不应该是问题,我还在其他页面上使用该脚本,它工作正常,我很困惑o。o@WheatBeak奇怪的是,我在其他页面上使用了这个脚本,效果很好。只是这个页面不想第一次更新,这让人很困惑。一行代码肯定有问题,但我现在找了几个小时,什么也找不到。。任何东西..找到行
include“includes/userstyle.php”
(必须存在,但您的问题中没有显示)并将其放置在
if(isset($\u POST[“submit”]){}
块下;不,不是这样;当我更改它时,它根本不会写入文件