Задать вопрос
@PantiesInTea

Как сохранить картинку в папке после загрузки на сайте?

Сделал простую форму регистрации, авторизации. Нужно что бы в форме регистрации пользователь мог установить свой аватар. Сделал методом из интернета:
$myimg = './uploads/' . basename($_FILES['picture']['name']);
            if (move_uploaded_file($_FILES['picture']['tmp_name'], $myimg)) {

            }

Не помогает. В баз данных картинка сохраняется, но в папке проекта изображение не появляется.

Использовал плагин redbean php для более удобной работы с базой данных.

Вот полный код формы регистрации:
<link rel="stylesheet" href="css/style.css" />
<?php
    require "db.php";

    $data = $_POST;
    if(isset($data['do_signup'])) {
        //Здесь регаем
        $errors = array();
        if(trim($data['name']) == '' ) {
            $errors[] = 'Введите имя!';
        }

        if(trim($data['surename']) == '' ) {
            $errors[] = 'Введите Фамилию!';
        }

        if(trim($data['email']) == '' ) {
            $errors[] = 'Введите email!';
        }

        if(trim($data['phone']) == '' ) {
            $errors[] = 'Введите номер телефона!';
        }

        if($data['password'] == '' ) {
            $errors[] = 'Введите пароль';
        }

        if($data['confirm'] !== $data['password'] ) {
            $errors[] = 'Пароли не совпадают';
        }

        if(R::count('users', "email = ?", array($data['email'])) > 0) {
            $errors[] = 'Этот email уже существет';
        }

        if (empty($errors)) {
            //all is good
            $user = R::dispense('users');
            $user->name = $data['name'];
            $user->surename = $data['surename'];
            $user->email = $data['email'];
            $user->phone = $data['phone'];
            $user->picture = $data['picture'];
            $user->password = password_hash($data['password'], PASSWORD_DEFAULT);
            R::store($user);
            echo '<div style="color: green;">Регистрация прошла успешно!</div><br><a href="/">Главная<a>';

            $myimg = './uploads/' . basename($_FILES['picture']['name']);
            if (move_uploaded_file($_FILES['picture']['tmp_name'], $myimg)) {

            }

            mail($data['email'], "Спасибо за регистрацию", 'Ваш Email '.$data['email'].' '.'Ваш пароль: '.$data['password'], 'From: qwertybackqwerty@yandex.ru'); 

            
            

        } else {
            echo '<div style="color: red;">'.array_shift($errors).'</div>';
        }

    }
?>

<form action="signup.php" method="POST">
    <p>
        <p><strong>Ваше имя</strong></p>
        <input type="text" name="name" value="<?php echo @$data['name']; ?>">
    </p>
    <p>
        <p><strong>Ваша фамилия</strong></p>
        <input type="text" name="surename" value="<?php echo @$data['surename']; ?>">
    </p>
    <p>
        <p><strong>Ваша почта</strong></p>
        <input type="email" name="email" value="<?php echo @$data['email']; ?>">
    </p>
    <p>
        <p><strong>Ваш номер телефона</strong></p>
        <input type="text" name="phone" value="<?php echo @$data['phone']; ?>">
    </p>
    <p>
        <p><strong>Изображение профиля</strong></p>
        <input type="file" name="picture">
    </p>
    <p>
        <p><strong>Ваш пароль</strong></p>
        <input type="password" name="password">
    </p>
    <p>
        <p><strong>Подтвердите пароль</strong></p>
        <input type="password" name="confirm">
    </p>
    <p>
        <button type="submit" name="do_signup" class="btn">Зарегистрироваться</button>
    </p>
    <p>Уже есть аккаунт? <a class="authlink" href="login.php">Авторизация</a></p>
</form>
  • Вопрос задан
  • 66 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
Форму надо поправить на принятие файлов
<form enctype="multipart/form-data" action="signup.php"
method="post">
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы