Autor Zpráva
kovs
Profil
Zdarec.
ZA TU DOBU JSEM NA TO UŽ PŘIŠEL!
ovšem mám tu jiný problém.. vypisuje se mi toto (hned pod <body>)
Strict Standards: Only variables should be passed by reference in /data/web/virtuals/79746/virtual/www/scripty/profils-modify.php on line 83
script:
        $photo_new = ($_FILES['photo_new'] ['tmp_name']);
        $photo_new_name = ($_FILES['photo_new'] ['name']);
        $photo_new_size = ($_FILES['photo_new'] ['size']/1024)/1024;
        $povoleni = array('jpg', 'jpeg', 'png', 'gif');
        if ($photo_new_size > 2) {
            $photo_error_up = "<h3>Fotka má příliš velkou velikost. Maximální velikost fotky může být 2MB.</h3>";
        }
        elseif (is_uploaded_file($photo_new)) {
            $cesta = "img/user/";
            $photo_id = Date("jmYHis", Time());
            $codec = end(explode(".", $photo_new_name)); // toto je řádek 83, když ho dám do poznámky, tak chyba zmizí.. kde je chyba?
            $photo_new_name1 = explode(".", $photo_new_name);
            include "../include/prevodni-tabulka.php";
            $photo_new_name2 = strtr($photo_new_name1[0], $prevodni_tabulka);
            $photo_new_name3 = "$photo_new_name2$photo_id.$codec";
        }
Alphard
Profil
kovs:
kde je chyba?
Funkce end přebírá vstupní pole referencí, protože mj. mění ukazatel aktuálního prvku v poli. Není možné v parametru přímo volat funkci, protože pak selže referencování.

Možných řešení existuje více, zcela ekvivalentní by bylo řádek 11 rozepsat na 2, v prvním uložit výstup explode do proměnné a ve druhém volat funkci end.
Druhou možností je vytvořit jinou konstrukci, která bude dělat totéž, nejlepší asi bude
$codec = pathinfo($photo_new_name, PATHINFO_EXTENSION);
kovs
Profil
já jsem to mezi tím vyřešil takto
                $codec1 = explode(".", $photo_new_name);
                $codec2 = $codec1[1];
a ještě jsme zjistil, že samotná proměnná $codec nejde použít, protože to už v php asi cosi znamená, protože my to vypisovalo chybu... musel jsem to zaindexovat (1,2), aby chyba zmizla... když tam nechám samotný $codec, vypisuje to tu chybu opětovně....
Alphard
Profil
Nevím o tom, že by $codec něco znamenalo, chyba byla jinde. Mimochodem, vaše řešení nepočítá s tím, že v názvu bude více teček, vždy vrací druhý prvek, nikoliv poslední.
kovs
Profil
dobře, děkuji, udělám to tedy podle vás ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0