Почему мой столбец 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
Спасибо за подсказку