| Autor | Zpráva | ||
|---|---|---|---|
| Demoniak Profil |
#1 · Zasláno: 23. 7. 2015, 14:51:06
Ahoj, babrám se v takové blbosti.
uploaduju fotky a pojmenovávám je pomocí funkce rand();. Všechno funguje až do doby, než začnu kontrolovat, zda-li soubor již neexistuje a v tom případě chci funkci spustit znovu aby nastavila nová náhodná čísla. Funkce: function nahodne_cislo($pocet,$slozka){
$nahodnecislo = "";
for ($i = 1; $i <= $pocet; $i++){
$cislo = rand(0, 5);
$nahodnecislo = $nahodnecislo . $cislo;
} if (!is_file($slozka.$nahodnecislo.".jpg")){
return $nahodnecislo;
}else{
nahodne_cislo($pocet,$slozka);
}
}Upload fotek: if (isset($_POST['ok'])){
try{
include "simpleimage.php";
$slozka = "fotky/novinky/";
$nazev = nahodne_cislo(1,$slozka);
$fotka = $nazev.".jpg";
$img = new abeautifulsite\SimpleImage();
$img -> load($_FILES["fotka"]["tmp_name"]) -> save($slozka . $fotka);
$img -> load($_FILES["fotka"]["tmp_name"]) -> save($slozka ."thumb_". $fotka);
echo "Fotka ". $_FILES["fotka"]["name"] . " byla nahrána do ".$slozka.$nazev.".jpg";
}
catch(Exception $e) {
echo 'Error: ' . $e->getMessage();
}
}Všechno funguje, jen se někdy fotky neukládají s názvem (fotka se uloží jako ".jpg" místo např. "0.jpg"). Poradíte mi prosím kde by mohla být chyba? |
||
| Alphard Profil |
#2 · Zasláno: 23. 7. 2015, 15:01:26
Při volání rekurze tam chybí return.
|
||
| Demoniak Profil |
#3 · Zasláno: 23. 7. 2015, 15:17:17
Výborně, myslel jsem si, že to bude prkotina, ale tohle by mě nenapadlo. Díky :)
|
||
| Keeehi Profil |
#4 · Zasláno: 23. 7. 2015, 17:17:26
Demoniak:
Nebo nevymýšlej kolo a použij pro to funkci přímo určenou. php.net/manual/en/function.tempnam.php Nebo soubory pojmenovávej hashem jejich obsahu. Tam teoretická možnost kolize existuje ale v drtivé většině případů je zanedbatelná. |
||
|
Časová prodleva: 11 let
|
|||
0