Mostrar o nome de quem está logado em PHP sem confiar no navegador
Guarde só o id da conta na sessão, leia o nome no banco e escape na saída. Assim a barra "Olá, Ana" não vira "Olá, administrador" com um cookie editado.
399 artigos nesta categoria.
Guarde só o id da conta na sessão, leia o nome no banco e escape na saída. Assim a barra "Olá, Ana" não vira "Olá, administrador" com um cookie editado.
Valide o nome, monte o caminho a partir de uma raiz fixa, crie com permissão mínima e confira com realpath. Assim "../../" nunca vira uma pasta fora do projeto.
Descubra qual php.ini o servidor realmente carrega e ajuste três coisas: erros para o log, limites de upload coerentes com o servidor web e fuso horário explícito.
Monte o ZIP com ZipArchive a partir de uma lista branca de extensões, gere fora da requisição e entregue por link autenticado que expira.
A origem sai de uma lista que o código conhece, o destino tem nome gerado por você e a cópia passa por um arquivo temporário. Assim copy() não sobrescreve nem lê o que não deve.
Favicon que some em algumas páginas, fica antigo ou não sai no Google: teste com um script, corrija o caminho relativo, o fallback do SPA e o cache.
Monte um formulário de contato em PHP que grava antes de enviar, usa SMTP autenticado, não deixa o visitante mexer em cabeçalho e segura robôs.
Fuso horário no PHP 8.5 testado: instante em UTC, data de calendário sem conversão, agendamento com hora local e fuso, Etc/GMT invertido e base de fusos velha.
Escolha entre 301, 302, 307 e 308, configure o redirecionamento no Apache, no nginx ou no PHP, evite cadeias e valide o parâmetro de retorno para não virar porta de golpe.
O fluxo completo de exclusão: POST com token, id validado, DELETE com id e dono como parâmetros, conferência de linhas afetadas e exclusão lógica para poder desfazer.
Regras diferentes pedem if com nome. Um valor com vários casos pede match ou um array. Entenda a comparação frouxa do switch e quando o enum resolve de vez.
Monte cadastro e login com password_hash, password_verify, consulta com parâmetro, sessão regenerada e limite de tentativas, sem nunca guardar a senha legível.