Alguem me explica isso? WTF?

1. Alguem me explica isso? WTF?

Andre Luis
andre227

(usa Slackware)

Enviado em 31/07/2010 - 01:28h

Gente, estou começando com PHP e percebi uma coisa no mínimo curiosa. Tipo, estou criando uma seção de login e a estou configurando com um cookie da seguinte maneira:

if (mysql_num_rows($resultado) > 0) {
setcookie("usuario", $usuario);
setcookie("senha", $senha);
}


Beleza, até aí tudo bem. O problema é na próxima página onde faço a confirmação dos dados do cookie com os dados do banco de dados. Para isso eu criei uma função que ficou assim:

function verificarDados() {
$usuario = $HTTP_COOKIE_VARS["usuario"];
$senha = $HTTP_COOKIE_VARS["senha"];

conectarBanco();

$query = "SELECT * FROM Administrador WHERE Usuario = '".$usuario."'
AND Senha = '".$senha."'";
$resultado = mysql_query($query);

if (mysql_num_rows($resultado) != 1) {
echo "<script language='JavaScript'>";
echo "window.alert('Saia daqui maldito!');";
echo "</script>";
exit;
}
}

Essa função simplesmente não funcionou, percebi que esses 2 trechos de codigo:
$usuario = $HTTP_COOKIE_VARS["usuario"];
$senha = $HTTP_COOKIE_VARS["senha"];

Não funcionam dentro de uma função, para poder fazer funcionar tive que desfazer a função.

Alguem tem uma explicação lógica, do pq esse trecho não funciona dentro de uma função?

Grato...


  


2. Re: Alguem me explica isso? WTF?

Paulo Camboim
paulocamboim

(usa Slackware)

Enviado em 19/08/2010 - 12:26h

Acredito que seja por causa que $HTTP_COOKIE_VARS["usuario"]
dentro da função não exista, por se tratar de uma variável local.

por exemplo, nesse código:

$var = "oi";

function teste() {
echo $var; // Vai da erro, a variavel ainda nao existe...
$var = "Ahah!"; // Agora criei a variavel de forma local
echo $var; // vai imprimir "Ahah!"
}

teste(); // Quando chamar vai imprimir "Ahah!"
echo $var; // imprime normalmente o "OI"

Tente fazer o seguinte:

function verificarDados() {
global $HTTP_COOKIE_VARS;
$usuario = $HTTP_COOKIE_VARS["usuario"];
...

Outra forma é passar como argumento

Valeu






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts