Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvidas com FUNCTION


Paulo Rodrigo

Pergunta

Opa pessoal... beleza? :rolleyes:

Sempre trabalhei com PHP, mas nunca com FUNCTION...

ai estou tentando fazer meu sistema de logins via function, mas não sei apenas uma coisa... espero que possam me ajudar, antes de tudo, o code:

<?
@include("$_SERVER[DOCUMENT_ROOT]/conexao.php");
mysql_select_db("planetsm_site");
class logarse {
    var $erro; var $error; var $login; var $senha; var $tempo; // Defini as variaveis
    function erro($erro) {
        $this->erro = $erro; // Armazena o valor do erro
        $logando = $this->erro; // AQUI O PROBLEMA QUE VIRA...
    }
   // Sistema delogin, ta ok:
    function logou($user,$pass) {
        $this->login = $user; $this->senha = $pass;
        $this->tempo = time()*1000;
        setcookie("login", "$this->login", time()+$this->tempo, "/", "planetasm.com");
        setcookie("senha", "$this->senha", time()+$this->tempo, "/", "planetasm.com");
        if ($_COOKIE["ultimapagina"]) { header("LOCATION: $_COOKIE[ultimapagina]"); } else { header("LOCATION: index.php"); }
    }
}
?>
Agora o sistema que verifica o login, tudo funcionando direito, creio eu:
<?
$class = new logarse;
if ($_POST) {
    $get_usuario = $_POST["login"];
    $get_senha = $_POST["senha"];
    if (empty($get_senha) OR empty($get_usuario)) {
        $class->erro("Você deve preencher todos campos de login.");
    } else {
        @$q = mysql_query("SELECT * FROM equipe WHERE usuario='$get_usuario' AND senha='$get_senha'");
        if (mysql_affected_rows() > "0") {
            $class->logou("$get_usuario","$get_senha");
        } else {
            $class->erro("Login ou senha inválidos.");
        }
    }
}
?>
Bom, o caso é que após isto eu usei assim:
<?
if ($logando) {
    echo "<fieldset><legend>Login</legend>".erro()."</fieldset>";
} else {
?>
Formulário de login
<?
}
?>

Mas o caso, é que a "Function ERRO" pareçe não "permitir" que o $logando retorne valor, fora dela....

ou seja, nunca ele da o:

echo "<fieldset><legend>Login</legend>$logando</fieldset>";

Quem puder me ajudar ou tentou, agradeço desde já! :rolleyes:

Editado por Paulo Rodrigo
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Mas o caso, é que a "Function ERRO" pareçe não "permitir" que o $logando retorne valor, fora dela....

Paulo Rodrigo, se a variável $logando é declarada no corpo do código, com escopo global, então dentro da função você precisa "declará-la" deste modo, já que no php nesta situação estará sendo entendida como sendo local - por isso não retornar valor a variável da forma como você espera. Achei um link que explica um pouco melhor isto para você: Escopo de variáveis

No caso, teste o código com a alteração abaixo:

function erro($erro) {
  global $logando;  // aqui você diz que vai usar a variável global

  $this->erro = $erro; // Armazena o valor do erro
  $logando = $this->erro; // AQUI O PROBLEMA QUE VIRA...
}

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Paulo Rodrigo, se a variável $logando é declarada no corpo do código, com escopo global, então dentro da função você precisa "declará-la" deste modo, já que no php nesta situação estará sendo entendida como sendo local - por isso não retornar valor a variável da forma como você espera. Achei um link que explica um pouco melhor isto para você: Escopo de variáveis

Abraços

Valeu pela ajuda ;)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...