Jump to content
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_"];

Share this post


Link to post
Share on other 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_']

Share this post


Link to post
Share on other 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_ == ''){

 

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.