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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Помощ за PHP скрипт за upload

Featured Replies

Правя сега един сайт в който съм включил галерия, която просто индексира файловете в определени директории и прави умалени изображения. Само, че всеки път аз трябва да ги качвам в тези директории и е много досадно. Намерих един скрипт за upload, но той качва в една директория и в подпапки.

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

<html>

<head>

<title>Качване на изображения</title>

</head>

<body>

<?php

$pw = 'passwd';

$dir = "./images/"; //Change this to the correct dir RELATIVE TO WHERE THIS SCRIPT IS, or /full/path/

//MIME types to allow, Gif, jpeg, zip ::Edit this to your liking

$types = array("application/pdf","image/png","image/x-png","audio/wav","image/gif","image/jpeg","image/pjpeg","application/x-zip-compressed");

// Nothing to edit below here.

//Function to do a directory listing

function scandir($dirstr) {

echo "<pre>\n";

passthru("ls -l -F $dirstr 2>&1 ");

echo "</pre>\n";

}

//Check to determine if the submit button has been pressed

if((isset($_POST['submit'])) and ($_POST['PW'] == $pw)){

//Shorten Variables

$tmp_name = $_FILES['upload']['tmp_name'];

$new_name = $_FILES['upload']['name'];

$path = $_POST['subdir'];

$fullpath = "$dir$path/";

$fullpath = str_replace("..", "", str_replace("\.", "", str_replace("//", "/", $fullpath)));

$clean_name = ereg_replace("[^a-z0-9._]", "", str_replace(" ", "_", str_replace("%20", "_", strtolower($new_name) ) ) );

// lets see if we are uploading a file or doing a dir listing

if(isset($_POST['Dir'])){

echo "Directory listing for $fullpath\n";

scandir("$fullpath");

}else{

//Check MIME Type

if ((in_array($_FILES['upload']['type'], $types)) and (!file_exists($fullpath.$clean_name))){

// create a sub-directory if required

if (!is_dir($fullpath)){

mkdir("$fullpath", 0755);

}

//Move file from tmp dir to new location

move_uploaded_file($tmp_name,$fullpath . $clean_name);

echo "$clean_name of {$_FILES['upload']['size']} bytes was uploaded sucessfully to $fullpath";

}else{

//Print Error Message

echo "<small>File <strong><em>{$_FILES['upload']['name']}</em></strong> Was Not Uploaded - bad file type or file already exists</small><br />";

//Debug

$name = $_FILES['upload']['name'];

$type = $_FILES['upload']['type'];

$size = $_FILES['upload']['size'];

$tmp = $_FILES['upload']['name'];

echo "Name: $name<br />Type: $type<br />Size: $size<br />Tmp: $tmp";

}

}

} else {

echo 'Ready to upload your file';

} ?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">

<fieldset>

<legend>Качване на изображения </legend>

Парола

<input type="password" name="PW" /><br />

Показване на качените файлове

<input type="checkbox" name="Dir" value="on" /><br />

Файл за качване

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

Поддиректория за качване:

<input type="text" name="subdir" value="<?php $path = $_POST['subdir']; echo "$path";?>" />

(Препоръчва се правно) **Ще се създаде директория ако не съществува <br />

<input type="submit" name="submit" value="Качване" />

</fieldset>

</form>

</body>

</html>

В случая имам директория /images, както и две поддиректории да речем 1 и 2. Тук има опция да въведеш името на поддиректория в която да се качат снимките. възможно ли е на това място да се сложи "Dropdown menu" от което да се избират възможностите?

Работеща верися на скрипта има http://rooms.art-bg.org/gallery.php

Понеже нямам време да ти пиша кода, само ще ти обърна внимане на експлойта, който забелязах - реда:

scandir("$fullpath");
Тази неефективна функция може да позволи изпълнение на системни команди, ако не й изчистиш параметъра от & ; | > < и други подобни знаци, примерно с:
passthru("ls -l -F ".escapeshellarg($dirstr)." 2>&1 ");

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

  • Автор

Мерси за съвета, но все пак мога да защитя файла или просто да изтрия опцията от html формата, н о не ми решава проблема. не знам как да направя в последното поле, където трябва да се напише директория да има само 2 или 3 опции, които да са или радио бутони или падащо меню

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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