2015-02-02 2 views
-1

Я создаю веб-базу данных, которая позволяет пользователям загружать изображение профиля в свою учетную запись, если они не хотят добавлять фотографию. Я хочу, чтобы изображение по умолчанию отображалось вместо пустой тега изображения. По какой-то причине, если файл не выбран, blob в MySQL все равно заполняется, и я не знаю, что. Есть ли что-то, что мне нужно изменить в базе данных или фрагмент кода, который мне нужно добавить?Загрузка файла - PHP MySQL

Код для ввода в данных:

$username = mysql_prep($_POST["username"]); 
     $password = password_encrypt($_POST["password"]); 
//  $confirm = password_encrypt($_POST["confirm"]); 
     $firstName = mysql_prep($_POST["firstName"]); 
     $lastName = mysql_prep($_POST["lastName"]); 
     $File = $_FILES['fileField']['name']; 
     $tempnum = rand(20, 980780980); 
     $newfile = $tempnum . $File; 

//  if("password" != "confirm") { 
//   $_SESSION["message"] = "ERROR: Passwords must match."; 
//  }else{ 
      if (file_exists("images/profile_pictures/" . $newfile)) { 
       echo $newfile . " already exists. "; 
      } else { 
       $query = "INSERT INTO users ("; 
       $query .= " username, password, firstName, lastName, image"; 
       $query .= ") VALUES ("; 
       $query .= " '{$username}', '{$password}', '{$firstName}', '{$lastName}', '{$newfile}'"; 
       $query .= ")"; 
       $result = mysqli_query($connection, $query); 
       copy($_FILES['fileField']['tmp_name'], 'images/profile_pictures/' . $newfile); 
       if ($result > 0) { 
        // Success 
        $_SESSION["message"] = "User created."; 
        redirect_to("add_user.php"); 
       } else { 
        // Failure 
        $_SESSION["message"] = "User creation failed."; 
       } 
      } 
     } 
// } 
} 
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="add_user.php"> 
       <h2>Create New User</h2> 
       <p> 
        <label for="fname">First Name:</label> 
        <input id="fname" type="text" class="textbox" name="firstName" value="" /> 
       </p> 
       <p> 
        <label for="lname">Last Name:</label> 
        <input id="lname" type="text" class="textbox" name="lastName" value="" /> 
       </p> 
       <p> 
        <label for="uname">Username:</label> 
        <input id="uname" type="text" class="textbox" name="username" value="" /> 
       </p> 
       <p> 
        <label for="pword">Password:</label> 
        <input id="pword" type="password" class="textbox" name="password" value="" /> 
       </p> 
       <p> 
        <label for="pword">Confirm Password:</label> 
        <input id="pword" type="password" class="textbox" name="confirm" value="" /> 
       </p> 
<!--    <p>--> 
<!--     <label for="profile">Profile Picture:--> 
<!--     <input id="fileField" type="file" name="fileField"></label>--> 
<!--    </p>--> 
       <input type="submit" class="button" name="submit" value="Add User" onclick="return confirm('Do you wish to add a new user?');"/> 
       <p><a href="manage_users.php" class="link">Cancel</a></p> 
      </form> 
     </div> 

Код для отображения данных:

<table id="users"> 
       <tr> 
        <th style="text-align: left; width: 75px;">Image</th> 
        <th style="text-align: left; width: 150px;">First Name</th> 
        <th style="text-align: left; width: 150px;">Last Name</th> 
        <th style="text-align: left; width: 150px;">Username</th> 
        <th style="text-align: left; width: 35px;">Actions</th> 
       </tr> 
       <?php while($user = mysqli_fetch_assoc($user_set)) { ?> 
        <tr> 
         <td> 
         <?php 

          if($user["image"] == ""){ 
          echo "<img id='profilepic' src='images/profile_pictures/default.gif' alt='Default Profile Pic'>"; 
          } else{ 
          echo "<img id='profilepic' src='images/profile_pictures/".$user['image']."' />"; 
          }?> 
         </td> 
         <!--htmlentities converts all applicable characters to html entities--> 
         <td><?php echo htmlentities($user["firstName"]); ?></td> 
         <td><?php echo htmlentities($user["lastName"]); ?></td> 
         <td><?php echo htmlentities($user["username"]); ?></td> 
         <td style="text-align: center;"><a href="edit_users.php?id=<?php echo urlencode($user["userId"]); ?>"> 
           <img id="icon" src="images/edit.png" alt="Edit Icon"></a> 
         <a href="delete_user.php?id=<?php echo urlencode($user["userId"]); ?>" onclick="return confirm('Are you sure?');"> 
          <img id="icon" src="images/delete.png" alt="Delete Icon"></a></td> 
        </tr> 
       <?php } ?> 
      </table> 
+1

Вы можете сохранить расположение изображения вместо самого изображения в базе данных. Теоретически проверяйте, загружено ли изображение, если не сохранить местоположение defualt pic в ячейке. – CAO

ответ

0

Вы пытались использовать NULL вместо if($user["image"] == "") в коде для отображения данных?

Попробуйте это: if(!$user["image"])

+0

Спасибо за ответ. Да, я пробовал это, но что-то происходит в базе данных, хотя ничего не выбрано? Так что на самом деле это не так. – Kate

+0

Затем инвертируйте код :) Попробуйте положить часть «if» в форму, так что, когда пользователь не использует изображение, он получает значение по умолчанию. Когда вам нужно отобразить его, это не имеет значения, прежде чем он будет использоваться по умолчанию или по умолчанию. Вы просто выбираете информацию в своей базе данных. – Clover