Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 15 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.07
Prihlásený: 18.02.11
Príspevky: 108
Témy: 28
Príspevok NapísalOffline : 30.08.2007 21:54

Mam na stranke formular, ktoreho sucastou je aj upload obrazku. Vie mi niekto poradit, ako skontrolujem nasledovne? :

1) aby obrazok bol iba vo formate .jpg
2) velkost obrazka max. 200 kB
3) rozmery max. 200 x 150 px

Nechcem to riesit cez php po odoslani formulara, ale javascriptom este pred odoslanim.

Ten upload vo forme HTML vyzera takto:
Kód:
<form  enctype="multipart/form-data" action="upload.php" method="post" onsubmit="return validate()">

Vložiť obrázok (max. 500kB)</font>
  <input type="hidden" name="MAX_FILE_SIZE" value="204800" />
  Vyber súbor v počítači
  <input name="subor" type="file" />


Dakujem!


Offline

Čestný člen
Čestný člen
kontrola uploadnuteho obrazka javascriptom

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok NapísalOffline : 30.08.2007 22:27

ak to chces ochranit budes to musiet pomocou php osetrit aj tak. ochrana javascriptom nieje ochrana, kedze ju hocikedy mozes vypnut.







_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.07
Prihlásený: 18.02.11
Príspevky: 108
Témy: 28
Príspevok Napísal autor témyOffline : 31.08.2007 0:06

Na zaciatku stranky mam kontrolu, ci uzivatel ma alebo nema zapnuty javascript a upozorni ho, aby si ho zapol ... ale o to nejde. Jednoducho to chcem osetrit scriptom PRED odoslanim, pretoze po odoslani ked obrazok skontrolujem php scriptom a nema spravne parametre, musi sa vratit spat na stranku s formularom a znovu ho vyplnit ... a to nechcem! Tak poradi mi niekto?


Offline

Skúsený užívateľ
Skúsený užívateľ
kontrola uploadnuteho obrazka javascriptom

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 31.08.2007 1:31

Môžeš si tie "zlé" zarametre nechať a predvyplniť nimi ten formulár. Osobne nepoznám spôsob, akým by JavaScript mohol binárne analyzovať súbor, aby zistil, či sa naozaj jedná o JPG obrázok, alebo aké má rozlíšenie. Ostatné veci by sa možno aj nejak dali, môžeš sa pozrieť sem http://www.w3schools.com/js/default.asp .

Inak, ani to upozornenie ťa neochráni pred nutnosťou implementovať PHP kontrolu zadaných údajov, pretože "útočník" si môže nechať zapnutý JS, uložiť si stránku do počítača, pozmeniť jej kód (zmazať JavaScript) a vyplniť ju záškodníckymi údajmi a odoslať na tvoj server. Môže tak dokonale obísť akúkoľvek ochranu založenú na klientských skriptoch, bez väčšej námahy.







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.07
Prihlásený: 18.02.11
Príspevky: 108
Témy: 28
Príspevok Napísal autor témyOffline : 31.08.2007 2:16

tak dobre teda, mozno to php bude lepsie. Vie mi teda niekto poradit taky script, co by testoval len tieto zakladne veci v php:

1) aby obrazok bol iba vo formate .jpg
2) velkost obrazka max. 200 kB
3) rozmery max. 200 x 150 px

A ked php script zisti chybu /ak nesedi niektora z poziadavok/, ako sa vrati naspat k formularu?


Offline

Skúsený užívateľ
Skúsený užívateľ
kontrola uploadnuteho obrazka javascriptom

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 31.08.2007 2:32

Tvoje tri veci:
Kód:
if (isset($_FILES['foto'])){
  if (exif_imagetype($_FILES['foto']['tmp_name']) != IMAGETYPE_JPEG){
    echo "Toto nie je JPG/JPEG obrázok!";
    exit();
  } else {
    if ($_FILES['foto']['size'] > 200000 ) {
      echo "Príliš veľká fotografia (dátovo)! Fotografie nesmú mať viac ako 200 KB.";
      exit();
    } else {         
      $foto=$_FILES['foto']['name'];
      $ciel = "../nejaka/cesta/k/priecinku/s/fotkami/".$foto;
      $nazov_suboru = $_FILES['foto']['tmp_name'];
      move_uploaded_file($nazov_suboru, $ciel) or die ("Subor sa nedá uloziť");
      list($width, $height) = getimagesize($ciel);
      if ($width > "200" || $height > "150"){
        echo "Príliš veľká fotografia (rozmermi)! Fotografie nesmú mať viac ako 200px x 150px";
        exit();
      } else {
        echo "Tvoj obrázok všetko splnil, gratulujem :)";
      }
    }
  }
}


