Ir para conteúdo
maurohpg

Atualização PHP 8.1

Recommended Posts

Olá, estou fazendo alterações nos sistema de alguns clientes, atualizando a versão do php para 8.1. O sistema estava rodando em uma plataforma de php 7.1 e estou corrigindo alguns erros, mais um deles não consigo entender, sei que são erros de versão do php, mas pelo que vi a strip_tag não foi descontinuada? Estou certo? Se alguém puder dar uma luz agradeço.

Deprecated: strip_tags(): Passing null to parameter #1 ($string) of type string is deprecated 

Esse erro é apresentado na linha $senha_ = strip_tags($senha_);

Warning: Undefined array key "senha_"
Esse erro é apresentado na linha $senha_ = $_POST["senha_"];

Compartilhar este post


Link para o post
Compartilhar em outros sites

image.png.816295c78ac25bec8f51427bad7011ea.png
A sua mensagem está dizendo que o parâmetro 1 não pode ser null, logo, $senha_ = null
justamente pq não há nenhum $_POST['senha_']

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, não estou habituado com o PHP 8, não entendi essa parte que me explicou: parâmetro 1 não pode ser null, logo, $senha_ = null
justamente pq não há nenhum $_POST['senha_'].

Estou fazendo da seguinte forma:

/* Informa o nível dos erros que serão exibidos */
error_reporting(E_ALL);
 
/* Habilita a exibição de erros */
ini_set("display_errors", 1);

extract($_POST);
extract($_COOKIE);
require_once("../config.php");

$senha_ = $_POST["senha_"];
$senha_ = strip_tags($senha_);
$senha_ = md5($senha_);

$login_ = $_POST["login_"];
$login_ = strip_tags($login_);

$query = mysqli_query($conexao, "SELECT * FROM usuarios WHERE login='$login_' AND senha='$senha_'") or print(mysqli_error());
$valida = mysqli_fetch_array($query);
$ttl = mysqli_num_rows($query);
$user = isset($user["login_"]) ? $user["login_"] : $valida;
$pass = isset($pass["senha_"]) ? $pass["senha_"] : $valida;

if($login_ == '' || $senha_ == ''){

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
//extract($_POST);
//extract($_COOKIE);
require_once("../config.php");

//$senha_ = $_POST["senha_"];
//$senha_ = strip_tags($senha_);
//$senha_ = md5($senha_);

//$login_ = $_POST["login_"];
//$login_ = strip_tags($login_);

$senha = (isset($_POST['senha_']) ? $_POST['senha_'] : false);
$login = (isset($_POST['login_']) ? $_POST['login_'] : false);

if (!$senha) {
  // Não existe o índice senha_ na super global $_POST
} else if (empty($senha)) {
  // $senha não possui valor algum para manipular
} else if (!$login) {
  // Não existe o índice login_ na super global $_POST
} else if (empty($login)) {
  // $login não possui valor algum para manipular
} else {
  $senha_ = password_hash($_POST['senha_'], PASSWORD_DEFAULT);
  $login_ = htmlentities($_POST['login_']);
  
  // Dessa forma você registra o usuário e também pode validar seu login
}

Qualquer dado deve ser verificado antes de usar, além do mais o PHP em desencorajando as formas procedurais de códigos a cada tempo que passa.

 

Para usar a encriptação por password_hash a coluna ao qual vai armazenar esse valor, aconselho ser um varchar com o tamanho de 400 a 500 entradas.

 

password_hash: Irá criar uma sequência criptográfica portanto nenhum código será usado no banco.

htmlentities: Irá substituir qualquer tag por entidade html portanto nenhum código será usado no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.