Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Въпрос за .htaccess файл

Featured Replies

Понеже хоста ми не позволява да редактирам php.ini файла (като всички други) реших да използвам .htaccess файла, за да позволя качването на файлове чрез ъплоуд система. Ето го съдържанитео на файла, който не работи:

.htaccess

php_flag file_upload on

ini_set('file_upload', 1)

ini_alter('file_upload', 'On')

Някой може ли да ми помогне с редактирането му, защото нямам много познания в тази област.

Понеже хоста ми не позволява да редактирам php.ini файла (като всички други) реших да използвам .htaccess файла, за да позволя качването на файлове чрез ъплоуд система. Ето го съдържанитео на файла, който не работи:

.htaccess

php_flag file_upload on

ini_set('file_upload', 1)

ini_alter('file_upload', 'On')

Някой може ли да ми помогне с редактирането му, защото нямам много познания в тази област.

http://www.javascriptkit.com/howto/htaccess.shtml

Функция за качване на файлове и още някои допълнения има тук :

http://www.kaldata.com/forums/index.php?s=...st&p=548991

  • Автор

Извинявам се, че не се уточних - аз имам система за ъплоуд просто хоста не ми позволява да ъплоудвам и затова ми показва грешка когато се опитам да кача нещо. В php.ini трябва да се промени file_upload на true, а понеже този файл се намира на хоста и нямам достъп до него съм принуден да използвам .htaccess файл. От темата до колкото прегледах не можах да намеря полезна информация, а от линка с .htaccess не намерих нищо за file upload enabling или нещо подобно. Извинявам се ако не съм бил съобразителен с прегледа, но моляте покажи ми по-точно или кажи как ако можеш къде ми е грешката. Благодаря предварително!

Извинявам се, че не се уточних - аз имам система за ъплоуд просто хоста не ми позволява да ъплоудвам и затова ми показва грешка когато се опитам да кача нещо. В php.ini трябва да се промени file_upload на true, а понеже този файл се намира на хоста и нямам достъп до него съм принуден да използвам .htaccess файл. От темата до колкото прегледах не можах да намеря полезна информация, а от линка с .htaccess не намерих нищо за file upload enabling или нещо подобно. Извинявам се ако не съм бил съобразителен с прегледа, но моляте покажи ми по-точно или кажи как ако можеш къде ми е грешката. Благодаря предварително!

Откъде знаеш, че "хоста не ми позволява да ъплоудвам" ?

Каква грешка се извежда ?

Сигурен ли си, че ъплоуда е забранен в php.ini ?

В .htaccess може да се използва само първата от твоите команди :

php_flag file_uploadS "1"

другите :

ini_set('file_upload', 1)

ini_alter('file_upload', 'On')

се изпълняват в PHP файл.

Пълен списък на опциите : http://www.php.net/manual/en/ini.list.php

Редактирано от Ken (преглед на промените)

  • Автор

Ами във форума им питах как може да стане това и администратора ми отговори, че не е възможно да се редактира php.ini-то. В скрипта мисля, че няма грешка. Направил съм разрешението на папката, в която трябва да се записват файловете 777 и пак показва грешка. Не се сещам за друг вариант освен този да не е разрешено - file_upload да е false.

Ами във форума им питах как може да стане това и администратора ми отговори, че не е възможно да се редактира php.ini-то. В скрипта мисля, че няма грешка. Направил съм разрешението на папката, в която трябва да се записват файловете 777 и пак показва грешка. Не се сещам за друг вариант освен този да не е разрешено - file_upload да е false.

Каква е все пак грешката ?

Не е file_upload, а file_uploads, и по подразбиране е разрешено - "1".

  • Автор

php_flag file_uploads on

ini_set('file_uploads', 1)

ini_alter('file_uploads', 'On')

Имаш предвид нещо такова ли, защото ми показва Internal Server Error 500. Най-добре напиши целия код редактиран. Мерси предварително! laugh.gif

php_flag file_uploads on

ini_set('file_uploads', 1)

ini_alter('file_uploads', 'On')