Keď skript zistí chybu a chce sa vrátiť k formuláru, má na to viacero spôsobov. Buď si chybné dáta uloží do databázy, cookies alebo URL a presmeruje skript na stránku s formulárom. Tam bude iný skript, ktorý skontroluje, či nie sú nejaké chybné dáta v databázi/cookies/URL a ak sú, tak ich zobrazí. To je princíp, kód si hádam napíšeš aj sám. Viac na http://php.vrana.cz/informovani-uzivate ... perace.php







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.07
Prihlásený: 18.02.11
Príspevky: 108
Témy: 28
Príspevok Napísal autor témyOffline : 31.08.2007 11:07

vyskusal som ten tvoj kod, co si napisal, ale neviem kde je chyba, mne totiz stale vypisuje ze Toto nie je JPG/JPEG obrázok, aj ked som vlozil .jpg!

Vo formulari mam nasledovne:
Kód:
<form enctype="multipart/form-data" action="upload.php" method="post" onsubmit="return validate()"><input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  Vyber súbor v poèítaèi
  <input name="foto" type="file" /><br>

no
a do upload.php som dal toto
Kód:
<?
   
  if (isset($_FILES['foto'])){
  if (exif_imagetype($_FILES['foto']['tmp_name']) != IMAGETYPE_JPEG){
    echo "Toto nie je JPG/JPEG obrázok!";
    exit();
  } else {
    if ($_FILES['foto']['size'] > 200000 ) {
      echo "Príliš velká fotografia (dátovo)! Fotografie nesmú mat viac ako 200 KB.";
      exit();
    } else {         
      $foto=$_FILES['foto']['name'];

      $ciel = "obr/".$id. $foto; //toto som zmenil - k nazvu priradi ID
      $obr = $ciel;
      $nazov_suboru = $_FILES['foto']['tmp_name'];
      move_uploaded_file($nazov_suboru, $ciel) or die ("Subor sa nedá ulozit");
      list($width, $height) = getimagesize($ciel);
      if ($width > "200" || $height > "150"){
        echo "Príliš velká fotografia (rozmermi)! Fotografie nesmú mat viac ako 200px x 150px";
        exit();
      } else {
        echo "Tvoj obrázok všetko splnil, gratulujem :)";
      }
    }
  }
 
 }


Nevies, kde moze byt problem?


Offline

Skúsený užívateľ
Skúsený užívateľ
kontrola uploadnuteho obrazka javascriptom

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 31.08.2007 11:20

Máš nainštalovanú EXIF knižnicu (to zistíš cez phpinfo(); )?







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.07
Prihlásený: 18.02.11
Príspevky: 108
Témy: 28
Príspevok Napísal autor témyOffline : 31.08.2007 11:56

EXIF Support enabled
EXIF Version 1.4 $Id: exif.c,v 1.118.2.37.2.4 2006/01/01 13:46:52 sniper Exp $
Supported EXIF Version 0220
Supported filetypes JPEG,TIFF


Offline

Skúsený užívateľ
Skúsený užívateľ
kontrola uploadnuteho obrazka javascriptom

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 31.08.2007 12:04

Skúsime to s inou funkciou:
Kód:
if (isset($_FILES['foto'])){
  list($width, $height, $type) = getimagesize($_FILES['foto']['tmp_name']);
  if ($type) != IMAGETYPE_JPEG){
    echo "Toto nie je JPG/JPEG obrázok!";
    exit();
  } elseif ($width > "200" || $height > "150"){
    echo "Príliš velká fotografia (rozmermi)! Fotografie nesmú mat viac ako 200px x 150px";
    exit();
  } else {
    if ($_FILES['foto']['size'] > 200000 ) {
      echo "Príliš velká fotografia (dátovo)! Fotografie nesmú mat viac ako 200 KB.";
      exit();
    } else {         
      $foto=$_FILES['foto']['name'];
 
      $ciel = "obr/".$id. $foto; //toto som zmenil - k nazvu priradi ID
      $obr = $ciel;
      $nazov_suboru = $_FILES['foto']['tmp_name'];
      move_uploaded_file($nazov_suboru, $ciel) or die ("Subor sa nedá ulozit");
      echo "Tvoj obrázok všetko splnil, gratulujem :)";
    }
  }
}







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.07
Prihlásený: 18.02.11
Príspevky: 108
Témy: 28
Príspevok Napísal autor témyOffline : 31.08.2007 12:54

