我有显示
的网页脚本406 Not Acceptable Error
在此服务器上找不到所请求资源/admincp/settings.php的适当表示。
此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。“
问题是它适用于某些托管服务提供商。任何人都可以告诉我为什么会出现这个错误
<?php
$act=isset($_GET['act'])?$_GET['act']:"";
if($act=='sub'){
$name = $mysqli->escape_string($_POST['site']);
$siteurl = $mysqli->escape_string($_POST['siteurl']);
$keys = $mysqli->escape_string($_POST['keywords']);
$desc = $mysqli->escape_string($_POST['descrp']);
$email = $mysqli->escape_string($_POST['email']);
$active = $mysqli->escape_string($_POST['active']);
$template = $mysqli->escape_string($_POST['template']);
$mysqli->query("UPDATE settings SET name='$name',siteurl='$siteurl',keywords='$keys',descrp='$desc',email='$email',active='$active',template='$template' WHERE id=1");
if($_FILES["file"]["name"]!=''){
move_uploaded_file($_FILES["file"]["tmp_name"], "../images/logo.png");
}?>
<div class="msg-ok">updated successfully.</div>
<?php }
if($settings = $mysqli->query("SELECT * FROM settings WHERE id='1'")){
$setrow = mysqli_fetch_array($settings);
$name=$setrow['siteurl'];
$settings->close();
}else{
printf("Error: %s\n", $mysqli->error);
}
?>
<form action="settings.php?act=sub" method="post" enctype="multipart/form-data">
<label class="artlbl">Site Name</label>
<div class="formdiv">
<input type="text" name='site' value='<?php echo $setrow['name']?>'/>
</div>
<label class="artlbl">Logo (182px x 47px)</label>
<div class="formdiv">
<input type='file' class="file" name='file'/>
</div>
<div class="clear"></div>
<label class="artlbl">Site URL (without "http://" and end "/")</label>
<div class="formdiv">
<input type="text" name='siteurl' value='<?php echo $setrow['siteurl']?>'/>
</div>
<div class="clear"></div>
<label class="artlbl">Meta Keywords (Separated by Commas)</label>
<div class="formdiv">
<textarea name='keywords' cols=40 rows=5 ><?php echo $setrow['keywords']?></textarea>
</div>
<label class="artlbl">Meta Description</label>
<div class="formdiv">
<textarea name='descrp' cols=40 rows=5 ><?php echo $setrow['descrp']?></textarea>
</div>
<label class="artlbl">Email</label>
<div class="formdiv">
<input type="text" name='email' value='<?php echo $setrow['email']?>'/>
</div>
<label class="artlbl">Approve</label>
<div class="formdiv">
<select name="active" id="active">
<?php if ($setrow['active']==1){?>
<option value="1">ON</option>
<option value="0">OFF</option>
<?php }else{?>
<option value="0">OFF</option>
<option value="1">ON</option>
<?php }?>
</select>
</div>
<div class="clear"></div>
<label class="artlbl">Template</label>
<div class="formdiv">
<select name="template" id="template">
<option value="<?php echo $setrow['template'];?>"><?php echo ucfirst($setrow['template']);?></option>
<?php
foreach(glob('../templates/*', GLOB_ONLYDIR) as $dir) {
$TemplateDir = substr($dir, 13);
$TemplateName = ucfirst($TemplateDir)
?>
<option value="<?php echo $TemplateDir;?>"><?php echo $TemplateName;?></option>
<?php }?>
</select>
</div>
<div class="clear"></div>
</br>
<div class="formdiv">
<div class="sbutton"><input type="submit" id="submit" value="Update Site Settings"/></div>
</div>
</form>
答案 0 :(得分:2)
<select name="active" id="active">
,您可以将name
以及id
更改为active
以外的其他内容,因为active
是关键字。
答案 1 :(得分:1)
这个问题是由apache的mod_security引起的,如果它包含链接,它会扫描请求并阻止它。
尝试在没有 http:// 部分的情况下提交 $ _ POST [&#39; siteurl&#39;] 的此值,这将解决此问题但是,您仍应该就该问题与您的托管服务提供商联系。