Napisany przez: zdzichu6969 26.05.2008, 20:59:03
Witam wszystkich, na wstepie chciałbym się przywitac:P
1. Mam upload plików chciałbym, aby za pomoca niego uploadowało by mi tylko pliki graficzne tj. tif, gif, jpg, bmp i zeby automatycznie blokowane były inne rozszezenia.
Działa to pod adresem: http://www.grucha.elektroda.eu
Tak wygląda skrypt:
Cytat
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<title>Upload by Grucha</title>
</head>
<body>
<body bgcolor="gray">
<font color="white">
<center> <br><img src="http://grucha.elektroda.eu/gfx.jpg"><br><br>
<b>UPLOAD PLIKÓW BY GRUCHA</b><br><br><br>
<?php
echo '<?xml version="1.0" encoding="iso-8859-2"?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<div>
<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="450000000000000" />
<input name="plik" type="file" />
<input type="submit" value="Wgraj" />
</form>
</div>
<?php
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];
if(is_uploaded_file($plik_tmp)) {
move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
<strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
echo "<br>Znajduję sie pod adresem:<b> <a href='http://grucha.elektroda.eu/upload/$plik_nazwa'>http://grucha.elektroda.eu/upload/$plik_nazwa</a>
<br><br>
<table border='0'><center>
<tr><td><td bgcolor='#426B9C'> <br>
Grafika na WWW<br>
<textarea cols='45' rows='5'><img src='http://grucha.elektroda.eu/upload/$plik_nazwa'></textarea>
<br><br>
Postać linku<br>
<textarea cols='45' rows='5'><a href='http://grucha.elektroda.eu/upload/$plik_nazwa'></textarea>
<br><br>
Miniaturka HTML<br>
<textarea cols='45' rows='5'><a href='http://grucha.elektroda.eu/upload/$plik_nazwa'><img src='http://grucha.elektroda.eu/upload/$plik_nazwa' width='200' height='160' border='0' target='_new'></a></textarea>
<br></center>
</td><td><td bgcolor='#426B9C'>
<br><br>
Wgrany obraz:<br>
<a href='http://grucha.elektroda.eu/upload/$plik_nazwa'><img src='http://grucha.elektroda.eu/upload/$plik_nazwa' width='200' height='160' border='0' target='_new'></a>
</td></table>
</b>";
}
?>
<br><br><br><br>
ŠWszelkie prawa zastrzeżone <a href="kontakt.html" target="new">Grucha</a><br>
Strona na serwerze elektroda.eu | Dzięki uprzejmości <a href="http://elektroda.pl" target="new">elektroda.pl</a>
</body>
</html>
</font>
Napisany przez: radex_p 26.05.2008, 21:08:53
Jaki to ma związek z programowaniem obiektowym?
Co do pytania:
$_FILES['plik']['name']
później tylko np. explode i patrzysz na ostatni człon.
Napisany przez: zdzichu6969 26.05.2008, 21:22:00
Przepraszam, nie wiedziałem gdzie to przyczepic.
radex_p jak to bedzie wyglądac w praktyce w skrypcie?
Napisany przez: Puciek 26.05.2008, 21:28:01
Takiego czegos nie daje sie na serwer, trzymaj localnie az bedzie mialo sens
http://grucha.elektroda.eu/upload/phpinfo.php
Szkoda tylko ze shell_exec wylaczony
Napisany przez: Cysiaczek 26.05.2008, 21:31:12
W praktyce? Wystarczą samiuteńkie podstawy php Odrobina samodzielności.
http://pl.php.net/manual/en/function.explode.php
i komentarze na tych stronach:
http://pl.php.net/manual/en/function.is-uploaded-file.php
http://pl.php.net/manual/en/function.move-uploaded-file.php
Napisany przez: empathon 26.05.2008, 21:38:31
Ojoj panie z czym do ludzi?
Kod
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<title>Upload by Grucha</title>
</head>
<body>
<body bgcolor="gray">
Dwa razy otwierasz body?
Kod
<font color="white">
<center> <br><img src="http://grucha.elektroda.eu/gfx.jpg"><br><br>
<b>UPLOAD PLIKÓW BY GRUCHA</b><br><br><br>
<?php
echo '<?xml version="1.0" encoding="iso-8859-2"?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
A to przypadkiem nie powinno być na początku?
Kod
<div>
<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="450000000000000" />
<input name="plik" type="file" />
<input type="submit" value="Wgraj" />
</form>
</div>
<?php
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];
if(is_uploaded_file($plik_tmp)) {
move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
<strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
echo "<br>Znajduję sie pod adresem:<b> <a href='http://grucha.elektroda.eu/upload/$plik_nazwa'>http://grucha.elektroda.eu/upload/$plik_nazwa</a>
<br><br>
<table border='0'><center>
<tr><td><td bgcolor='#426B9C'> <br>
Grafika na WWW<br>
<textarea cols='45' rows='5'><img src='http://grucha.elektroda.eu/upload/$plik_nazwa'></textarea>
<br><br>
Postać linku<br>
<textarea cols='45' rows='5'><a href='http://grucha.elektroda.eu/upload/$plik_nazwa'></textarea>
<br><br>
Miniaturka HTML<br>
<textarea cols='45' rows='5'><a href='http://grucha.elektroda.eu/upload/$plik_nazwa'><img src='http://grucha.elektroda.eu/upload/$plik_nazwa' width='200' height='160' border='0' target='_new'></a></textarea>
<br></center>
</td><td><td bgcolor='#426B9C'>
<br><br>
Wgrany obraz:<br>
<a href='http://grucha.elektroda.eu/upload/$plik_nazwa'><img src='http://grucha.elektroda.eu/upload/$plik_nazwa' width='200' height='160' border='0' target='_new'></a>
</td></table>
</b>";
}
?>
<br><br><br><br>
ŠWszelkie prawa zastrzeżone <a href="kontakt.html" target="new">Grucha</a><br>
Strona na serwerze elektroda.eu | Dzięki uprzejmości <a href="http://elektroda.pl" target="new">elektroda.pl</a>
</body>
</html>
</font>
I dajesz coś za zamknietym znacznikiem </html> ?
To wszystko szczegóły.
Co do typu pliku(niekoniecznie rozszerzenia) sprawdź http://pl.php.net/manual/en/function.mime-content-type.php.
To podstawowe zabezpieczenie.
W tym momencie można Ci wgrać cokolwiek. Lepiej usuń skrypt puki go nie zabezpieczysz!
Napisany przez: zdzichu6969 26.05.2008, 21:39:42
Nie jestem w stanie pojąć php tak szybko. Dotychczas znałem biegle html'a. Widac to szczególnie z mojego Uploadu, jednak potrzebuje tylka tę jedyną funkcję
Mimo wszystko dziękuje za pomoc - każdy otrzymuje punkt pomógł.
Pozdrawiam.
Z chęcią przyjmę więcej instrukcji.
gg tez
//GG: 3216215
Napisany przez: miccom 26.05.2008, 23:03:14
Cytat(zdzichu6969 @ 26.05.2008, 21:39:42 )
Nie jestem w stanie pojąć php tak szybko. Dotychczas znałem biegle html'a. Widac to szczególnie z mojego Uploadu, jednak potrzebuje tylka tę jedyną funkcję
Mimo wszystko dziękuje za pomoc - każdy otrzymuje punkt pomógł.
Pozdrawiam.
Z chęcią przyjmę więcej instrukcji.
gg tez
//GG: 3216215
Myślę że ktoś kto zna biegle html nie otwiera dwóch <body> ;/
Mój upload plików(zdjęć) wygląda tak:
formularz_uploadu.php
<?
http://www.php.net/echo "<FORM ACTION='upload.php' METHOD='POST' ENCTYPE='multipart/form-data'>";
http://www.php.net/echo " Zdjęcie: <INPUT type='file' name='zdjecie'><br>";
http://www.php.net/echo "<input type='hidden' name='MAX_FILE_SIZE' value='32500' />"; /* maksymalna wielkość pliku w bajtach */
http://www.php.net/echo "<button type='submit' name='oki' value='wyślij zdjęcie do bazy'>";
http://www.php.net/echo "<img src='zdj/wyslij.jpg' width='50' height='14' alt='wyślij zdjęcie do bazy danych'>";
http://www.php.net/echo "</button>";
http://www.php.net/echo "</form>";
?>
upload.php
<?php
$explode = http://www.php.net/explode('.', $HTTP_POST_FILES['zdjecie']['name']);
if($explode[1] == 'jpg' || $explode[1] == 'gif' || $explode[1] == 'png' || $explode[1] == 'GIF' || $explode[1] == 'JPG' || $explode[1] == 'PNG' || $explode[1] == 'TIF' || $explode[1] == 'tif' || $explode[1] == 'PSD' || $explode[1] == 'psd' || $explode[1] == 'JPEG' || $explode[1] == 'jpeg') {
$size=http://www.php.net/getimagesize($_FILES['zdjecie']['tmp_name']);
$size[0];
$size[1];
$xx=$size[0]*$size[1];
$xx;
if($size[0] < 360 && $size[1] < 500){//tu wstawiasz max rozmiar obrazka
$fhandle = http://www.php.net/fopen($HTTP_POST_FILES['zdjecie']['tmp_name'], "r");
$content = http://www.php.net/base64_encode(http://www.php.net/fread($fhandle, $HTTP_POST_FILES['zdjecie']['size']));
http://www.php.net/fclose($fhandle);
include('config.php');
$query = http://www.php.net/sprintf("insert into zdjecia (username, zdjecie, obecne) values (\"%s\", \"%s\", \"%s\")", $HTTP_POST_VARS['username'], $content, 'TAK');
$zapytanie = http://www.php.net/mysql_query($query);
if (!$zapytanie)
{
http://www.php.net/echo http://www.php.net/sprintf("Nie można dodać zdjęcia! Sad Error : %s", http://www.php.net/mysql_error()) ;
}
else
{
http://www.php.net/echo "<center><img src=\"http://www.twoja_strona.pl/showimage.php?username=".$l."\"></center>";//u mnie każdy user może dodać fotki i stąd podział. Można to ominąć.
http://www.php.net/echo "<center>";
http://www.php.net/echo "Powyższy obrazek został zapisany do bazy danych MySQL";
http://www.php.net/echo "</center>";
}
}else{
http://www.php.net/echo "plik jest za duży!";
}
}else{
http://www.php.net/echo "Wybrany plik ma nieodpowiednie rozszerzenie!";
}
}else{
http://www.php.net/echo "Próba włamania do systemu! Próbujesz złamać PRAWO POLSKIE.<br /> Twój adres IP (<b> $ipik</b> ) został zapisany- przy następnej próbie zostanie zablokowany, a My wystąpimy na drogę sądową.";
}
http://www.php.net/mysql_close($dbc);
?>
showimage.php- ten skrypt przekazuje do serwera zdjęcie(jeśli jest w bazie)
<?
http://www.php.net/header("Content-type: image/jpg;");
$l=$_GET['username'];
include('config.php');
$result = http://www.php.net/mysql_query("SELECT zdjecie FROM zdjecia WHERE `username`='$l'");
if (http://www.php.net/mysql_num_rows($result) != 0)
{
$row = http://www.php.net/mysql_fetch_assoc($result);
http://www.php.net/echo http://www.php.net/base64_decode($row['zdjecie']);
}
?>
Myślę że pomogłem. Pozdrawiam. miccom