PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 7
Demon1341 Отправлено: 21 Декабря, 2011 - 01:02:11 • Тема: upload • Форум: Работа с файловой системой и файлами

Ответов: 12
Просмотров: 3431
Всё равно что то никак не въеду как надо, писало что нет файла в дериктории, потому, что действительно не было, если создать папку с ником пользователя, то ошибок нет, но папка пользователя из /upload/user/ удаляется и создается в корне сайта Не понял
Всё, этот вопрос снят, помогло вот как:
PHP:
скопировать код в буфер обмена
  1. $dir = './upload/user/'.$old_login.'/';
  2.         $per = './upload/user/'.$login.'/';
  3. rename($dir, $per);
Demon1341 Отправлено: 20 Декабря, 2011 - 22:22:07 • Тема: upload • Форум: Работа с файловой системой и файлами

Ответов: 12
Просмотров: 3431
Подскажите, как с помощью функции rename() изменить название каталога пользователя.
В скрипте предусмотрено изменение пользователем своего логина, при этом нужно, что бы и имя его папки менялось со старого логина на новый.
Вот часть кода, в котором идет обращение к бд для изменения старого логина на новый:
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['login']))//Если существует логин
  2.       {
  3. $login = $_POST['login'];
  4. $login = stripslashes($login); $login = htmlspecialchars($login); $login = trim($login);//удаляем все лишнее
  5. if ($login == '') { exit("Вы не ввели логин");} //Если логин пустой, то останавливаем сценарий
  6.  
  7. if (strlen($login) < 3 or strlen($login) > 15) {//проверяем дину
  8. exit ("Логин должен состоять не менее чем из 3 символов и не более чем из 15."); //останавливаем выполнение сценариев
  9. }
  10.  
  11. // проверка на существование пользователя с таким же логином
  12. $result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
  13. $myrow = mysql_fetch_array($result);
  14. if (!empty($myrow['id'])) {
  15. exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
  16. }
  17. $result4 = mysql_query("UPDATE users SET login='$login' WHERE login='$old_login'",$db);
  18. if ($result4=='TRUE') {
  19. mysql_query("UPDATE messages SET author='$login' WHERE author='$old_login'",$db);

После этого кода пробую так:
PHP:
скопировать код в буфер обмена
  1. $dir = './upload/user/'.$login.'/';
  2. rename($old_login, $login);

Тогда начинает ругаться: Warning: rename(demon1341,Дмитрий) [function.rename]: No such file or directory in.
Я так понимаю она файл ищет, и не находит, а как быть с переименовыванием каталога?
Или я во что то не врубаюсь, но каталоги она ведь тоже переименовывает Не понял
Demon1341 Отправлено: 19 Декабря, 2011 - 21:05:09 • Тема: upload • Форум: Работа с файловой системой и файлами

Ответов: 12
Просмотров: 3431
Bio man попробую может завтра.
Теперь вот другая задача, надо что бы если юзер вводит логин на киррилице, то она конвертилась в латиницу и вводилась в таком виде в бд.
С помощью strtr попробывал вот такой код
//Если ник на киррилице, то переводим его в латиницу
PHP:
скопировать код в буфер обмена
  1. function encodestring($login)
  2.   {
  3.     // Сначала заменяем "односимвольные" фонемы.
  4.     $login=strtr($login,"абвгдеёзийклмнопрстуфхъыэ_",
  5.     "abvgdeeziyklmnoprstufh'iei");
  6.     $login=strtr($login,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
  7.     "ABVGDEEZIYKLMNOPRSTUFH'IEI");
  8.     // Затем - "многосимвольные".
  9.     $st=strtr($login,
  10.                     array(
  11.                         "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
  12.                         "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
  13.                         "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
  14.                         "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
  15.                         "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
  16.                         )
  17.              );
  18.     // Возвращаем результат.
  19.     return $login;
  20.   }

Но видимо не туда, я его вставляю, как заносилось в бд на русском так и заносится Не понял
Demon1341 Отправлено: 19 Декабря, 2011 - 20:24:48 • Тема: upload • Форум: Работа с файловой системой и файлами

Ответов: 12
Просмотров: 3431
OrmaJever пишет:

Она же определяет является является ли файл дерикторией, а мне надо проверять по имени файлы на повтор и если такое имя файла уже есть в папке на сервере, то отказывал юзеру в загрузке.
С проблемой с ошибкой при повторном аплоде юзером, который уже выгружал файл разобрался.
Действительно проще было сделать создание папки при регистрации, так и сделал.
Demon1341 Отправлено: 19 Декабря, 2011 - 13:30:25 • Тема: upload • Форум: Работа с файловой системой и файлами

Ответов: 12
Просмотров: 3431
Добрый день!
Вообщем есть простенький скрипт по аплоду файлов на сервер:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_GET['id'])) {$id =$_GET['id']; }
  3. if($_FILES["filename"]["size"] > 1024*3*1024)
  4.    {
  5.      echo ("Размер файла превышает три мегабайта");
  6.      exit;
  7.    }
  8. $dir = './upload/user/'.$_SESSION['login'].'/';
  9. mkdir($dir);
  10. $dump = "\r\n\r\n\r\n".print_r($GLOBALS, true);
  11. $f = fopen($dir.'__dump.txt', 'a');
  12. fwrite($f, $dump);
  13. fclose($f);
  14. if(count($_FILES)){
  15. foreach($_FILES as $key=>$value){
  16. $tmp = $value['tmp_name'];
  17. $name = $value['name'];
  18. echo move_uploaded_file($tmp, $dir.$name);
  19. }
  20. echo("Файл загружен");
  21. }else
  22. {
  23.  echo("Ошибка загрузки файла");
  24.    }
  25. ?>

