我遇到过最烦人的PHP。我需要在对页面进行更改之前提交页面TWICE。例如;如果您在启用工具时提交页面,它将显示工具的设置:要显示这些设置,您需要提交两次页面。这段代码有什么问题?
CODE:
<?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>
PS:我知道这不是一个在php文件中保存设置的好方法,但这只是一个测试,它永远不会上线。
答案 0 :(得分:0)
好的,尝试这样做与表示if (isset($_POST['submit']))
的顶部有关
如果未设置,请尝试并为其指定默认值。 if (!(isset($_POST['submit'])))
我引用了$ customoptions变量$ primarycolor和$ adminbg