2017-12-17 9 views
-1

アップロードされた画像を他のテキストベースの情報とともに出力ページに表示することができません。私はPHPで作業するのがとても新しいので、ユーザーが製品に関するブログ記事をアップロードできるようにする練習プロジェクトに取り組んでいます。出力ページに表示する画像をアップロードするときに問題が発生するPHP

ユーザーが情報とアップロードした画像を送信するフォームがあります。その情報は、ブログの投稿とともに別のページに投稿されます。私の問題は、画像を残りの出力とともにページに表示させることです。

私はたぶん単純な、本当に愚かな間違いをしています。しかし、これほど長い間これを見た後、私はそれを理解することができません。私は "アップロードして画像php"の領域で考えることができるすべてをグーグルで試してみましたが、何も助けにはなりませんでした。

誰かが私を正しい方向に向けるのを助けることができたら、私はそれを高く評価します。 1アップロードフォーム用のページ、newpost.phpここ

があり

は、そのためのPHPです:

<?php 
session_start(); 
$msg = ""; 
include('../includes/db_connect.php'); 
if (!isset($_SESSION['user_id'])) { 
    header('Location: login.php'); 
    exit(); 
} 
if(isset($_POST['submit'])){ 

    $target ="images/".basename($_FILES['image']['name']); 

    $title = $_POST['title']; 
    $price = $_POST['price']; 
    $description = $_POST['description']; 
    $category = $_POST['category']; 
    $uploads_dir = 'image/'; 
    $image = basename($_FILES['image']['name']); 
    $title = $db->real_escape_string($title); 
    $price = $db->real_escape_string($price); 
    $description = $db->real_escape_string($description); 
    $user_id = $_SESSION['user_id']; 
    $description = htmlentities($description); 

    if($title && $price && $description && $category && $image){ 
     $query = $db->query("INSERT INTO post (user_id, title, price, description, category_id, image) VALUES('$user_id', '$title', '$price', '$description', '$category', '$image')"); 
     if($query){ 
      echo "product posted"; 
     }else{ 
      echo "error"; 
     } 
    }else{ 
     echo "missing data"; 
    } 

    if(move_uploaded_file($_FILES['image']['tmp_name'], $target)){ 
     $msg = "Image uploaded successfully"; 
    }else{ 
     $msg = "There was an error uploading the file"; 
    } 
} 

?> 

、ここでHTMLフォームです:今ここに

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST" enctype="multipart/form-data"> 
     <div class="form-group"> 
      <label>TITLE *</label> 
      <input type="text" name="title" class="form-control" 
      placeholder="Product title here" required> 
     </div> 
     <div class="form-group"> 
      <label>PRICE *</label> 
      <input type="text" name="price" class="form-control" 
      placeholder="Enter with the following format: 0.00 " required> 
     </div> 
     <div class="form-group"> 
      <label>CATEGORY</label> 
      <select name="category" class="form-control"> 
       <?php 
        $query = $db->query("SELECT * FROM categories"); 
        while($row = $query->fetch_object()){ 
         echo "<option value='".$row->category_id."'>".$row->category."</option>"; 
         } 
       ?> 
      </select> 
     </div> 
     <div class="form-group"> 
      <label>PRODUCT DESCRIPTION *</label> 
      <textarea type="textarea" name="description" class="form-control" placeholder="Write a description of the product here" required></textarea> 
     </div> 
     <div class="form-group"> 
      <label>IMAGE(S) *</label> 
      <input type="hidden" name="size" value="1000000"> 
      <input type="file" name="image"> 
     </div> 
     <div class="required"> 
      * indicates a required field 
     </div> 
     <button type="submit" name="submit" value="Submit" class="btn btn-default">POST PRODUCT</button> 
</form> 

投稿が表示されるページのPHPです:

<?php 
include('includes/db_connect.php'); 

$query = $db->prepare("SELECT post_id, title, price, description, image FROM post"); 
$query->execute(); 
$query->bind_result($post_id, $title, $price, $description, $image); 

?> 

ここまでは私のHTMLです。これは私の問題がどこにあるかです。ここで

<?php 
    while ($query->fetch()): 
?> 
<article> 

    <h2><?php echo $title?></h2> 
    <p>$<?php echo $price?></p> 
    <p><?php echo $description?></p> 
    <!-- I'm trying to get my image to show here and am having issues with that. The above information is visible and working as it should. The images just show up as broken image icons /--> 
    <p><?php echo "<img src='images/".$image."' >";?></p> 

</article> 

<?php endwhile?> 

は、私はポストのために働いています、私のSQLテーブルです:

CREATE TABLE `post` (
    `post_id` int(11) NOT NULL, 
    `user_id` int(11) NOT NULL, 
    `title` varchar(255) NOT NULL, 
    `price` text NOT NULL, 
    `category_id` int(11) NOT NULL, 
    `description` text NOT NULL, 
    `posted` datetime NOT NULL, 
    `image` varchar(300) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

が、この時に申し出のアドバイスを探します誰にもありがとう。ほんとうにありがとう。

+0

あなたは問題を絞り込む必要があります – nogad

+0

[ask]を読んでください。少なくとも実際の問題点を説明する必要があります。あなたが「喪失している」と言っているだけではそれをカットしません。 – CBroe

答えて

0

は、それはすべきではない: <p><?php echo "<img src='post/".$image."' >";?></p>

  1. あなたは画像が「画像」ディレクトリに存在していることを見たことがありますか?
  2. あなたはデータベースで画像を見たことがありますか? これにはphpmyadminを使用できます。
関連する問題