При выгрузке он создает в каталоге /upload/user/ папку с ником зарегистрированного пользователя и грузит файл в неё, но я никак не могу разобраться в двух нужных функциях.
При повторной загрузке файла пользователем, который уже раньше загружал файл скрипт ругается "Warning: mkdir() [function.mkdir]: File exists in ... on line 10", т.к. в начале создается папка, которая уже создалась при первой выгрузке, тут надо какое то условие прописать, что-бы шла проверка создана директория с ником пользователя или нет, т.е. просто что-бы скрипт знал, что заново создавать не надо, тогда и ругаться не будет.
Так же хотел сделать сравнение имен файлов, что-бы не загружались дубли, но что то не получилось.
Пробывал через file_exists(), но что то не выходит.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $name = '$name';
  3.  
  4. if (file_exists($name)) {
  5.     echo "Файл $name существует";
  6. ?>
Demon1341 Отправлено: 16 Декабря, 2011 - 19:31:43 • Тема: Где ошибка? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 216
Champion, разные выскакивали, после правки - Parse error: syntax error, unexpected T_STRING in /var/www/demon1341/data/www/graf fis.ru/user.php on line 49
На 49 начинаю править сыпятся другие ошибки.
В чистом виде без правки с моей стороны ошибка - Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/demon1341/data/www/graf fis.ru/user.php on line 46
В первом посте чистый код без правки. Улыбка
Demon1341 Отправлено: 16 Декабря, 2011 - 19:14:02 • Тема: Где ошибка? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 216
Добрый вечер!
Я в изучении php начинающий, есть скрипт из инэта, типа мини-cms, так вот т.к. с синтаксисом php не дружу выскакивают разные ошибки при попытке редактирования, одну страницу подправил, а вот другую никак, код следующий:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.             session_start();
  3. include ("bd.php");// файл bd.php должен быть в той же папке, что и все    остальные, если это не так, то просто измените путь
  4.             if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
  5.             else
  6.             { exit("Вы зашли на    страницу без параметра!");} //если не    указали id, то выдаем ошибку
  7.             if (!preg_match("|^[\d]+$|", $id))    {
  8.             exit("<p>Неверный    формат запроса! Проверьте URL</p>");//если id не число, то выдаем    ошибку
  9.             }
  10. if (!empty($_SESSION['login']) and    !empty($_SESSION['password']))
  11.             {
  12.             //если    существует логин и пароль в сессиях, то проверяем, действительны ли они
  13.             $login = $_SESSION['login'];
  14.             $password = $_SESSION['password'];
  15.             $result2 = mysql_query("SELECT id FROM    users WHERE login='$login' AND password='$password'",$db);
  16.             $myrow2 = mysql_fetch_array($result2);
  17.             if (empty($myrow2['id']))
  18.  
  19.                {
  20.                //Если не действительны (может мы удалили    этого пользователя из базы за плохое поведение)
  21.  
  22.                 exit("Вход на эту страницу разрешен    только зарегистрированным пользователям!");
  23.                }
  24.             }
  25.             else {
  26.             //Проверяем,    зарегистрирован ли вошедший
  27.             exit("Вход на эту    страницу разрешен только зарегистрированным пользователям!"); }
  28.             $result = mysql_query("SELECT * FROM    users WHERE id='$id'",$db);
  29.             $myrow =    mysql_fetch_array($result);//Извлекаем все данные    пользователя с данным id
  30. if (empty($myrow['login'])) {    exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует
  31. ?>
  32.             <html>
  33.             <head>
  34.             <title><?PHP echo $myrow['login'];    ?></title>
  35.             </head>
  36.             <body>
  37.  
  38.             <h2>Пользователь "<?PHP echo    $myrow['login']; ?>"</h2>
  39.  
  40. <?PHP
  41.             print <<<HERE
  42.             |<a href='page.php?id=$myrow2[id]'>Моя страница</a>|<a href='index.php'>Главная страница</a>|<a href='all_users.php'>Список пользователей</a>|<a href='exit.php'>Выход</a><br><br>
  43.             HERE;
  44.             //выше вывели меню
  45. if ($myrow['login'] == $login) {
  46.             //Если    страничка принадлежит вошедшему, то предлагаем изменить данные и выводим    личные сообщения
  47. print <<<HERE
  48. <form action='update_user.php'    method='post'>
  49.             Ваш логин    <strong>$myrow[login]</strong>. Изменить логин:<br>
  50.             <input name='login' type='text'>
  51.             <input type='submit' name='submit' value='изменить'>
  52.             </form>
  53.             <br>
  54. <form action='update_user.php'    method='post'>
  55.             Изменить пароль:<br>
  56.             <input name='password' type='password'>
  57.             <input type='submit' name='submit' value='изменить'>
  58.             </form>
  59.             <br>
  60. <form action='update_user.php'    method='post' enctype='multipart/form-data'>
  61.             Ваш аватар:<br>
  62.             <img alt='аватар' src='$myrow[avatar]'><br>
  63.             Изображение должно быть    формата jpg, gif или png. Изменить аватар:<br>
  64.             <input type="FILE"    name="fupload">
  65.             <input type='submit' name='submit' value='изменить'>
  66.             </form>
  67.             <br>
  68. <h2>Личные    сообщения:</h2>
  69. HERE;
  70. $tmp = mysql_query("SELECT * FROM    messages WHERE poluchatel='$login' ORDER BY id DESC",$db);
  71.             $messages =    mysql_fetch_array($tmp);//извлекаем сообщения    пользователя, сортируем по идентификатору в обратном порядке, т.е. самые    новые сообщения будут вверху
  72. if (!empty($messages['id'])) {
  73.             do //выводим    все сообщения в цикле
  74.               {
  75.             $author = $messages['author'];
  76.             $result4 = mysql_query("SELECT avatar,id    FROM users WHERE login='$author'",$db); //извлекаем аватар автора
  77.             $myrow4 = mysql_fetch_array($result4);
  78. if (!empty($myrow4['avatar']))    {//если такового нет, то выводим стандартный (может    этого пользователя уже давно удалили)
  79.             $avatar = $myrow4['avatar'];
  80.             }
  81.             else {$avatar =    "avatars/net-avatara.jpg";}
  82.      printf("
  83.                 <table>
  84.                 <tr>
  85.  
  86.                 <td><a href='page.php?id=%s'><img alt='аватар'    src='%s'></a></td>
  87.              
  88.                 <td>Автор:    <a href='page.php?id=%s'>%s</a><br>
  89.                  Дата:    %s<br>
  90.                                 Сообщение:<br>
  91.  
  92.                             %s<br>
  93.                             <a href='drop_post.php?id=%s'>Удалить</a>
  94.  
  95.              
  96.                 </td>  
  97.                 </tr>
  98.                 </table><br>
  99.                 ",$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);
  100.               //выводим само сообщение
  101.               }
  102.                  while($messages = mysql_fetch_array($tmp));
  103.                     }
  104.                                                                                           else    {
  105.                                                                                           //если сообщений не найдено
  106.                                                                                           echo    "Сообщений нет";
  107.                                                                                           }
  108.                                                                                          
  109.  
  110.             }
  111. else
  112.             {
  113.             //если    страничка чужая, то выводим только некторые данные и форму для отправки    личных сообщений
  114. print <<<HERE
  115.             <img alt='аватар' src='$myrow[avatar]'><br>
  116.             <form action='post.php' method='post'>
  117.             <br>
  118.             <h2>Отправить Ваше    сообщение:</h2>
  119.             <textarea cols='43' rows='4'    name='text'></textarea><br>
  120.             <input type='hidden' name='poluchatel'    value='$myrow[login]'>
  121.             <input type='hidden' name='id'    value='$myrow[id]'>
  122.             <input type='submit' name='submit' value='Отправить'>
  123.  
  124.             </form>
  125.             HERE;
  126.             }
  127. ?>
  128.             </body>
  129.             </html>

Понимаю, что тут наверно таких тем уже куча, но мне надо просто побыстрее решение найти. Улыбка
А ниже привожу кусок кода со страницы, которую получилось подправить:
PHP:
скопировать код в буфер обмена
  1. print
  2.             "|<a    href='page.php?id=$_SESSION[id]'>Моя страница</a>|<a    href='index.php'>Главная страница</a>|<a    href='all_users.php'>Список пользователей</a>|<a    href='exit.php'>Выход</a><br><br>[b]"[/b];
  3.  

На второй строке из куска кода была ошибка, решилась проставкой кавычек.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB