Как загрузить аватар пользователя в его папку

Статус
В этой теме нельзя размещать новые ответы.
Регистрация
14 Апр 2013
Сообщения
29
Реакции
10
Доброго времени суток. Делаю регистрацию на сайте (точнее типо того), в общем мы создаем пользователя, из поля имя и фамилия создается папка с таким именем на сервере, в бд пишется имя фамилия и тд. Теперь есть необходимость загрузки аватара пользователя в папку которая создается скриптом - тоесть мы создаем пользователя с именем вадим и фамилией к примеру ворон - на сервере будет созданна папка vadimvoron и в нее должен загрузится аватар пользоватедя - ниже привожу скрипт - при выполнении скрипта не грузится картинка и пишет мол нет такой директории или файла.. помогите решить (да я там наговнокодил но не судите строго - не так уж давно пишу скрипты)

Код:
<?PHP header("Content-Type: text/html; charset=utf-8");?>
<?php
  ////конектимся к бд
  require_once('config.php');
  //присваиваем значения с полей к переменным
  $name = ($_POST['name']);
  $sname = ($_POST['sname']);
  $work = ($_POST['work']);
  $kat = ($_POST['kat']);
  function transliterate($input){
  $gost = array(
      "Є"=>"YE","І"=>"I","Ѓ"=>"G","і"=>"i","№"=>"-","є"=>"ye","ѓ"=>"g",
      "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
      "Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
      "З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
      "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
      "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"X",
      "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
      "Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
      "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
      "е"=>"e","ё"=>"yo","ж"=>"zh",
      "з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
      "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
      "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
      "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
      "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
    );
  return strtr($input, $gost);
  }
  $dirname = transliterate($name.$sname);
  chdir ("img/"); //путь где создавать папку
  @mkdir ($dirname, 0770); //имя папки и атрибуты на папку

  /********************************************************************/
  $a= "img/";
  $b = "/";
  $userpath = $a.$dirname.$b;
  $uploaddir = $userpath;
  if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir .
  $_FILES['userfile']['name'])) {
    print "File is valid, and was successfully uploaded.";
  } else {
    print "There some errors!";
  }
  /********************************************************************/

  //пишем в бд значения с полей
  $edit = mysql_query("INSERT INTO user (name, sname, work, kat, dir)
  VALUES ('$name','$sname','$work','$kat','$userpath/')");
  //проверяем запись в бд
  if ($edit) {
      echo "Запись в Базу данных произведенна";
  }
  else {
      echo "Нихера не получилось";
  }
?>
 
1) Убери символ собаки перед mkdir - посмотри ошибку...
2) Выведи переменную $uploaddit
 
дело в том что ошибки нет от мкдир, просто при выполнении скрипта пишет это failed to open stream: No such file or directory in строка 39 - тоесть как я понял скрипт не видит папку куда грузить - но она то есть ведь сначала мы создали папку а потом просим туда уплоуднуть картинку (
 
Сама папка создаётся? Просто файл не копируется в неё?
 
да, скрипт полностью работает не считая копирования самой картинки. есть папка, есть ее название и тд - выводил переменную - норм, то есть переменна равна пути в который должно все писаться но все равно не пишется. когда задаю путь куда загрузить картинку вручную -все работает а вот когда путь есть переменная - вот тут уже беда (
 
Путь относительно open_basedir указывали? Или относительно файла php?
Пробовали в начала пути / указывать?
 
да все заработало) исправил путь и все гуд) спс) ниже привожу кусок кода - вдруг кому пригодится
Код:
<?PHP header("Content-Type: text/html; charset=utf-8");?>
<?php
  ////конектимся к бд
  require_once('config.php');
  //присваиваем значения с полей к переменным
  $name = ($_POST['name']);
  $sname = ($_POST['sname']);
  $work = ($_POST['work']);
  $workp = ($_POST['workp']);
  $kat = ($_POST['kat']);
  $id = uniqid();
  function transliterate($input){
  $gost = array(
      "Є"=>"YE","І"=>"I","Ѓ"=>"G","і"=>"i","№"=>"-","є"=>"ye","ѓ"=>"g",
      "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
      "Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
      "З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
      "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
      "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"X",
      "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
      "Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
      "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
      "е"=>"e","ё"=>"yo","ж"=>"zh",
      "з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
      "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
      "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
      "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
      "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
    );
  return strtr($input, $gost);
  }
  $dirname = transliterate($name.$sname);
  chdir ("img/"); //путь где создавать папку
  @mkdir ($dirname, 0770); //имя папки и атрибуты на папку

  /********************************************************************/
  $a= "../img/";
  $b = "/";
  $c ="img/";
  $nameimg =  basename( $_FILES['userfile']['name']);
  $userpath = $a.$dirname.$b;
  $userpathbd = $c.$dirname.$b.$nameimg;
  echo $userpathbd;
  $uploaddir = $userpath;
  if (move_uploaded_file($_FILES['userfile']['tmp_name'], "$userpath".$_FILES['userfile']['name'])) {
    print "Картинка загруженна.";
  } else {
    print "There some errors!";
  }
  echo $uploaddir;
  /********************************************************************/

  //пишем в бд значения с полей
  $edit = mysql_query("INSERT INTO user (name, sname, work, workp, kat, dir, id)
                                VALUES ('$name','$sname','$work', '$workp', '$kat','$userpathbd','$id')");
  //проверяем запись в бд
  if ($edit) {
      echo "Запись в Базу данных произведенна";
  }
  else {
      echo "Нихера не получилось";
  }
 
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху