Jump to content
unset

Erro Trying to access array offset on value of type null

Recommended Posts

Olá a todos, tenho uma aplicação pequena, que roda normalmente no php5 porém ao mudar a versão do php para 7 a mesma está apresentando a seguinte mensagem de erro

 

Notice: Trying to access array offset on value of type null in

 

 

<?php
  /* 
   *  APP CORE CLASS
   *  Creates URL & Loads Core Controller
   *  URL Format - /controller/method/param1/param2
   */
  class Core {
    // Set Defaults
    protected $currentController = 'Pages'; // Default controller
    protected $currentMethod = 'index'; // Default method
    protected $params = []; // Set initial empty params array

    public function __construct(){
      $url = $this->getUrl();
      // Look in controllers folder for controller
      if(file_exists('../app/controllers/'.ucwords($url[0]).'.php')){
        // If exists, set as controller
        $this->currentController = ucwords($url[0]);
        // Unset 0 index
        unset($url[0]);
      }

      // Require the current controller
      require_once('../app/controllers/' . $this->currentController . '.php');

      // Instantiate the current controller
      $this->currentController = new $this->currentController;

      // Check if second part of url is set (method)
      if(isset($url[1])){
        // Check if method/function exists in current controller class
        if(method_exists($this->currentController, $url[1])){
          // Set current method if it exsists
          $this->currentMethod = $url[1];
          // Unset 1 index
          unset($url[1]);
        }
      }

      // Get params - Any values left over in url are params
      $this->params = $url ? array_values($url) : [];

      // Call a callback with an array of parameters
      call_user_func_array([$this->currentController, $this->currentMethod], $this->params);
    }

    // Construct URL From $_GET['url']
    public function getUrl(){
        if(isset($_GET['url'])){
          $url = rtrim($_GET['url'], '/');
          $url = filter_var($url, FILTER_SANITIZE_URL);
          $url = explode('/', $url);
          return $url;
        }
    }
  }

 

