Member 11241887 Ответов: 1

Почему мой столбец image в базе данных phpmyadmin не отображает имя файла изображения, которое я вставил, а вместо этого отображает [BLOB - 10 B]?


почему мой столбец image в базе данных phpmyadmin не вставляет имя файла изображения, которое я вставил, а вместо этого отображает [BLOB - 10 B]? и когда я пытаюсь извлечь или отобразить вставленное изображение, оно отображает пустое квадратное поле, а не само изображение.

Что я уже пробовал:

я попытался использовать код .base64 для извлечения и отображения изображения, но тот же результат, все еще появляется пустое квадратное поле, а не вставленное изображение:

вот мой код (вставка изображения)
<?php
session_start();
 error_reporting( ~E_NOTICE ); // avoid notice
$servername = "localhost";
$username = "bctixpmy_blake";
$password = "Ae1IkMMGj6d2";
$dbname = "bctixpmy_luxury_db";

  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 if(isset($_POST['btnsave']))
 {//1
$agent_id = rand(10,1000);
$fullname = $_POST['full_name'];
$username = $_POST['user_name'];
$useremail = $_POST['user_email'];
$userweb = $_POST['user_web'];
$userpword = $_POST['user_pword'];
$usercpword = $_POST['user_cpword'];
$stat = 'ACTIVE';
//
$sql = "SELECT * from tbl_brokers WHERE username='$username'";
if ($res = $conn->query($sql)) {//2

if ($res->fetchColumn() > 0) {//3
echo '<script language="javascript">';
echo 'alert("That Username already exist!");';
echo 'location.href="https://luxury.global/broker-signup/";';
echo '</script>';
}
else if($userpword != $usercpword)
{
echo '<script language="javascript">';
echo 'alert("Password and Confirm Password did not match.");';
echo 'location.href="https://luxury.global/broker-signup/";';
echo '</script>';
}
else{
//
  $imgFile = $_FILES['user_image']['name'];
  $tmp_dir =$_FILES['user_image']['tmp_name'];
  $imgSize =$_FILES['user_image']['size'];

  if(empty($imgFile)){
  $errMSG = "Please Select Image File for Profile Picture.";
echo '<script language="javascript">';
echo 'alert("'.$errMSG .'");';
echo 'location.href="https://luxury.global/broker-signup/";';
echo '</script>';
  }
  else
  {
   $upload_dir = 'user_images/'; // upload directory
 
   $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
  
   // valid image extensions
   $valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
  
   // rename uploading image
   $userpic = rand(1000,1000000).".".$imgExt;
    
   // allow valid image file formats
   if(in_array($imgExt, $valid_extensions)){   
    // Check file size '5MB'
    if($imgSize < 5000000)    {
     move_uploaded_file($tmp_dir,$upload_dir.$userpic);
    }
    else{
     $errMSG = "Sorry, your file is too large.";
echo '<script language="javascript">';
echo 'alert("'.$errMSG .'");';
echo 'location.href="https://luxury.global/broker-signup/";';
echo '</script>';
    }
   }
   else{
    $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";  
echo '<script language="javascript">';
echo 'alert("'.$errMSG .'");';
echo 'location.href="https://luxury.global/broker-signup/";';
echo '</script>';
   }
  }
  
  
  // if no error occured, continue ....
  if(!isset($errMSG))
  {
   $stmt = $conn->prepare('INSERT INTO tbl_brokers(agent_id, fullname, username, user_email, website, pword, conf_pword, userPic, filename, Status) VALUES(:agentid, :fullname, :uname, :user_email, :user_web, :user_pword, :user_cpword, :upic, :imgFile, :stat)');
   $stmt->bindParam(':agentid',$agent_id);
   $stmt->bindParam(':fullname',$fullname);
   $stmt->bindParam(':uname',$username);
   $stmt->bindParam(':user_email',$useremail);
   $stmt->bindParam(':user_web',$userweb);
   $stmt->bindParam(':user_pword',$userpword);
   $stmt->bindParam(':user_cpword',$usercpword);
   $stmt->bindParam(':upic',$userpic);
   $stmt->bindParam(':imgFile',$imgFile);
   $stmt->bindParam(':stat',$stat);
   if($stmt->execute())
   {
    $successMSG = "New Broker Record has been successfully saved!";
echo '<script language="javascript">';
echo 'alert("'.$successMSG .'");';
echo 'location.href="https://luxury.global/broker-log-in/";';
echo '</script>';
    
   }
   else
   {
    $errMSG = "error while inserting....";
echo '<script language="javascript">';
echo 'alert("Error while saving records...);';
echo 'location.href="https://luxury.global/broker-signup/";';
echo '</script>';
   }
}
}
  }
 }
?>



кроме того, я не могу извлечь и отобразить вставленный мною выше код,он отображает только пустое квадратное поле. если вы не возражаете, не могли бы вы дать мне пример php-скрипта для отображения изображений из базы данных? спасибо

Richard Deeming

Где - то в вашем секретном коде есть секретная ошибка. Ты должен это исправить.

Серьезно, если вы хотите, чтобы кто - то помог вам исправить ваш код, вам нужно показать соответствующие части вашего кода-в данном случае код, который вставляет изображение в вашу базу данных. Нажмите на зеленую ссылку "улучшить вопрос" и добавьте соответствующие части вашего кода к этому вопросу.

Member 11241887

я обновил свой вопрос и вставил свой код. надеюсь, вы сможете мне помочь. спасибо :-)

Richard MacCutchan

Какая часть сохраняет изображение, а какая считывает его обратно из базы данных?

Member 11241887

запрос insert и функция move_upload.спасибо

Richard Deeming

NB: Вы сохраняете пароль пользователя в виде обычного текста. Не делай этого.
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]

PHP даже имеет встроенные функции, которые помогут вам сделать все правильно:
PHP: password_hash[^]
РНР: функцию password_verify[^]

И вам не нужно хранить оба значения "пароль" и "подтверждение пароля" - вы должны проверить, что это одно и то же значение, прежде чем создавать запись, поэтому вы просто дублируете данные.

rommelpabustan

Спасибо за подсказку

1 Ответов

Рейтинг:
1

Richard MacCutchan

Ваша вставка, скорее всего, не удалась, вполне возможно, по причине, указанной в Почему я получаю "параметр недопустим." исключение, когда я читаю изображение из своей базы данных?[^].