maurohpg 0 Denunciar post Postado Maio 10, 2022 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
tetsuo 0 Denunciar post Postado Maio 10, 2022 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
maurohpg 0 Denunciar post Postado Maio 10, 2022 Obrigado, mas esse parâmetro null é dentro do banco que ele está dizendo no erro? Compartilhar este post Link para o post Compartilhar em outros sites
tetsuo 0 Denunciar post Postado Maio 10, 2022 Não sr.! $_POST é uma variável do php não tem nada a ver com banco Compartilhar este post Link para o post Compartilhar em outros sites
maurohpg 0 Denunciar post Postado Maio 11, 2022 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_ = 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_ == ''){ Compartilhar este post Link para o post Compartilhar em outros sites
Omar~ 87 Denunciar post Postado Maio 12, 2022 //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
maurohpg 0 Denunciar post Postado Maio 12, 2022 Bom dia Omar, obrigado pela explicação, vou verificar como você disse. Obrigado por enquanto. Compartilhar este post Link para o post Compartilhar em outros sites