Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 16.12.2018
Сообщений: 3

Не работает код добавления аватара в базу данных phpmyadmin

21.02.2020, 09:04. Показов 1741. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//reg.php
<?php require_once 'libs/mysql.php' ?>// подключение к базе данных
<?php
        $fio=trim($_POST['fio_users']);
        $log=trim($_POST['login']);
        $em=trim($_POST['e_mail']);
        $passw=trim($_POST['password']);
        /* $av=trim($_POST['ava']) */;
 
        /* //Проверка для ФИО
        if(mb_strlen($fio) <10 || mb_strlen($fio) >60){
        echo "Недопустимая длина ФИО";
        exit();
        }
        // Проверка для логина
        else if(mb_strlen($log) <3 || mb_strlen($log) >10){
        echo "Недопустимая длина Логина(от 3 до 10 символов)";
        exit();
        }
        // Проверка для пароля
        else if(mb_strlen($$passw) <6 || mb_strlen($$passw) >15){
        echo "Недопустимая длина Пароля(от 6 до 15 символов)";
        exit();
        }
        // Хешировние для пароля
        $passw = password_hash($passw, PASSWORD_DEFAULT);  */ 
 
 if    (!empty($_POST['ava'])) //проверяем, отправил    ли пользователь изображение
            {
            $av=$_POST['ava'];    
            $av = trim($avat); 
              if ($avat =='' or empty($av)) {
                                 unset($av);  // если переменная $fupload пуста, то удаляем ее
                                                            }
            }          
if    (!isset($av) or empty($avat) or $avat =='')
            {
            //если переменной не существует (пользователь не отправил    изображение),то присваиваем ему заранее приготовленную картинку с надписью    "нет аватара"
            $av    = "img/no-ava.png";
            }          
else 
            {
 
            //иначе - загружаем изображение пользователя
            $path_to_90_directory    = '../userava/';       //папка,    куда будет загружаться начальная картинка и ее сжатая копия          
         
            if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['ava']['name']))  //проверка формата исходного изображения
                      {                 
                               $file =    $_FILES['ava']['name'];
                               $source =    $_FILES['ava']['tmp_name']; 
                               $target =    $path_to_90_directory . $file;
                               move_uploaded_file($source,    $target);//загрузка оригинала в папку $path_to_90_directory           
         if(preg_match('/[.](GIF)|(gif)$/',    $file)) {
                     $im    = imagecreatefromgif($path_to_90_directory.$file) ; //если оригинал был в формате gif, то создаем    изображение в этом же формате. Необходимо для последующего сжатия
                     }
                     if(preg_match('/[.](PNG)|(png)$/',    $file)) {
                     $im =    imagecreatefrompng($path_to_90_directory.$file) ;//если    оригинал был в формате png, то создаем изображение в этом же формате.    Необходимо для последующего сжатия
                     }
                     
                     if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/',    $file)) {
                               $im =    imagecreatefromjpeg($path_to_90_directory.$file); //если оригинал был в формате jpg, то создаем изображение в этом же    формате. Необходимо для последующего сжатия
                     }        
                     $w    = 90;  //    квадратная 90x90. Можно поставить и другой размер.          
// создаём исходное изображение на основе 
            // исходного файла и определяем его размеры 
            $w_src    = imagesx($im); //вычисляем ширину
            $h_src    = imagesy($im); //вычисляем высоту изображения
                     // создаём    пустую квадратную картинку 
                     // важно именно    truecolor!, иначе будем иметь 8-битный результат 
                     $dest = imagecreatetruecolor($w,$w);           
         //    вырезаем квадратную серединку по x, если фото горизонтальное 
                     if    ($w_src>$h_src) 
                     imagecopyresampled($dest, $im, 0, 0,
                                         round((max($w_src,$h_src)-min($w_src,$h_src))/2),
                                      0, $w, $w,    min($w_src,$h_src), min($w_src,$h_src));           
         // вырезаем    квадратную верхушку по y, 
                     // если фото    вертикальное (хотя можно тоже серединку) 
                     if    ($w_src<$h_src) 
                     imagecopyresampled($dest, $im, 0, 0,    0, 0, $w, $w,
                                      min($w_src,$h_src),    min($w_src,$h_src));           
         // квадратная картинка    масштабируется без вырезок 
                     if ($w_src==$h_src) 
                     imagecopyresampled($dest,    $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);           
