Pular para o conteúdo principal

Alertando o usuário sobre problemas encontrados

Alertar o usuário sobre o que foi que aconteceu é sempre importante.

Senão acontece de o cara apertar em salvar e não saber se foi salvo ou se deu m... em algum local.

Acontece várias vezes de um mesmo arquivo de processamento receber dados de formulários diversos. Como fazer para devolver a resposta para a página que enviou? A resposta é o comando getenv('HTTP_REFERER').

Assim, normalmente eu faço o seguinte. A página de processamento ficará mais ou menos assim:

try{
    // tenta salvar
    $nObjeto = new NObjeto();
    $nObjeto->salvar($_POST);
}
catch(Exception $e){
    // se não deu certo devolve para a página que pediu para
    // salvar com os erros passados via GET
    header('Location: '.getenv('HTTP_REFERER').'&erro='.$e->getCode().'&mensagem='.$e->getMessage());
}

Se o getenv não funcionar como deveria utilize o $_SERVER['HTTP_REFERER'].

Comentários

Postagens mais visitadas deste blog

Lista de órgãos emissores de RG

Para quem quiser normalizar os órgãos emissores de RG, aí vai uma lista retirada do site da FGV: SSP - Secretaria de Segurança Pública PM - Polícia Militar PC - Policia Civil CNT - Carteira Nacional de Habilitação DIC - Diretoria de Identificação Civil CTPS - Carteira de Trabaho e Previdência Social FGTS - Fundo de Garantia do Tempo de Serviço IFP - Instituto Félix Pacheco IPF - Instituto Pereira Faustino IML - Instituto Médico-Legal MTE - Ministério do Trabalho e Emprego MMA - Ministério da Marinha MAE - Ministério da Aeronáutica MEX - Ministério do Exército POF - Polícia Federal POM - Polícia Militar SES - Carteira de Estrangeiro SJS - Secretaria da Justiça e Segurança SJTS - Secretaria da Justiça do Trabalho e Segurança ZZZ - Outros (inclusive exterior)

Função php que gera número romano

/**  * Funcao que serve para transformar o numero em romano  * @param integer $integer Recebe algum numero inteiro  * @return string Retorna a string do numero romano  */ function fRomano($integer) {     $table = array('M'=>1000, 'CM'=>900, 'D'=>500, 'CD'=>400, 'C'=>100, 'XC'=>90, 'L'=>50, 'XL'=>40, 'X'=>10, 'IX'=>9, 'V'=>5, 'IV'=>4, 'I'=>1);     $return = '';     while($integer > 0) {         foreach($table as $rom=>$arb) {             if($integer >= $arb) {                 $integer -= $arb;                 $return .= $rom;                 break;             }         }     }     return $return; }