Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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_"];
Obrigado, mas esse parâmetro null é dentro do banco que ele está dizendo no erro?
Não sr.!
$_POST é uma variável do php
não tem nada a ver com bancoDesculpe, 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_ = nulljustamente 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_ == ''){//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.Bom dia Omar, obrigado pela explicação, vou verificar como você disse. Obrigado por enquanto.
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_']