$date=time();    //вычисляем время в настоящий момент.
            imagejpeg($dest,    $path_to_90_directory.$date.".jpg");//сохраняем    изображение формата jpg в нужную папку, именем будет текущее время. Сделано,    чтобы у аватаров не было одинаковых имен.          
//почему именно jpg? Он занимает очень мало места + уничтожается    анимирование gif изображения, которое отвлекает пользователя. Не очень    приятно читать его комментарий, когда краем глаза замечаешь какое-то    движение.          
$av = $path_to_90_directory.$date.".jpg";//заносим в переменную путь до аватара. 
 
 /* $delfull    = $path_to_90_directory.$filename; 
           unlink    ($delfull); */ //удаляем оригинал загруженного    изображения, он нам больше не нужен. Задачей было - получить миниатюру.
            }
            else 
                     {
                                //в случае    несоответствия формата, выдаем соответствующее сообщение
                     exit ("Аватар должен быть в    формате <strong>JPG,GIF или PNG</strong>");
                             }
            //конец процесса загрузки и присвоения переменной $ava адреса    загруженной авы 
            }         
 
        $sql_add="INSERT INTO `users` (`fio_users`,`login`,`email`,`password`,`ava`) VALUES ('".$fio."','".$log."','".$em."','".$passw."','".$av."');";
 
        print $sql_add;
    $res=mysqli_query($db,$sql_add);
        if ($res):
        print "<p>Спасибо, вы зарегистрированы.";
        print "<p><a href=\"fotoforum.html\"> Вернуться к форуму </a>";
    else:
        print "Ошибка сохранения. <a href=\"reg.php\">  Вернуться к форуму </a>";
    endif;
?>
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//new_reg.html
    <html>
    <title>Регистрация</title>
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
    
        <H2>Регистрация на сайте:</H2>
        <form action="reg.php" method="post">
            ФИО: <input type="text" name="fio_users" size="50" >
            <br>Логин: <input type="text" name="login" size="20" >
            <br>E-mail: <input type="email" name="e_mail" size="30" >
            <br>Пароль: <input type="password" name="password" size="20" >
            <form enctype="multipart/form-data" method="post">
            <br>Аватарка: <input type="file" name="ava" >
</textarea>
        <p><input type="submit" name="add" value="Добавить">
        <input type="reset" name="b2" value="Очистить"></p>
    </form>
    <p><a href="../index.php"> Вернуться к форуму </a>
    </body>
    </html>
Добавлено через 9 минут
Код был скопирован с сайта https://ruseller.com/lessons.php?rub=37&id=350
не смог подставить под свою БД.
так же не могли бы прояснить ошибку.
Спасибо!
Я студент новичок.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2020, 09:04
Ответы с готовыми решениями:

Код добавления данных в базу перестал работать после изменения
всем привет. делаю форму для добавления данных в базу. в один момент все работало, но после изменения перестало. помогите пожалуйста,...