Имаш предвид нещо такова ли, защото ми показва Internal Server Error 500. Най-добре напиши целия код редактиран. Мерси предварително! laugh.gif

Тази грешка, най-вероятно, се получава от невалидните инструкции, които си въвел в .htaccess файла.

Двата реда с ini_set нямат място в .htaccess файла. Те се изпълняват във файл тип PHP.

  • Автор

Eми пробвах с

php_flag file_uploads on
и като
php_flag file_uploads 1
и
php_flag file_uploads "1"

, но пак си показва, че качването не е успешно?!

Eми пробвах с
php_flag file_uploads on
и като
php_flag file_uploads 1
и
php_flag file_uploads "1"

, но пак си показва, че качването не е успешно?!

Има голямо значение, какво точно съобщение се извежда.

Откъде идва това съобщение : от сървъра ли, от скрипта ли ?

Качи, ако трябва, самия скрипт някъде и дай линк към него.

Може и в .htaacces файла да имаш още някакви грешки.

  • Автор

Ето ми я системата:

upload.php

<?php

# Check to see if the file is accessible

if ( !isset($_FILES['data']['name']) || $_FILES['data']['name'] == '' ) {

die('No input file specified. Please go back and select a file to upload.');

} // End check for file being set


$max_filesize = 200000;

$filetype = 'text/plain';

$upload_path = 'upload';


# Check to see if the filesize is too large

if ($_FILES['data']['size'] > $max_filesize) {

die('Your filesize is too large. Please make your filesize smaller than ' . $max_filesize . ' bytes.');

} // End if filesize is too large


# Check to see if the filetype is correct

if ($_FILES['data']['type'] != $filetype) {

die('Sorry, your file was not of the ' . $filetype . ' mimetype (yours was ' . $_FILES['data']['type'] . ').');

} // End filetype check


# If file has gotten this far, it is successful


$copy_to = $_SERVER['DOCUMENT_ROOT'] . $upload_path . $_FILES['data']['name'];


# Upload the file

$upload = move_uploaded_file($_FILES['data']['tmp_na

me'], $copy_to);


# Check to see if upload was successful

if (!$upload) {

die('Sorry, your file could not be uploaded.');

}


echo 'Your file contents are below: <hr>' . file_get_contents($copy_to);

?>

upload.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tr

ansitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>PHP Upload System</title>

</head>

<body>

<form name="file_uploader" action="upload.php" method="post" enctype="multipart/form-data">

<input type="file" name="data"><br />

<input type="submit" name="upload" value="Upload File">

</form>

</body>

</html>

А грешката, която ми показва се извежда от скрипта. Смисъл показва ми, че качването е неуспешно: Sorry, your file could not be uploaded.

Ето ми я системата:

upload.php

<?php

# Check to see if the file is accessible

if ( !isset($_FILES['data']['name']) || $_FILES['data']['name'] == '' ) {

die('No input file specified. Please go back and select a file to upload.');

} // End check for file being set

$max_filesize = 200000;

$filetype = 'text/plain';

$upload_path = 'upload';

# Check to see if the filesize is too large

if ($_FILES['data']['size'] > $max_filesize) {

die('Your filesize is too large. Please make your filesize smaller than ' . $max_filesize . ' bytes.');

} // End if filesize is too large

# Check to see if the filetype is correct

if ($_FILES['data']['type'] != $filetype) {

die('Sorry, your file was not of the ' . $filetype . ' mimetype (yours was ' . $_FILES['data']['type'] . ').');

} // End filetype check

# If file has gotten this far, it is successful

$copy_to = $_SERVER['DOCUMENT_ROOT'] . $upload_path . $_FILES['data']['name'];

# Upload the file

$upload = move_uploaded_file($_FILES['data']['tmp_name'], $copy_to);

# Check to see if upload was successful

if (!$upload) {

die('Sorry, your file could not be uploaded.');

}

echo 'Your file contents are below: <hr>' . file_get_contents($copy_to);

?>

А грешката, която ми показва се извежда от скрипта. Смисъл показва ми, че качването е неуспешно: Sorry, your file could not be uploaded.

Само преместих отбелязаното с червено на горния ред.

А реда :

$upload_path = 'upload';

мисля, че трябва да стане :

$upload_path = '/upload/';

Редактирано от Ken (преглед на промените)

  • Автор

След като редактирах файла и го пробвах ми излезна тази грешка:

Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/usr/local/apache/htdocsuploadtext.txt) is not within the allowed path(s): (/home/:/usr/lib/php:/tmp) in /home/a5337261/public_html/upload.php on line 26

Явно нещо директориата трябва да е друга, но не мога да гадая точно.

Редактирано от hAWK_gc (преглед на промените)

След като редактирах файла и го пробвах ми излезна тази грешка:

Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/usr/local/apache/htdocsuploadtext.txt) is not within the allowed path(s): (/home/:/usr/lib/php:/tmp) in /home/a5337261/public_html/upload.php on line 26

