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

Тема в разделе "Как сделать...", создана пользователем ВадимПолоусоВорон, 29 окт 2013.

Статус темы:
Закрыта.
  1. ВадимПолоусоВорон

    ВадимПолоусоВорон Создатель

    Регистр.:
    14 апр 2013
    Сообщения:
    29
    Симпатии:
    9
    Доброго времени суток. Делаю регистрацию на сайте (точнее типо того), в общем мы создаем пользователя, из поля имя и фамилия создается папка с таким именем на сервере, в бд пишется имя фамилия и тд. Теперь есть необходимость загрузки аватара пользователя в папку которая создается скриптом - тоесть мы создаем пользователя с именем вадим и фамилией к примеру ворон - на сервере будет созданна папка 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 "Нихера не получилось";
      }
    ?>
    
    
    
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.040
    1) Убери символ собаки перед mkdir - посмотри ошибку...
    2) Выведи переменную $uploaddit
     
  3. ВадимПолоусоВорон

    ВадимПолоусоВорон Создатель

    Регистр.:
    14 апр 2013
    Сообщения:
    29
    Симпатии:
    9
    дело в том что ошибки нет от мкдир, просто при выполнении скрипта пишет это failed to open stream: No such file or directory in строка 39 - тоесть как я понял скрипт не видит папку куда грузить - но она то есть ведь сначала мы создали папку а потом просим туда уплоуднуть картинку (
     
  4. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.040
    Сама папка создаётся? Просто файл не копируется в неё?
     
  5. ВадимПолоусоВорон

    ВадимПолоусоВорон Создатель

    Регистр.:
    14 апр 2013
    Сообщения:
    29
    Симпатии:
    9
    да, скрипт полностью работает не считая копирования самой картинки. есть папка, есть ее название и тд - выводил переменную - норм, то есть переменна равна пути в который должно все писаться но все равно не пишется. когда задаю путь куда загрузить картинку вручную -все работает а вот когда путь есть переменная - вот тут уже беда (
     
  6. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.040
    Путь относительно open_basedir указывали? Или относительно файла php?
    Пробовали в начала пути / указывать?
     
    ВадимПолоусоВорон нравится это.
  7. ВадимПолоусоВорон

    ВадимПолоусоВорон Создатель

    Регистр.:
    14 апр 2013
    Сообщения:
    29
    Симпатии:
    9
    да все заработало) исправил путь и все гуд) спс) ниже привожу кусок кода - вдруг кому пригодится
    Код:
    <?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 "Нихера не получилось";
      }
     
    ?>
    
    
    
     
Статус темы:
Закрыта.