как он может быть таким, если ты указал относительны путь который начинается с / значит с корня диска http://phpfaq.ru/newbie/paths Может если в папке со скриптом есть папка images то стоит указать images/avatar/ вместо /images/avatar/
@denis01 Если так указываю ошибку выдает $uploaddir = 'images/avatar/'; Если так указываю типа в корень сайта ошибки нет $uploaddir = ''; Но файлы картинки не грузятся в папку. О заметил такое, если я дают путь к папке такой $uploaddir = 'D:\openserver\domains\vk.local\images\avatar'; То файлы грузятся, а как мне задать такой же путь только чтобы было images/avatar???
Какую? --- Добавлено --- папка images/avatar существует? может там что-то с правами на папку и писать в неё нельзя
@denis01 Конечно существует, не я права не давал не какие, и вообще может они сами создались права))) Посмотри выше что я написал.
@denis01 Да у меня раньше не было с изображением проблем, имею введу с загрузкой. А сейчас появились фиг его что это( а может точку указать надо или что либо другое? Может папка должна находится там где я этот скрипт вызываю или как еще либо? Есть еще какие предложения?
@denis01 Ок понял, вот в чем ошибка моя? А теперь смотри вот такой путь указываю, и как не странно файлы падают прям в эту папку что указал, что за фигня? $uploaddir = '../../../vk.local/images/avatar/';
PHP: echo '1 '.realpath('/images/avatar/test.jpg').PHP_EOL; echo '2 '.realpath(__FILE__).PHP_EOL; echo '3 '.realpath('../../../vk.local/images/avatar/').PHP_EOL; что выдаст этот код в файле который отвечает за загрузку изображений?
@denis01 1 2 D:\OpenServer\domains\vk.local\users\profiles\add_details.php 3 D:\OpenServer\domains\vk.local\images\avatar
@denis01 А может это быть ошибочка и-за запроса? Прикинь я не заметил что я обновляю данные, а мне надо сперва их добавить insert into, а я делал update set и т.д. Вот это я даю офигеть
Народ что я не так делаю, не получается аватар добавить посмотрите вот у меня такой файл получился: PHP: if(isset($_POST['add_details'])) { $uploaddir = '/images/avatar'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); echo '<pre>'; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "Файл корректен и был успешно загружен.\n"; } else { echo "Возможная атака с помощью файловой загрузки!\n"; } echo 'Некоторая отладочная информация:'; print_r($_FILES); print "</pre>"; }else{ $params = array( 'avatar' => $uploadfile); $sql = ("INSERT INTO `users` VALUES ('".$_SESSION['user_id']."', :avatar)"); $stmt = $pdo->prepare($sql); $stmt->execute($params); HTML: <form enctype="multipart/form-data" method="POST" action="" autocomplete='on'> <input type="file" name="userfile" value=""><br> <input type="submit" name="add_details" value="Сохранить"> </form> Подскажите в запросе я начудил или нет?
@igordata Ты прикалываешься ? $uploaddir='/images/avatar'; В этой строке что ли слеш забыл? А сам запрос правильно построил?
нет. Обычно переписывание занимает в несколько раз меньше времени, чем писать первый раз. При этом обычно же код ужимается на треть. не скажу. нет. Проанализируй, что ты там написал.
да подскажи я целый день с картинками этими сижу и разобраться не могу почему не загружаются файлы в определенную папку. а сам запрос проанализировать $params = array( 'avatar' => $uploadfile); //с этим я в инете познакомился подготавливаем массив вроде как $sql = ("INSERT INTO `users` VALUES ('".$_SESSION['user_id']."', :avatar)"); //inssert into записать в таблицу users куда values берем сессию пользователя и поле avatar. $stmt = $pdo->prepare($sql); //подготовили запрос $stmt->execute($params); //выполнили Ну и все.
я ж говорю, давай заново из головы это расписал код, который рядом с запросом. Я же говорю, тебе нужно пристально взглянуть на запрос, который уходит в БД и то, как ты туда вкрячил неэкранированное значение, и то, что там инсерт.
@igordata Ну хорошо))) Перепишу и напишу тоже самое) Экранировать изображения я не могу, что разве с этой htmlspecialchars фитчей а так не знаю.) Я же учусь я не полиглот) Тем более я код взял из мануала, для загрузки изображения.
Попробовал отредактировать запрос, и все же ошибки, что же не так, подскажите пожалуйста. вот запрос: PHP: $sql = 'INSERT INTO `users` VALUES("", "'.$_SESSION['user_id'].'", :avatar)'; $stmt = $pdo->prepare($sql); $stmt->bindValue(':avatar', $_POST['avatar'], PDO::PARAM_STR); $stmt->execute();
@igordata я знаю за что ты говоришь за аватар и за эту строку PHP: $stmt->bindValue(':avatar',$_POST['avatar'], PDO::pARAM_STR); Ну и как его экранировать? И вообще с этим запросом у меня в базу записывается значения названия картинки, но записывается не для того пользователя кто вошел на сайт, а в пустую уходит строка ниже этого пользователя, то-есть не кому. Что делать в таком случае?
И вообще мне надо делать не insert а update так как в этой таблице users уже есть данные. И их надо обновить а не добавить))) Получается он будет выглядеть так: PHP: $sql = "UPDATE `users` SET `avatar`= :avatar WHERE `user_id`='". $_SESSION['user_id'] ."'"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':avatar', $uploadfile, PDO::PARAM_STR); $stmt->execute();
Теперь я вроде не ошибся) запрос прошел удачно, и все же где я ошибался? А как же сделать проверку для фото? если фото есть то обновляем фото, а если фото нет то добавляем. Думаю поняли вы меня)))