Явно нещо директориата трябва да е друга, но не мога да гадая точно.

Не си направил това :

$upload_path = '/upload/';

Виж какъв път до файла търси :

/usr/local/apache/htdocsuploadtext.txt

  • Автор

Извинявай не го бях видял, току що го направих и пак се появи същата грешка, само че директориата е /usr/local/apache/htdocs/upload/text.txt

Извинявай не го бях видял, току що го направих и пак се появи същата грешка, само че директориата е /usr/local/apache/htdocs/upload/text.txt

Имаш ли такава директория ? Ако нямаш я създай.

  • Автор

Имам разбира се. Аз я зададох когато редактирах upload.php

  • Автор

Не да я зададеш, а да я създадеш в папката htdocs.

Има я създадена. Не съм чак толкова незнаещ.

Има я създадена. Не съм чак толкова незнаещ.

Добре тогава създай я на друго място, не точно в главната, и направи съответните промени в скрипта.

Защото при мен работи.

  • Автор

Не пак същото! Явно всичко се упира на тъпия ми хост angry.gif 000webhost!

Не пак същото! Явно всичко се упира на тъпия ми хост angry.gif 000webhost!

Няма проблем в "тъпия им хост", защото ако си видял, там си пише : File uploads ON.

Не е необходимо да правиш, каквито и да е настройки по .htaccess, просто в скрипта промени реда :

$copy_to = $_SERVER['DOCUMENT_ROOT'] . $upload_path . $_FILES['data']['name'];

на :

$copy_to = $upload_path . $_FILES['data']['name'];

  • Автор

Warning: move_uploaded_file(/upload/here/dasd.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/a5337261/public_html/upload.php on line 26

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpesRU2s' to '/upload/here/dasd.txt' in /home/a5337261/public_html/upload.php on line 26

Тъп си е :) . Дори като аз не съм обърнал внимание в функциите на хоста, то поне като се допитах във форума как мога да си направя системката и да разреша File Uploads да ми бяха казали, че са си активирани. Вместо това администратора ме посъветва да използвам .htaccess...

ЕДИТ: Всъщност, ти къде намери, че File Uploads е ON, защото аз не намирам. Да не се бъркаш аз съм на http://www.000webhost.com/

Намерих.

Редактирано от hAWK_gc (преглед на промените)

Warning: move_uploaded_file(/upload/here/dasd.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/a5337261/public_html/upload.php on line 26

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpesRU2s' to '/upload/here/dasd.txt' in /home/a5337261/public_html/upload.php on line 26

Тъп си е :computer8: . Дори като аз не съм обърнал внимание в функциите на хоста, то поне като се допитах във форума как мога да си направя системката и да разреша File Uploads да ми бяха казали, че са си активирани. Вместо това администратора ме посъветва да използвам .htaccess...

ЕДИТ: Всъщност, ти къде намери, че File Uploads е ON, защото аз не намирам. Да не се бъркаш аз съм на http://www.000webhost.com/

Намерих.

Пак нямаш някаква папка на хоста.

Гледай какви съобщения ти извежда !

Регистрирайте се или влезете в профила си за да коментирате

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.