Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularz wysyłający pliki na serwer FTP
Kosa_03
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 23.10.2007

Ostrzeżenie: (0%)
-----


Czy poniższy skrypt formularza wysyłającego plik na serwer jest dobry? Pomińmy system uwierzytelnienia który tutaj jest stworzony poprzez dołączenie pewnych części kodu instrukcją require('');

Kod
<?php

session_start();

?>

<html>
<head>
  <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />

<style type="text/css">
<!--
body
{
    font-family: Tahoma;
    font-size: 12px;
    color: #FFFFFF;
    padding-left: 10px;
}
input.przycisk
{
    font-family: Tahoma;
    font-size: 11px;
}
-->
</style>

</head>
<body background="gfx/tekst_tlo.gif">

<?php

require('cos.php');
require('uwierzytelnienie.php');

if($_POST['formularz'] != 'no')
{
    echo '<form enctype="multipart/form-data" action="dodaj_zdjecia.php" method="POST">'
       .   '<input type="hidden" name="MAX_FILE_SIZE" value="5242880">'
       .   '<input type="hidden" name="formularz" value="no">'
       .   '<input type="hidden" name="wyslij" value="yes">'
       .   'Wybierz zdjęcie: <input type="file" name="zdjecie" class="przycisk">'
       .   '<br><br>'
       .   '<input type="submit" value="Wyślij plik" class="przycisk">'
       . '</form>';
}

if($_POST['wyslij'] == 'yes')
{
    if($_FILES['zdjecie']['error'] > 0)
    {
        echo '<font color="#FF0000">Zgodność pliku (Krok 1 z 3):</font> ';
        switch($_FILES['zdjecie']['error'])
        {
            case 1 :
                echo '<font color="#FF0000">Rozmiar pliku przekroczył wartość upload_max_filesize.</font>';
            break;
            case 2 :
                echo '<font color="#FF0000">Rozmiar pliku przekroczył wartość max_file_size (5 MB)</font>.';
            break;
            case 3 :
                echo '<font color="#FF0000">Plik został wysłany tylko częściowo.</font>';
            break;
            case 4 :
                echo '<font color="#FF0000">Nie wysłano żadnego pliku.</font>';
            break;
        }
        exit;
    }
    else
    {
        echo '<font color="#00FF00">Zgodność pliku (Krok 1 z 3): Wynik przebiegł pomyślnie.<br></font>';
    }
    
    if(($_FILES['zdjecie']['type'] == 'image/pjpeg') || ($_FILES['zdjecie']['type'] == 'image/png'))
    {
        echo '<font color="#00FF00">Zgodność pliku (Krok 2 z 3): Wynik przebiegł pomyślnie.<br></font>';
    }
    else
    {
        echo '<font color="#FF0000">Zgodność pliku (Krok 2 z 3): Ten plik nie posiada rozszerzenia *.JPG lub *.PNG.</font>';
        exit;
    }
    
    $lokalizacja = '/Galeria/' . $_FILES['zdjecie']['name'];
    
    if(is_uploaded_file($_FILES['zdjecie']['tmp_name']))
    {
        if((copy($_FILES['zdjecie']['tmp_name'], $lokalizacja)) == false)
        {
            echo '<font color="#FF0000">Zgodność pliku (Krok 3 z 3): Plik nie może zostać skopiowany.</font>';
            exit;
        }
        else
        {
            echo '<font color="#00FF00">Zgodność pliku (Krok 3 z 3): Wynik przebiegł pomyślnie.</font>';
        }
    }
    else
    {
        echo '<font color="#FF0000">Zgodność pliku (Krok 3 z 3): Możliwy atak podczas wysyłania pliku ' . $_FILES['zdjecie']['name'] . '.</font>';
        exit;
    }
}

?>

</body>
</html>


Z góry dziękuję i pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )

Piszę ten post dlatego, iż serwer zwraca mi błąd w postaci

Cytat
Zgodność pliku (Krok 1 z 3): Wynik przebiegł pomyślnie.
Zgodność pliku (Krok 2 z 3): Wynik przebiegł pomyślnie.

Warning: copy() [function.copy]: open_basedir restriction in effect. File(/Galeria/kosa.JPG) is not within the allowed path(s): (/home/asot/:/tmp:/usr/local/lib/php/) in /home/asot/domains/2ti.src4u.com/public_html/dodaj_zdjecia.php on line 89

Warning: copy(/Galeria/kosa.JPG) [function.copy]: failed to open stream: Operation not permitted in /home/asot/domains/2ti.src4u.com/public_html/dodaj_zdjecia.php on line 89
Zgodność pliku (Krok 3 z 3): Plik nie może zostać skopiowany.


Ten post edytował Kosa_03 23.10.2007, 21:18:30
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 05:56