Alguém poderia dar uma força ai?

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

  • Similar Content

    • By Jack Oliveira
      Ola pessoal bom dia 
      Bom estou tentando fazer um formulario de cadastros
      com ajax
       
      mais sempre me retorna o erro uma msg que definir caso não esteja fazendo
      Houve um erro ao fazer o seu cadastro, tente novamente!
       
       
      Mais já olhei tudo que podia não há porque dar erro pois esta sendo colocando os campos certos para cadastrar
       
      No Ajax esta da seguinte forma
      <script> $(function(){ $('.form').submit(function(){ $('.loading').html("<img src='loading.gif' width='45'>"); $.ajax({ url: '<?= ConfigPainel('site_url');?>controlers/cadastro_empresa_users.php', type: 'POST', data: $('.form').serialize(), success: function(data){ $('.mostrar').html(data); $('.loading').hide(); $('.form')[0].reset(); } }); return false; }); }); </script> no html no form fiz assim pegando a class form do ajax creio que não há nada de errado aqui
      <form action="" method="post" enctype="multipart/form-data" class="form">
       
      no php esta assim
       
      <?php header('Access-Control-Allow-Origin: *'); require_once ('../admin/database/config.php'); require_once ('../admin/database/config.database..php'); require_once ('../admin/database/config.session.php'); require_once ('../admin/includes/funcoes.php'); if($_POST){ if(empty($_POST['user_name']) || empty($_POST['user_lastname']) || empty($_POST['user_email']) || empty($_POST['user_telefone']) || empty($_POST['user_password']) || empty($_POST['user_plano']) || empty($_POST['nome_empresa']) || empty($_POST['nome_empresa_link'])){ echo '<script> $(document).ready(function(){ swal("Ops...","Preencha todos os campos obrigatórios!","warning"); }); </script>'; }else{ // INICIO PASSANDO PARA ARRAY DO USUARIO. $user_name = post('user_name'); $user_lastname = post('user_lastname'); $user_email = post('user_email'); $user_telefone = post('user_telefone'); $user_password = md5(post('user_password')); $user_plano = post('user_plano'); $user_level = 3; $user_registration = date('Y-m-d H:i:s'); // FIM ARRAY DO USUARIO. $QueryC = DBRead('configuracoes_site','*'); if (is_array($QueryC)) { foreach ($QueryC as $CONF) { //Teste $DiasDeTeste = $CONF['dias_testes']; //Plano 1 $nome_plano_um = $CONF['nome_plano_um']; $v_plano_um = $CONF['v_plano_um']; $dias_plano_um = $CONF['dias_plano_um']; //Plano 2 $nome_plano_dois = $CONF['nome_plano_dois']; $v_plano_dois = $CONF['v_plano_dois']; $dias_plano_dois = $CONF['dias_plano_dois']; //Plano 3 $nome_plano_tres = $CONF['nome_plano_tres']; $v_plano_tres = $CONF['v_plano_tres']; $dias_plano_tres = $CONF['dias_plano_tres']; }} //INICIO PASSANDO PARA ARRAY DA EMPRESA $nome_empresa = post('nome_empresa'); $nome_empresa_link = post('nome_empresa_link'); $end_uf_empresa = post('end_uf_empresa'); $cidade_empresa = post('cidade_empresa'); $end_bairro_empresa = post('end_bairro_empresa'); $end_rua_n_empresa = post('end_rua_n_empresa'); $email_empresa = post('user_email'); $telefone_empresa = preg_replace("/[^0-9]/", "", post('user_telefone')); $empresa_data_renovacao = date("Y-m-d", strtotime("+{$DiasDeTeste} days")); $QueryE = DBRead('estados','*',"WHERE id='{$end_uf_empresa}'"); if (is_array($QueryE)) { foreach ($QueryE as $ES) { $uf_empresa = $ES['sigla']; }} $QueryU = DBRead('ws_users','*',"WHERE user_plano='{$user_plano}'"); if (is_array($QueryU)) { foreach ($QueryU as $USER) { $UserPlano = $USER['user_plano']; }} switch ($UserPlano) { case '1': $Planos = $nome_plano_um; $Valor = 'R$:'.$v_plano_um.''; $Dias = 'Assinatura de '.$dias_plano_um.' dias'; break; case '2': $Planos = $nome_plano_dois; $Valor = 'R$:'.$v_plano_dois.''; $Dias = 'Assinatura de '.$dias_plano_dois.' dias'; break; case '3': $Planos = $nome_plano_tres; $Valor = 'R$:'.$v_plano_tres.''; $Dias = 'Assinatura de '.$dias_plano_tres.' dias'; break; default: $Planos = 'Plano Teste'; $Valor = 'Bônus R$: 21,00'; $Dias = 'Assinatura de '.$empresa_data_renovacao.' dias grátis'; break; } $Adicionar = array( 'user_name' => $user_name, 'user_lastname' => $user_lastname, 'user_email' => $user_email, 'user_telefone' => $user_telefone, 'user_password' => $user_password, 'user_plano' => $user_plano, 'user_level' => 3, 'user_registration' => $user_registration ); $Query = DBCreate('ws_users', $Adicionar); $Adicionar = array( 'nome_empresa' => $nome_empresa, 'nome_empresa_link' => $nome_empresa_link, 'end_uf_empresa' => $uf_empresa, 'cidade_empresa' => $cidade_empresa, 'end_bairro_empresa' => $end_bairro_empresa, 'end_rua_n_empresa' => $end_rua_n_empresa, 'email_empresa' => $email_empresa, 'telefone_empresa' => $telefone_empresa, 'empresa_data_renovacao' => $empresa_data_renovacao ); $Query = DBCreate('ws_empresa', $Adicionar); if ($Query != 0) { echo' <script> $(document).ready(function(){ swal("Ops '.utf8_encode($user_name).'...","Houve um erro ao fazer o seu cadastro, tente novamente!", "error"); }); </script>'; }else{ echo' <script> $(document).ready(function(){ swal("Sucesso '.utf8_encode($user_name).'...", "Seu cadastro foi realizado com sucesso.<br><a href="./login/Acessar"><button class="btn btn-default btn-sm"></button>Fazer Login...</a>", "success") }); </script>'; } } } Posso esta deixando passar algo no php que não estou vendo o problema....
    • By marcossantana10
      Faço uma consulta no banco para buscar uma lista de horários, depois preciso comparar esse resultado com um array só de horários que eu possuo. Utilizei o código abaixo pra isso:
       
      //dados do array $h_indisponiveis separados por _ (ilustrativo) 13:20:00_13:40:00_14:00:00_14:20:00_18:40:00_19:00:00_21:20:00 $sql = "MINHA CONSULTA"; $sql=$pdo->query($sql); if ($sql->rowCount() > 0) { $result = array('error'=>false, 'data' => array()); foreach ($sql as $row) { $horario['id'] = $row['id']; $horario['hora'] = $row['hora']; $horario['tempo'] = $row['tempo']; for($i=0; $i<$sizeArray; $i++){ if ($h_indisponiveis[$i] == $row['hora']){ $horario['disponivel'] = 'n'; } else { $horario['disponivel'] = 's'; } } array_push($result['data'], $horario); } echo json_encode($result); }  
      O problema é que ele não está retornando todas as correspondências entre o objeto da consulta e o array, apenas a última. Ao invés de marcar 6 resultados como "disponivel = n", ele só marca um. Como posso corrigir
       

    • By dearclexa
      Estou tentando manipular um array e agrupar os dados de produtos por nome de fornecedor igual.   A minha array retorna os produtos que eu tenho por fornecedor, quando o mesmo fornecedor tem mais de um produto ele me retorna em arrays separadas, e gostaria de agrupar esses dados. Tentei de algumas formas, porém sem sucesso.
       
      Retorno do meu array:
      Array ( [nrochamado] => 10780 [cnpjFornecedor] => 111111111000111 [nmFornecedor] => FORNECEDOR TESTE 01 [cdproduto] => ML2 [nmproduto] => ESCOVA [quantidade] => 10 [unidade] => UN [vlfornecedor] => .00000 [dtnecessidade] => 30/04/2021 [dtentrega] => ) Array ( [nrochamado] => 10780 [cnpjFornecedor] => 111111111000111 [nmFornecedor] => FORNECEDOR TESTE 01 [cdproduto] => EV1 [nmproduto] => PANO DE LIMPEZA [quantidade] => 5 [unidade] => UN [vlfornecedor] => .00000 [dtnecessidade] => 30/04/2021 [dtentrega] => ) Como espero que retorne:
      Array ( [nrochamado] => 10780 [cnpjFornecedor] => 111111111000111 [nmFornecedor] => FORNECEDOR TESTE 01 [produtosItens] => Array( [cdproduto] => ML2 [nmproduto] => ESCOVA [quantidade] => 10 [unidade] => UN [vlfornecedor] => .00000 [dtnecessidade] => 30/04/2021 [dtentrega] => ) ( [cdproduto] => EV1 [nmproduto] => PANO DE LIMPEZA [quantidade] => 5 [unidade] => UN [vlfornecedor] => .00000 [dtnecessidade] => 30/04/2021 [dtentrega] => ) ) É possível ?
    • By Helinho Coelho
      Olá eu tenho um Array Multidimensional e gostaria que ele ficasse simples, mas com os valores tendo suas respectivas chaves mantidas.
       
      Segue o meu Array atual que é multidimensional:
      Array ( [KEY001] => Array ( [0] => 7 [1] => 22 ) [KEY002] => Array ( [0] => 4 [1] => 19 ) [KEY003] => Array ( [0] => 13 [1] => 21 [2] => 22 ) )  
      Mas eu gostaria de obter o resultado abaixo em um Array simples:
      Array ( [KEY001] => 7 [KEY001] => 22 [KEY002] => 4 [KEY002] => 19 [KEY003] => 13 [KEY003] => 21 [KEY003] => 22 )  
      É possível fazer isso com algum tipo de foreach no PHP?
       
    • By Giuliano Maffei
      Oi Pessoal, sou novo por aqui.
      Agradeço se alguém puder me ajudar.
      Tenho um banco de dados com a tabela abaixo:
      DB pets
      ------------------------------------------------------------------------------------
      | id | pet_tutor | pet_name | pet_species | pet_breed  |
      ------------------------------------------------------------------------------------
      | 1  |        José |             Rex |                   1 |    Vira-latas |
      | 2  |      Paulo |      Bichano |                  2 |        Siamês |
      | 3  |       João |             Max |                  1 | Lhasa-apso |
      ------------------------------------------------------------------------------------
       
      Fiz o código abaixo:
      $species_lang = array('0' => 'Selecionar','1' => 'Cachorro', '2' => 'Gatos', '3' => 'Acarás');
       
      SELECT (pets.id as id, pet_tutor, pet_name, {(" . $species_lang['pet_species'] . ")}, pet_breed FROM pets)
       
      Resultado:
      -----------------------------------------------------------------------------------
      | id | pet_tutor | pet_name | pet_species | pet_breed  |
      ------------------------------------------------------------------------------------
      | 1  |        José |             Rex |                        | Vira-latas |
      | 2  |       Paulo |    Bichano |                        |     Siamês |
      | 3  |        João |           Max |                        | Lhasa-apso |

      -----------------------------------------------------------------------------------
      Porque não consigo carregar o campo 'pet_species' com a raça do pet. Alguém tem uma luz pra me ajudar?
       
      Obrigado
×

Important Information

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