Autor Zpráva
Neas
Profil
Ahoj.
Překládal jsem si chybové hlášky při nahrávání souboru a chtěl bych se vás zeptat, která z těchto variant je správně (nežádám o kontrolu překladu, ale scriptu):
switch($_FILES["obrazek"]["error"]):
              {
                case UPLOAD_ERR_PARTIAL:
                  $chyba = "Byla uploadována pouze část souboru";
                  break;
                case UPLOAD_ERR_NO_FILE:
                  $chyba = "Žádný soubor k uploadu";
                  break;
                case UPLOAD_ERR_NO_TMP_DIR:
                  $chyba = "Chybí dočasné složky";
                  break;
                case UPLOAD_ERR_CANT_WRITE:
                  $chyba = "Selhal zápis souboru na disk";
                  break;
                case UPLOAD_ERR_EXTENSION:
                  $chyba = "Neznámá chyba, prosím, kontaktujte administrátora";
                  break;
              }
              goto chyba;

nebo
switch($_FILES["obrazek"]["error"]):
              {
                case 3:
                  $chyba = "Byla uploadována pouze část souboru";
                  break;
                case 4:
                  $chyba = "Žádný soubor k uploadu";
                  break;
                case 6:
                  $chyba = "Chybí dočasné složky";
                  break;
                case 7:
                  $chyba = "Selhal zápis souboru na disk";
                  break;
                case 8:
                  $chyba = "Neznámá chyba, prosím, kontaktujte administrátora";
                  break;
              }
              goto chyba;

?? Jde o to, že nevím, zda v cases použít názvy chyb, nebo číselné hodnoty, které jsem našel na php.net.
Děkuji za pomoc

EDIT:
a ještě jeden problém týkající se chyb:
když mi podmínka:
 if(move_uploaded_file($uploaded, "../files/".$new_name))
            {
              echo "blabla";
            }
            else
            {
              echo "blabla";
            }

vyhodí možnost else, co bych měl nastavit jako chybovou hlášku? stejnou, jako při UPLOAD_ERR_CANT_WRITE, tj. Selhal zápis souboru na disk?
Děkuji
Mastodont
Profil
Lepší jsou konstanty, protože je z nich jasné, o jakou chybu jde (čili ten první případ).

A to goto jsem jako neviděl :-)
Neas
Profil
ok, díky. a s řešením mého druhého problému souhlasíš? (to s tím else a chybovou hláškou o selhání zapisu)

a co se ti nelíbí na goto?
EDIT: neboj, nepokouším se použít goto místo echo :-D
Nox
Profil
goto se vždy silně nedoporučuje, takovéto skákání v programu z něj udělá chaos, těžko se pak ostraňují chyby atd. navíc k tomu není důvod, je lepší to psát tak, aby to nebylo potřeba

ty chyby můžeš mít také něco jako

$errors = array(
  "file" => array(
    UPLOAD_ERR_PARTIAL => "Byla uploadována pouze část souboru",
    UPLOAD_ERR_NO_FILE => "Žádný soubor k uploadu",
    // ...
  )
);
$chyba = empty( $_FILES["obrazek"]["error"] ) ? NULL : $errors["file"][ $_FILES["obrazek"]["error"] ];

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: