Я пытаюсь создать страницу профиля для своих участников, которая позволяет им менять свой аватар, но у меня есть некоторые проблемы с частью загрузки.
if ($_POST['avatar']) {
$avatar = $_POST['avatar'];
$avatype = $_FILES['avatar']['type'];
$avasize = $_FILES['avatar']['size'];
$avatemp = $_FILES['avatar']['tmp_name']; //edited, removed the e in tmp
$avaname = $_SESSION['login'];
if ($avasize > 512000) {
echo 'too big';
} else {
$avapath = 'images/avatar/'.$avaname;
if (is_uploaded_file($avatemp)) {
if (move_uploaded_file($avatemp, $avapath)) {
$avaIsSet = $db->query('UPDATE `users` SET `hasavatar`="1" WHERE `id`="'.$_SESSION['id'].'"');
$avaIsSet->execute();
} else {
echo 'not moved';
}
} else {
echo 'not uploaded';
}
}
}
Дело в том, что когда я пытаюсь заставить его работать, у меня всегда один и тот же код ошибки: not uploaded
Я очень надеюсь, что вы, ребята, сможете мне помочь,
Спасибо
РЕДАКТИРОВАТЬ:
Вот HTML-код, который ведет к файлу php, который применяет изменения:
<?php if ($selfmodify) { ?>
<form action="updateprofile.php" method="post">
<div class="form-group">
<? } ?>
<div class="col-md-2 col-sm-2"></div>
<div class="col-md-3 col-sm-3" id="avatar">
<br/>
<img src="https://web-answers.ru/wp-content/uploads/2019/02/avatar/<?php if ($pdata[hasavatar] == 1) { echo $pdata[id]; } else { echo "default"; } ?>" style="width: 100%" class="img-rcor">
<?php if ($selfmodify) { ?>
<input type="file" name="avatar" accept="image/*">
<? } ?>
</div>
<div class="col-md-1 col-sm-1"></div>
<div class="col-md-4 col-sm-4">
<h3><?php echo $pdata[login]; ?></h3>
<br/>
<p align="left">Prénom: <?php if ($selfmodify) echo '<input type="text" class="form-control" name="firstname" value="'; ?><?php echo $pdata[fname]; ?><?php if ($selfmodify) echo '">'; ?><br/><br/>
Nom: <?php if ($selfmodify) echo '<input type="text" class="form-control" name="lastname" value="'; ?><?php echo $pdata[famname]; ?><?php if ($selfmodify) echo '">'; ?><br/><br/>
<?php if (($pdata[showmail] == 1) || ($selfmodify)) echo 'E-mail: '.$pdata[email]. '<br/>'; if ((!$selfmodify) && ($pdata[showmail] == 1)) echo '<br/>'; ?>
<?php if ($selfmodify) { ?>
<input type="checkbox" name="showmail" value="showmail" <?php if ($pdata[showmail] == 1) echo 'checked'; ?>> Rendre mon e-mail visible
<br/><br/>
<? } ?>
Dernière connexion: <?php if ($pdata[isonline] == 1) { echo 'Actuellement en ligne'; } else { echo $pldate.' à '.substr($pdata[lasttime], 0, -3).' (GMT)'; } ?></p>
<br/>
<?php if ($selfmodify) { ?>
<br/><br/>
<input type="submit" class="btn btn-info" name="confirm" value="Confirmer">
</div>
</form>
Я знаю, что мой код — настоящий беспорядок, но я сосредоточен на результате, который он дает, а не на том, как мой код структурирован. Я неопытный, я думаю, что это произойдет позже, но сейчас я стараюсь изо всех сил.
Попробуйте с этим:
$avatemp = $_FILES['avatar']['tmp_name'];
NB: ответ в комментариях
Других решений пока нет …