Загрузка аватара (не работает код
Не работает код загрузки аватарки для WP ;(function ($) { 'use strict'; var UserProfile = function (args) { ...

Код добавления в базу Firebird
здравствуйте! Такая проблемка, есть таблица с 400 записями (доступ к таблице через ibexpert, там создал процедурку добавления =&gt;begin ...

3
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
21.02.2020, 12:53
что за строчка 15 в html5 коде?
когда это можно было форму в форму запихивать? вы хотя бы прочитали первую часть к этому уроку. потом скачали бы исходники. и с ними бы уже экспериментировали
а пока 15 строчку убираете, а 10 переписываете примерно так
HTML5
1
<form action="reg.php" enctype="multipart/form-data" method="post">
1
0 / 0 / 0
Регистрация: 16.12.2018
Сообщений: 3
25.02.2020, 05:15  [ТС]
Не углядел с 15 строкой.
так же хотел бы еще раз сказать, что не работает аватар PHP код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 if    (!empty($_POST['ava'])) //проверяем, отправил    ли пользователь изображение
            {
            $av=$_POST['ava'];    
            $av = trim($avat); 
              if ($avat =='' or empty($av)) {
                                 unset($av);  // если переменная $fupload пуста, то удаляем ее
                                                            }
            }          
if    (!isset($av) or empty($avat) or $avat =='')
            {
            //если переменной не существует (пользователь не отправил    изображение),то присваиваем ему заранее приготовленную картинку с надписью    "нет аватара"
            $av    = "img/no-ava.png";
            }          
else 
            {
 
            //иначе - загружаем изображение пользователя
            $path_to_90_directory    = '../userava/';       //папка,    куда будет загружаться начальная картинка и ее сжатая копия          
         
            if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['ava']['name']))  //проверка формата исходного изображения
                      {                 
                               $file =    $_FILES['ava']['name'];
                               $source =    $_FILES['ava']['tmp_name']; 
                               $target =    $path_to_90_directory . $file;
                               move_uploaded_file($source,    $target);//загрузка оригинала в папку $path_to_90_directory           
         if(preg_match('/[.](GIF)|(gif)$/',    $file)) {
                     $im    = imagecreatefromgif($path_to_90_directory.$file) ; //если оригинал был в формате gif, то создаем    изображение в этом же формате. Необходимо для последующего сжатия
                     }
                     if(preg_match('/[.](PNG)|(png)$/',    $file)) {
                     $im =    imagecreatefrompng($path_to_90_directory.$file) ;//если    оригинал был в формате png, то создаем изображение в этом же формате.    Необходимо для последующего сжатия
                     }
                     
                     if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/',    $file)) {
                               $im =    imagecreatefromjpeg($path_to_90_directory.$file); //если оригинал был в формате jpg, то создаем изображение в этом же    формате. Необходимо для последующего сжатия
                     }        
                     $w    = 90;  //    квадратная 90x90. Можно поставить и другой размер.          
// создаём исходное изображение на основе 
            // исходного файла и определяем его размеры 
            $w_src    = imagesx($im); //вычисляем ширину
            $h_src    = imagesy($im); //вычисляем высоту изображения
                     // создаём    пустую квадратную картинку 
                     // важно именно    truecolor!, иначе будем иметь 8-битный результат 
                     $dest = imagecreatetruecolor($w,$w);           
         //    вырезаем квадратную серединку по x, если фото горизонтальное 
                     if    ($w_src>$h_src) 
                     imagecopyresampled($dest, $im, 0, 0,
                                         round((max($w_src,$h_src)-min($w_src,$h_src))/2),
                                      0, $w, $w,    min($w_src,$h_src), min($w_src,$h_src));           
         // вырезаем    квадратную верхушку по y, 
                     // если фото    вертикальное (хотя можно тоже серединку) 
                     if    ($w_src<$h_src) 
                     imagecopyresampled($dest, $im, 0, 0,    0, 0, $w, $w,
                                      min($w_src,$h_src),    min($w_src,$h_src));           
         // квадратная картинка    масштабируется без вырезок 
                     if ($w_src==$h_src) 
                     imagecopyresampled($dest,    $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);           
$date=time();    //вычисляем время в настоящий момент.
            imagejpeg($dest,    $path_to_90_directory.$date.".jpg");//сохраняем    изображение формата jpg в нужную папку, именем будет текущее время. Сделано,    чтобы у аватаров не было одинаковых имен.          
//почему именно jpg? Он занимает очень мало места + уничтожается    анимирование gif изображения, которое отвлекает пользователя. Не очень    приятно читать его комментарий, когда краем глаза замечаешь какое-то    движение.          
$av = $path_to_90_directory.$date.".jpg";//заносим в переменную путь до аватара. 
 
 /* $delfull    = $path_to_90_directory.$filename; 
           unlink    ($delfull); */ //удаляем оригинал загруженного    изображения, он нам больше не нужен. Задачей было - получить миниатюру.
            }
            else 
                     {
                                //в случае    несоответствия формата, выдаем соответствующее сообщение
                     exit ("Аватар должен быть в    формате <strong>JPG,GIF или PNG</strong>");
                             }
            //конец процесса загрузки и присвоения переменной $ava адреса    загруженной авы 
            }
Добавлено через 28 минут
Цитата Сообщение от vinikon Посмотреть сообщение
Не мог бы ты показать ошибку в PHP коде при регистрации аватара.
Сохраняет все кроме аватара, ссылку на путь
курсовой проект проблема стоит уже 2 неделю, срочное решение проблемы нужно.
Думаю проблема в присвоении с переменнымы
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if    (!empty($_POST['ava'])) //проверяем, отправил    ли пользователь изображение
            {
            $av=$_POST['ava'];    
            $av = trim($avat); 
              if ($avat =='' or empty($av)) {
                                 unset($av);  // если переменная $fupload пуста, то удаляем ее
                                                            }
            }          
if    (!isset($av) or empty($avat) or $avat =='')
            {
            //если переменной не существует (пользователь не отправил    изображение),то присваиваем ему заранее приготовленную картинку с надписью    "нет аватара"
            $av    = "img/no-ava.png";
            }          
else 
            {
 
            //иначе - загружаем изображение пользователя
            $path_to_90_directory    = '../userava/';       //папка,    куда будет загружаться начальная картинка и ее сжатая копия          
         
            if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['ava']['name']))  //проверка формата исходного изображения
                      {                 
                               $file =    $_FILES['ava']['name'];
                               $source =    $_FILES['ava']['tmp_name']; 
                               $target =    $path_to_90_directory . $file;
                               move_uploaded_file($source,    $target);//загрузка оригинала в папку $path_to_90_directory           
         if(preg_match('/[.](GIF)|(gif)$/',    $file)) {
                     $im    = imagecreatefromgif($path_to_90_directory.$file) ; //если оригинал был в формате gif, то создаем    изображение в этом же формате. Необходимо для последующего сжатия
                     }
                     if(preg_match('/[.](PNG)|(png)$/',    $file)) {
                     $im =    imagecreatefrompng($path_to_90_directory.$file) ;//если    оригинал был в формате png, то создаем изображение в этом же формате.    Необходимо для последующего сжатия
                     }
                     
                     if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/',    $file)) {
                               $im =    imagecreatefromjpeg($path_to_90_directory.$file); //если оригинал был в формате jpg, то создаем изображение в этом же    формате. Необходимо для последующего сжатия
                     }
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
25.02.2020, 11:11
Лучший ответ Сообщение было отмечено DemurEDE как решение

Решение

в первой и третьей строчке попробуйте заменить $_POST на $_FILES

Добавлено через 1 минуту
непонятно, откуда взялась переменная $avat в четвертой строке

Добавлено через 4 минуты
еще скобки} не хватает в восьмой строке

Добавлено через 6 минут
непонятно, что за переменная $avat. можно было бы совсем убрать строчки с 1 по 8, а 9 переписать так
PHP
1
if (isset($_FILES['ava'])) {
Добавлено через 6 минут
закрывающие фигурные скобки понапропускали.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.02.2020, 11:11
Помогаю со студенческими работами здесь

Занесение в базу данных phpMyAdmin
Доброго времени суток. Для обучения работы с selenium мне понадобилась форма регистрации, заносящая данные в БД. Для этих целей был ...

Ввод данных в базу phpmyadmin
Извините конечно за эту надоедливую тему. Но у меня проблема с phpmyadmin. Точнее есть форма И я хочу чтобы все данные сохранялись в...

Не получается импортировать базу данных в phpMyAdmin
Добрый день. База данных была создана в phpmyadmin на Денвере на одном компе. После чего был сделан дамп базы данных. При переносе БД на...

Добавление в базу данных phpmyadmin в PHP
Добрый день! Разрабатываю интерфейс для своей базы данных, но не работает функция добавления в базу почему-то. Все остальные функции...

Потерял свою базу данных в PhpMyAdmin
Дело в том что я начинающий программист, я создал свою БД в phpMyAdmin с интернет магазином, все отлично работал. Потом мой компьютер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru