Undefined property: stdClass::($variablename)

Ao desenvolver um código utilizando a biblioteca PDO do PHP, me deparei com a seguinte mensagem de erro ao realizar uma iteração no resultado de uma consulta:

Notice: Undefined property: stdClass::$ds_nomeServidor in C:\xampp\htdocs\script.php on line 6127

O problema é que a consulta estava trazendo realmente o campo “ds_nomeServidor”. Contudo, ele era um campo nomeado utilizando o comando “AS” (Alias).

O problema acontece pois o PDO retorna o nome dos campos Alias todos em minúscula (lower case) e por esse motivo não encontrava o campo na consulta. Para solucionar, no momento de utilizar o campo, coloquei-o apenas com letras em minúscula e tudo passou a funcionar perfeitamente:

<?php
    echo $lobj_recordsetRow->ds_nomeservidor
?>

Se tiver dúvida de qual o nome que está sendo retornado em um recordset pelo PDO, utilize o código abaixo para listar todos:

<?php
    print "<pre>"; var_dump( $lobj_recordsetRow); exit;
?>

How to remove URL Anchor (Fragment) using PHP?

The best option is using the parse_url() function:

function removeURLFragment($pstr_urlAddress = '') {
    $larr_urlAddress = parse_url ( $pstr_urlAddress );
    return $larr_urlAddress['scheme'].'://'.(isset($larr_urlAddress['user']) ? $larr_urlAddress['user'].':'.''.$larr_urlAddress['pass'].'@' : '').$larr_urlAddress['host'].(isset($larr_urlAddress['port']) ? ':'.$larr_urlAddress['port'] : '').$larr_urlAddress['path'].(isset($larr_urlAddress['query']) ? '?'.$larr_urlAddress['query'] : '');
}

I think this is way better, since the knowledge of the structure of the URL is encapsulated. Chances are pretty large than using regexes or string manipulation, one will forget some scenario’s whereas dedicated methods are more reliable.

Analisando cada item de uma URL utilizando PHP

O PHP tem um função para analisar cada item de uma URL, ela se chama parse_url:

$larr_urlAddress = parse_url ( "http://meuusuario:minhasenha@www.google.com:88/dashboard/file.php?q=busca#item2" );

A função irá criar um array cujas informações poderão ser acessadas da seguinte forma:

echo "<BR>Scheme: ".$larr_urlAddress['scheme']; // No exemplo, retornará o valor http
echo "<BR>Host: ".$larr_urlAddress['host']; // No exemplo, retornará o valor www.google.com
echo "<BR>Port: ".$larr_urlAddress['port']; // No exemplo, retornará o valor 88
echo "<BR>User: ".$larr_urlAddress['user']; // No exemplo, retornará o valor meuusuario
echo "<BR>Password: ".$larr_urlAddress['pass']; //No exemplo, retornará o valor minhasenha
echo "<BR>Path: ".$larr_urlAddress['path']; // No exemplo, retornará o valor /dashboard/file.php
echo "<BR>Query: ".$larr_urlAddress['query']; // No exemplo, retornará o valor q=busca
echo "<BR>Fragment: ".$larr_urlAddress['fragment']; // No exemplo, retornará o valor item2

Os alertas não são exibidos para o usuário na tela

Segundo as regras do sistema (na versão 1.15.0), na tela “Detalhes do Processo”, os alertas não devem ser exibidos para os usuários que possuem os papéis: advogado; perito; procurador; assistente de procuradoria; assistente de advogado; ou Jus Postulandi.

Eu acredito que isto seja um defeito, pois deveria levar em consideração qual o perfil está ativo no momento. Pois servidores que tenham o perfil de Jus Postulandi, mesmo estando logado no sistema com o perfil de servidor, não conseguirá visualizar os avisos.