首页 > 解决方案 > 产品图片不显示我

问题描述

此代码用于添加和更新产品,但图像未显示。我认为它的路径错误,但我无法解决它。请在此代码中发现我出错的错误。产品图片未显示在产品页面上。我遵循A系列我编写了相同的代码但不工作但在教程中工作正常.Tankx提前

产品.php

<?php
require('top.inc.php');

if(isset($_GET['type']) && $_GET['type']!=''){
    $type=get_safe_value($con,$_GET['type']);
    if($type=='status'){
        $operation=get_safe_value($con,$_GET['operation']);
        $id=get_safe_value($con,$_GET['id']);
        if($operation=='active'){
            $status='1';
        }else{
            $status='0';
        }
        $update_status_sql="update product set status='$status' where id='$id'";
        mysqli_query($con,$update_status_sql);
    }
    
    if($type=='delete'){
        $id=get_safe_value($con,$_GET['id']);
        $delete_sql="delete from product where id='$id'";
        mysqli_query($con,$delete_sql);
    }
}

$sql="select product.*,categories.categories from product,categories where product.categories_id=categories.id order by product.id desc";
$res=mysqli_query($con,$sql);
?>
<div class="content pb-0">
    <div class="orders">
       <div class="row">
          <div class="col-xl-12">
             <div class="card">
                <div class="card-body">
                   <h4 class="box-title">Products </h4>
                   <h4 class="box-link"><a href="manage_product.php">Add Product</a> </h4>
                </div>
                <div class="card-body--">
                   <div class="table-stats order-table ov-h">
                      <table class="table ">
                         <thead>
                            <tr>
                               <th class="serial">#</th>
                               <th>ID</th>
                               <th>Categories</th>
                               <th>Name</th>
                               <th>Image</th>
                               <th>MRP</th>
                               <th>Price</th>
                               <th>Qty</th>
                               <th></th>
                            </tr>
                         </thead>
                         <tbody>
                            <?php 
                            $i=1;
                            while($row=mysqli_fetch_assoc($res)){?>
                            <tr>
                               <td class="serial"><?php echo $i?></td>
                               <td><?php echo $row['id']?></td>
                               <td><?php echo $row['categories']?></td>
                               <td><?php echo $row['name']?></td>
                               <td><img src="<?php echo PRODUCT_IMAGE_SITE_PATH.$row['image']?>"/></td>
                               <td><?php echo $row['mrp']?></td>
                               <td><?php echo $row['price']?></td>
                               <td><?php echo $row['qty']?></td>
                               <td>
                                <?php
                                if($row['status']==1){
                                    echo "<span class='badge badge-complete'><a href='?type=status&operation=deactive&id=".$row['id']."'>Active</a></span>&nbsp;";
                                }else{
                                    echo "<span class='badge badge-pending'><a href='?type=status&operation=active&id=".$row['id']."'>Deactive</a></span>&nbsp;";
                                }
                                echo "<span class='badge badge-edit'><a href='manage_product.php?id=".$row['id']."'>Edit</a></span>&nbsp;";
                                
                                echo "<span class='badge badge-delete'><a href='?type=delete&id=".$row['id']."'>Delete</a></span>";
                                
                                ?>
                               </td>
                            </tr>
                            <?php } ?>
                         </tbody>
                      </table>
                   </div>
                </div>
             </div>
          </div>
       </div>
    </div>
</div>
<?php
require('footer.inc.php');
?>

当我上传图片时,此错误显示在控制台中,而图片未显示在前端我尝试解决几个小时但我找不到错误。我知道我有一点错误但我找不到它。

GET http://localhost/AdminPanel/media/product/http://127.0.0.1/php/ecom/media/product/929442919_111.png 403 (Forbidden)

标签: phpmysql

解决方案


GetSet 是对的。在语句中可以很快发现错误GET,问题来自这里:

PRODUCT_IMAGE_SITE_PATH.$row['image']

我假设PRODUCT_IMAGE_SITE_PATH=http://localhost/AdminPanel/media/product/所以你可能需要清理数据$row['image']以删除不必要的东西。

重要提示:这不是推荐的解决方案,但它会让你更接近一些更合乎逻辑的东西。

改变:

PRODUCT_IMAGE_SITE_PATH.$row['image']

至:

PRODUCT_IMAGE_SITE_PATH . str_replace($row['image'], 'http://127.0.0.1/php/ecom/media/', '')

理想情况下,在将这个 HTML 吐出到浏览器之前,会有更多的数据验证和诸如此类的事情,但这应该会让你成为其中的一部分。


推荐阅读