загрзка файлов с сайта на сервер PHP
$uploaddir = './uploads/';
$file = $uploaddir . basename($_FILES['uploadfile']['name']);
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {echo "success";}
else {echo "error";}
?>
Но проблема в том, что доступ к этому хостингу осуществляться по паролю, следовательно я не туда загружать файлы предварительно не войдя под своим логином и паролем. Как можно подключиться к серверу, по аналогии подключения например к БД mysql
$db = mysql_connect ("localhost","log","pass");
mysql_select_db ("main",$db);
Или как еще можно сделать загрузку файлов на своем сайте и на какой файловый хостинг, что бы потом можно было использовать эти файлы, например для загрузки пользователем сайта аватарок в его профиль?
Возможно немного не понял вопрос, но:
регестрируюсь я на сайте: http://guru-host.ru/billing/
Там же заказываю бесплатный хостинг, который поддерживает php, 1 БД, есть доступ по Ftp.
Доступ на панель управления хостингом: http://176.9.32.230:2222/
FTP-сервер: 176.9.32.230
( порт FTP-сервера: 21
режим соединения c FTP-сервером: пассивный // Passive Mode)
БД phpMyAdmin (доступно при наличии созданных БД): http://176.9.32.230/phpmyadmin/
Хоть разные адреса, но это все с отного хостинга и все объеденено.
Доступ к FTP, управлению хостингом, управлению БД осуществляется по логину и паролю, который выдается при заказе хостинга.
Помогите сделать загрузку файлов с сайта на сервер,
поясните пожалуйста фразу..
Но проблема в том, что доступ к этому хостингу осуществляться по паролю, следовательно я не туда загружать файлы предварительно не войдя под своим логином и паролем. Как можно подключиться к серверу, по аналогии подключения например к БД mysql
вот эта фраза к коду, который вы привели, отношения не имеет. А код имеет отношение к загрузке файла через <input type=file> страницы и их получение скриптом на сервере.. на сайте пхп http://php.net/manual/en/features.file-upload.post-method.php это показано
в этом случае пароль вам не нужен, всё это дело уходит POST-запросом, в скрипте файл виден через FILES, следить надо за правами на папку, в которую будет загружаться/копироваться..
session_start();
header("Content-Type: text/html;charset=UTF-8");
?>
<?php
$uploaddir = '/';
$uploadfile = $uploaddir.basename($_FILES['userfile']['name']);
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print "Possible file upload attack! Дополнительная отладочная информация:\n";
print_r($_FILES);
}
print "</pre>";
?>
Выдает ошибки:
Warning: move_uploaded_file(/3.php) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/u20996/domains/k-lynx-e.u-gu.ru/public_html/zag.php on line 13
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php8Vy9RX' to '/3.php' in /home/u20996/domains/k-lynx-e.u-gu.ru/public_html/zag.php on line 13
Possible file upload attack! Here's some debugging info:
Possible file upload attack! Дополнительная отладочная информация:
Array
(
[userfile] => Array
(
[name] => 3.php
[type] => application/octet-stream
[tmp_name] => /tmp/php8Vy9RX
[error] => 0
[size] => 812
)
)
И одна из них (первая) на действие move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)
То есть как я понимаю нету прав сохранить данный файл в папке. Мне надо как-нибудь сделать, что бы данное действие происходило под логином и паролем, что бы были права сохранять файл.
Пароль для подключения не нужен если скрипт находится на том же хостинге где вы собираетесь загружать файлы.
Если бы вы загружали файлы с хостинга на хостинг тогда вам пришлось бы использовать FTP-функции PHP
Я бы порекомендовал использовать пример из данного блога: Загрузка файла на сервер с проверками для безопасной загрузки
понимаете правильно, но от логина и пароля это не зависит.. посмотрите здесь, после чего на папку, в которую будет происходить загрузка, поставьте права 0777 (chmod 0777). Это можно сделать ФТП-клиентом, если хостер не запретил. Если запретил - просите его. Но правда в данном коде у вас всё равно ничего не выйдет, так как $uploaddir = '/'; - это корень сервера)) ни один здравомыслящий человек туда писать не будет, вы же не пишете в корень диска C: свои файлы я надеюсь? ))) в-общем, создайте папочку на аплоад (e.g. upload), на неё права, замените либо на ./upload или ~/upload, либо абсолютным /home/u20996/domains/k-lynx-e.u-gu.ru/public_html/upload/ - в вашем случае, после чего должно исправиться..
2xakkap проверка это конечно хорошо, но пока автору она не поможет)) с таким путём до папки загрузки точно))