【问题标题】:is currently unable to handle this request. HTTP ERROR 500 not finding error in source code目前无法处理此请求。 HTTP ERROR 500 在源代码中找不到错误
【发布时间】:2021-08-06 02:29:10
【问题描述】:

我的代码有什么错误?与数据库的连接是完美的。 代码如下:

<?php
   include 'header.php';
   
   ?>
<!DOCTYPE html>
<html>
   <head>
      <title>Admin/Home</title>
      <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
      <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js" integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf" crossorigin="anonymous"></script>
   </head>
   <body>
      <style>
         img{ 
         height: 200px;
         width: 40px;
         padding-top: 30px;
         }
      </style>
      <br><br><br><br>
      <div class="container">
         <div class="row">
            <?php
               $link = mysqli_connect('', '', '', '');
               
               $S = "select * from image";
               $res = mysqli_query($link, $S);
               while ($row = mysqli_fetch_assoc($res))
               {
               
               ?>
            <div class="card col-md-2">
               <p class="text-capitalize text-center text-info mt-2"><?php echo $row['category'] ?></p>
               <img class="card-img-top" src="<?php echo $row['image']; ?>">
               <br>
               <a href="delete.php?id=<?php echo $row['id']; ?>" class="btn btn-danger">delete</a>
               <br><br>
            </div>
            <br><br>
            <?php
               }
               ?>
         </div>
      </div>
      <br><br>
   </body>
</html>

这是创建的管理面板,当打开管理面板时它要求登录。登录成功,它重定向到管理面板并弹出一条成功登录的消息。但之后抛出错误帮助我解决这个问题。

【问题讨论】:

  • 错误 500 只是针对用户而非开发人员的通用消息,并且故意不提供有用信息。检查 PHP 错误日志以获取有关实际错误的信息。
  • 旁注:不要使用GET 来执行删除操作。意外访问这样的链接可能会导致意外的数据丢失。使用带有POST 方法的表单。

标签: php html css sql


【解决方案1】:

Http Response code 500 通常会在 Web 服务器配置不正确或您的 php 代码中有一些错误时抛出,有时如果服务器是 Linux,开发人员无权访问 /var/log 文件夹中的日志-基于,因此仅出于调试目的,您可以更改 ini 设置以找到确切的错误,这对我的调试有很大帮助,我们无权访问日志

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
ini_set('error_reporting', 32767);

include 'header.php';

这将在页面上打印错误/异常,您可以修复它并将其从代码中删除。

注意:不要在生产代码中使用它

【讨论】:

  • 谢谢,不过不知道怎么用。我对 PHP 非常陌生,所以你能解释一下我以供将来使用吗?
  • @VoraArshit 您只需要在任何包含/要求之前添加这些行,仅用于调试目的。问题解决后,在将代码移至生产环境之前将其删除
【解决方案2】:

感谢您对我的问题的所有回复!已从其他文件中找到此问题的解决方案,再次感谢您的宝贵时间!

【讨论】:

  • 你能澄清一下“来自[一个]其他文件”的意思吗?此外,请务必对任何帮助您解决问题的答案进行投票,如果其中一个直接解决了问题,则将其标记为已接受的答案。
  • 错误不大,header.php中有一个if条件没有结束{}。我是一名正在从事 PHP 迷你项目的大学生,并免费托管了这个项目,但它显示错误,所以我在这里问。
【解决方案3】:

我相信这会奏效

 $Output = ''; // Initiate variable which will hold the data you want

 $S="select * from image";
        
 $res=mysqli_query($link,$S);
 
 if(mysqli_num_rows($res) > 0){
        
    while($row=mysqli_fetch_assoc($res)){
            
        $item_id = $row['id'];
        $category = $row['category'];
        $image = $row['image'];
            
        $Output .= '<div class="card col-md-2">
                        <p class="text-capitalize text-center text-info mt-2">' . $category . '</p>
                        <img class="card-img-top" src="' . $image . '" /><br />
                        <a href="delete.php?id=' . $item_id . '" class="btn btn-danger">delete</a><br />
                    </div>';
                  
    }
            
 }
            
if(isset($Output)){
        
    echo $Output;
        
}

【讨论】:

  • 是什么让您确定这会奏效?您引入了哪些与 OP 代码不同的更改?我没有注意到逻辑上的任何变化,据我所知,您只是提供了一种不同的方法来实现相同的目标。
  • 你花在写那个长句子上的时间最好是给我们一个替代答案。它会起作用的。有趣的是您没有看到任何变化
  • 1) 我特意把它做成问题的形式,希望你能回答。请记住,您不是为 OP 写答案,而是为所有未来的读者写答案。带有解释的答案更有价值。那么 - 你为什么相信这可以解决问题? 2)我从不为不清楚的问题写答案。现在,我们所拥有的只是对出了什么问题的猜测,因为没有指定错误。
  • 1.0 浪费时间。欧普先生。沃拉问了这个问题,我期待着,但他/她会告诉我其他任何事情。 2.0 你认为扎克伯格或拉里佩奇什么都知道吗?事实上,谷歌的出现是由于他们的教授给他和谢尔盖布林的一项任务
  • 换句话说,您只是在猜测,并没有真正理解您提出的更改。您正在以不同的方式创建完全相同的输出。由于 OP 的输出中不存在语法错误,我真的看不出用构建稍后输出的 HTML 字符串替换直接 HTML 输出会如何改变任何事情。最终结果将完全相同。如果我遗漏了什么,请指出。而且我完全不明白您对 Google 的评论有何意义。
【解决方案4】:
$mysqli = new mysqli("localhost","my_user","my_password","my_db");

您需要设置正确的数据库连接

如果您在本地环境中工作,那么连接应该如下所示

$mysqli = new mysqli("localhost","root","","your_db_name");

【讨论】:

  • 他已经在connection to the database is prefect.问题中提到了这一点
  • 空字符串可能只是 OP 掩盖了他们的实际凭据。
猜你喜欢
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
  • 2018-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多