gpt4 book ai didi

PHP/Apache 错误 :406 Not Acceptable

转载 作者:可可西里 更新时间:2023-11-01 06:41:54 24 4
gpt4 key购买 nike

所以我今天收到了这个错误,我把它缩小到这个问题:

我的站点是我的音乐家页面 here .它允许人们进来查看我的照片、新闻、我的音乐和我参加的事件。

一切都很顺利,我手动将数据输入到 MySQL 中,让它自动传送到主页。现在我正在添加控制面板,以便我可以从 Web 添加、编辑、删除数据库中的内容。

除了添加/编辑事件的能力外,一切正常。我已将其缩小到无法输入 2 个 URL 或出现此错误的事实。我需要输入 2 个 URL(一个用于查看事件页面,一个用于购买门票)但我一次不能输入超过 1 个,有什么我可以做的来纠正或解决这个错误,无论是在 apache 还是我的代码?

<?php
$specevlink = "http://facebooklink.com";
$specgigtick = "http://ticketplacelink.com";
?>
<form method="post" action="index.php?page=editgigs">
<table>
<tr>
<td>
Event Page (Link):
</td>
<td style="text-align: left;">
<input type="url" name="giglink" value="<?php echo $specevlink; ?>" />
</td>
</tr>
<tr>
<td>
Event Tickets (Link):
</td>
<td style="text-align: left;">
<input type="url" name="gigtick" value="<?php echo $specgigtick; ?>" />
</td>
</tr>
</table><br />
<input type="submit" name="editgig" value="submit" /><br />
<br />
</form>

编辑:

我正在添加完整的代码行,这样您就可以准确地看到我在使用什么,

这是 step 1 的照片这是 step 2 的照片

这包含在 index.php 文件中:

<?php
if(isset($_GET["page"])){
$page = $_GET["page"];
} else {
$page = "";
}

if($page === "editgigs"){
include ('inc/logincheck.php');
?>
<div class="label">
EDIT GIGS
</div><br />
<div style="margin: 0 auto; text-align: center; width: 100%">
<form method="post" action="index.php?page=editgigs">
<?php
if(!isset($_POST['selectgigs'])){
if(!isset($_POST['updgigs'])){
?>
Select one of the options below:<br />
<br />
<select name="selgigs" style="max-width: 26%;">
<?php
while($gigsall_data = mysqli_fetch_array($gigsall_query)){
$gigid = stripslashes($gigsall_data['idgigs']);
$gigdate = stripslashes($gigsall_data['date']);
$gigname = stripslashes($gigsall_data['name']);
$gigdate = date('F j, Y', strtotime($gigdate));
?>
<option value="<?php echo $gigid; ?>">
<?php echo $gigdate; ?>: <?php echo $gigname; ?>
</option>
<?php
}
?>
</select><br /><br />
<input type="submit" name="selectgigs" value="Select" /><br />
<br />
<?php
}
}
if(isset($_POST['selectgigs'])){
$gigtoed = trim($_POST['selgigs']);
$specgig_query = mysqli_query($con, "SELECT * FROM `gigs` WHERE `idgigs` = '$gigtoed'") or die(mysqli_error($con));
$specgig_data = mysqli_fetch_array($specgig_query);
$specdate = stripslashes($specgig_data['date']);
$specname = stripslashes($specgig_data['name']);
$specevlink = stripslashes($specgig_data['evlink']);
$specgigtick = stripslashes($specgig_data['ticklink']);
$specnos = stripslashes($specgig_data['noshow']);
if($specnos === '0'){
$noshow = '';
} else {
$noshow = 'checked';
}
?>
<table style="border-spacing: 5px; padding: 10px;">
<tr>
<td>
Past Event?:
</td>
<td style="text-align: left;">
<input type="checkbox" name="nos" <?php echo $noshow; ?> /> Past Event
</td>
</tr>
<tr>
<td>
Date:
</td>
<td style="text-align: left;">
<input type="date" name="gigdate" value="<?php echo $specdate; ?>" required />
</td>
</tr>
<tr>
<td>
Name:
</td>
<td style="text-align: left;">
<input type="text" name="gigname" value="<?php echo $specname; ?>" required />
</td>
</tr>
<tr>
<td>
Event Page (Link):
</td>
<td style="text-align: left; width: 350px;">
<input type="url" name="giglink" style="width: 100%;" value="<?php echo $specevlink; ?>" />
</td>
</tr>
<tr>
<td>
Event Tickets (Link):
</td>
<td style="text-align: left; width: 350px;">
<input type="url" name="gigtick" style="width: 100%;" value="<?php echo $specgigtick; ?>" />
</td>
</tr>
</table><br />
<input type="hidden" name="gigid" value="<?php echo $gigtoed; ?>" />
<input type="submit" name="updgigs" value="Update" /><br />
<br />
<?php
}
if(isset($_POST['updgigs'])){
$newid = trim($_POST['gigid']);
$newdate = mysqli_real_escape_string($con, trim($_POST['gigdate']));
$newname = mysqli_real_escape_string($con, trim($_POST['gigname']));
$newlink = mysqli_real_escape_string($con, trim($_POST['giglink']));
$newtick = mysqli_real_escape_string($con, trim($_POST['gigtick']));
if(isset($_POST['nos'])){
$newnoshow = mysqli_real_escape_string($con, '1');
} else {
$newnoshow = mysqli_real_escape_string($con, '0');
}
echo $newid.' '.$newdate.' '.$newname.' '.$newlink.' '.$newtick.' '.$newnoshow.'<br />';
/*mysqli_query($con, "UPDATE `gigs` SET `date` = '$newdate', `name` = '$newname', `evlink` = '$newlink', `ticklink` = '$newtick', `noshow` = '$newnoshow' WHERE `idgigs` = '$newid' LIMIT 1") or die(mysqli_error($con));*/ //commented for testing
?>
<div style="text-align: center;">
<span class="confirm">
Successfully updated click <a href="index.php?page=events">here</a> to view it!
</span>
</div>
<?php
}
?>
</form>
</div>
<?php
}

仅供引用 - logincheck.php 只是检查用户是否已登录,如果没有,它会将用户发送回主页。

最佳答案

如果任何用户输入项以 http:// 开头,您的网站就会产生错误或 https:// .

当我尝试使用以 http:// 开头的链接时我得到了 406 Not Acceptable :

http://onkore.us/?blah=http://www.google.com

当我尝试这个时没问题:

http://onkore.us/?blah=www.google.com

您已经提到,如果链接不止一个,您就会遇到问题,但是当我尝试使用如下两个链接时,一切正常:

http://onkore.us/?blah1=www.google.com&blah2=www.google.com

但是,您可以找到并解决可能特定于您的服务器配置的问题,或者您可以尝试变通。

我不确定这个解决方法是否有帮助,但考虑到 http://https://正在制造问题,我想删除 http://https://来自用户输入。首先,您可能想尝试更改 <input type="url"<input type="text"这样 URL 格式就不会被强制执行。然后你可以使用 Javascript 删除出现的 http://https://在提交给服务器之前从用户在表单中输入。此外,您可以在填充表单值之前从数据中删除这些内容。

希望这对您有所帮助。

正则表达式:How to remove 'http://' from a URL in JavaScript

关于PHP/Apache 错误 :406 Not Acceptable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20154423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com