No, v tomto pripade my vypisuje chybu
Kód:
Parse error: syntax error, unexpected T_IS_NOT_EQUAL
Mozno som len prehliadol nejaku chybu, alebo neviem. Musi to nejko fungovat! Nevzdavam sa este ...


Offline

Správca fóra
Správca fóra
kontrola uploadnuteho obrazka javascriptom

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 31.08.2007 12:57

Kód:
if ($type) != IMAGETYPE_JPEG)

tu je jedna zatvorka naviac...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.07
Prihlásený: 18.02.11
Príspevky: 108
Témy: 28
Príspevok Napísal autor témyOffline : 31.08.2007 13:21

Sakra! zatvorka, mas pravdu!!! Uz sme sa posunuli kusok vpred ...

Tak teraz to prebieha takto: Vlozil som velky subor .jpg /vacsie rozmery, vacsia velkost/, a script vypisal opat, ze Toto nie je JPG/JPEG obrázok! Ked som vsak vlozil ten isty obrazok, len zmenseny /mensi rozmer, menej kB/, vypisalo ze splnilo vsetko a obrazok sa odoslal v poriadku. Neviem vsak preco pri velkom obrazku vypise, ze to nie je JPG.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 01.09.2007 14:46

dufajme že si odstránil správnu zátvorku ... mal si odstraniť tú prvú ... teda
[code]
if ($type != IMAGETYPE_JPEG)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.08.07
Prihlásený: 18.02.11
Príspevky: 108
Témy: 28
Príspevok Napísal autor témyOffline : 01.09.2007 20:48

Ano, script mi uz konecne funguje !!! Velmi ste mi pomohli! DAKUJEM!


Odpovedať na tému [ Príspevkov: 15 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Kontrola textu z obrázka pred odoslaním formulára

v Ostatné

1

476

08.02.2008 14:56

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. koncovka uploadnuteho suboru

v PHP, ASP

2

400

07.04.2010 14:48

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmena nazvu uploadnuteho suboru

v PHP, ASP

19

824

13.09.2010 19:27

rover218 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc s javascriptom

v JavaScript, VBScript, Ajax

1

394

02.05.2012 10:41

GoodWill Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s javascriptom

v JavaScript, VBScript, Ajax

4

395

16.09.2012 19:19

Jame_s Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Načítanie .png z uploadnutého php ...

v PHP, ASP

13

534

12.01.2009 6:59

d0.0b Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem s javascriptom FC8

v Operačné systémy Unix a Linux

0

580

07.05.2009 18:38

tlacitko Enter Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zavolanie php funkcie javascriptom

v PHP, ASP

6

742

24.08.2008 23:15

suchy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Meno posledneho uploadnuteho suboru v zlozke?

v PHP, ASP

3

342

31.03.2010 19:12

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výber posledného uploadnutého súboru z dir?

v PHP, ASP

6

488

13.12.2009 14:00

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Upozornenie pri HTML stránke Javascriptom

v JavaScript, VBScript, Ajax

3

2282

09.01.2019 15:36

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Formátovanie textu vypísaného JavaScriptom pomocou HTML

v HTML, XHTML, XML, CSS

6

989

15.09.2022 13:06

void Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Orezanie obrázka

v Grafické programy

3

1840

31.05.2019 10:41

void Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. preload obrázka

v JavaScript, VBScript, Ajax

2

796

12.03.2008 10:18

mage Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmena obrázka

v HTML, XHTML, XML, CSS

1

528

04.10.2015 16:06

void Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. otvorenie obrázka

v JavaScript, VBScript, Ajax

3

810

10.02.2008 18:30

jablko05 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra