Blod 0 Denunciar post Postado Agosto 28, 2011 Eae galera, estou com uma dúvida muito besta mais que esqueci e nao estou encontrando no google. Seguinte, eu tenho a função: function teste($i){ if($i == $i){return true;}else{return false;} } Ai a minha dúvida mto idiota é, esse true retorna a palavra "true" ou "1" ? Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Agosto 28, 2011 Use var_dump para debugar. <?php var_dump( ( 1 == 1 ) ); // boolean true var_dump( ( 1 == 2 ) ); // boolean false Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Agosto 28, 2011 Retorna 1. Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Agosto 28, 2011 Porque assim eu não estou entendendo o porque não está dando certo aki: <?php /* ---- Classe Login ---- */ class login extends action{ function verificaDados($email, $senha){ $senha = $senha; $sql = "SELECT * FROM ma_usuario WHERE usr_email = '$email' AND usr_senha = '$senha' LIMIT 1"; $quer = self::cons($sql); $assoc = $quer->fetch(PDO::FETCH_ASSOC); $count = $quer->rowCount(); if($count >= "1"){return true;}else{return false;} } function cookieCria($email, $senha){ $verifica = self::verificaDados($email, $senha); if($verifica == 1){ setcookie("email", $email, time()+172800, "/rede", "www.habbobos.com.br"); setcookie("senha", $senha, time()+172800, "/rede", "www.habbobos.com.br"); } } function cookieExclui(){ setcookie("email"); setcookie("senha"); } function logarUsuario($email, $senha, $salva){ $verifica = self::verificaDados($email, $senha); if($verifica == 1){ $_SESSION[usr_id] = NULL; $_SESSION[usr_email] = NULL; $email = $_SESSION[usr_email]; $sql = "SELECT * FROM ma_usuario WHERE usr_email = '$email' AND usr_senha = '$senha' LIMIT 1"; $slec = self::cons($sql); $res = $slec->fetch(PDO::FETCH_ASSOC); $res[usr_id] = $_SESSION[usr_id]; if($salva == 1){ $cria = self::cookieCria($email, $senha); } return true; }else{ return false; } } function logout(){ $destroycookie = self::cookieExclui(); $_SESSION[usr_id] = NULL; $_SESSION[usr_email] = NULL; } } ?> <?php $log = new login(); $lolin = $log->logarUsuario("blodl@hotmail.com", "senha", true); echo $_COOKIE[email]; echo $_COOKIE[senha]; echo $_SESSION[usr_id]; echo $_SESSION[usr_email]; ?> Ele não me mostra nada na tela, poderiam me ajudar a encontrar o erro ? Compartilhar este post Link para o post Compartilhar em outros sites
gustavo21126 0 Denunciar post Postado Agosto 28, 2011 funciona como numeros binarios true = 1 = inteiro false = 0 = vazio a variavel $senha deve ficar antes do function e você esqueceu de inserir a variavel $email outra coisa você setou a variavel $senha $senha = $senha; isso é impossivel, se você estiver usando um formulario será $senha = $_POST['senha']; //a senha que esta em ['senha'] d eve ser o nome que esta la no input do fomulario, se la estiver no name do input estiver "loca" você deve inserir loca ali tambem e com a variavel email a mesma coisa $email = $_POST['email']; @edit outra coisa sempre antes de usar session você deve iniciar as sessions com o comando session_start(); Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Agosto 28, 2011 Olá gustavo, essa é só uma parte do código o session_start(); está no topo e sua resposta não me ajudou muito pois você colocou algo que nao tem nada a ver com a minha dúvida, com todo o respeito. A dúvida é, ele não está fazendo o login e não consigo encontrar o porque Compartilhar este post Link para o post Compartilhar em outros sites
gustavo21126 0 Denunciar post Postado Agosto 28, 2011 você pode começar verificando os erros Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Agosto 28, 2011 function verificaDados($email, $senha){ $senha = $senha; $sql = "SELECT * FROM ma_usuario WHERE usr_email = '$email' AND usr_senha = '$senha' LIMIT 1"; $quer = self::cons($sql); $assoc = $quer->fetch(PDO::FETCH_ASSOC); $count = $quer->rowCount(); if($count >= "1"){return true;}else{return false;} } Você tem erros 'estúpidos' de programação aí, você já recebe $senha como parâmetro, pra que criar uma variável pra isso ? Eu te falei em outro tópico que é melhor usar $this do que self::, não faça porque é bonito. function cookieCria($email, $senha){ $verifica = self::verificaDados($email, $senha); if($verifica == 1){ setcookie("email", $email, time()+172800, "/rede", "www.habbobos.com.br"); setcookie("senha", $senha, time()+172800, "/rede", "www.habbobos.com.br"); } } Não é necessário esse '== 1', se você retorna true | false, o if vai verificar isso, se for true, entra no bloco de código, se for false, entra no bloco de código do else .. function cookieExclui(){ setcookie("email"); setcookie("senha"); } Essa função não vai excluir os cookies, totalmente desnecessária o uso dela alí $log = new login(); $lolin = $log->logarUsuario("blodl@hotmail.com", "senha", true); echo $_COOKIE[email]; echo $_COOKIE[senha]; echo $_SESSION[usr_id]; echo $_SESSION[usr_email]; Seu problema está aí, pra ser mais específico aqui: $log = new login(); $lolin = $log->logarUsuario("blodl@hotmail.com", "senha", true); Não vê a diferença ? echo $_COOKIE[email]; echo $_COOKIE[senha]; echo $_SESSION[usr_id]; echo $_SESSION[usr_email]; Está errado isso, você não está procurando por constantes no índice do array $_COOKIE, $_SESSION, ou está ? Falando o que eu acho sobre o seu código, um lixo cara, você não sabe nem programação básica, e quer aprender OO. Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Agosto 28, 2011 Está errado isso, você não está procurando por constantes no índice do array $_COOKIE, $_SESSION, ou está ?Falando o que eu acho sobre o seu código, um lixo cara, você não sabe nem programação básica, e quer aprender OO. Olha, desculpe mais sou apenas uma pessoa curiosa tentando fazer alguma coisa, eu não sou profissional e estou fazendo para entender melhor o funcionamento, mas oque eu quero na parte final com $_COOKIE[usr_email] é testar se ele foi criado, diante da sua opinião sobre meu código eu a dispenso pois não pedi a opinião se o código é bom ou não. Com todo respeito. Não sei ainda como deixar meu código bom. Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Agosto 28, 2011 Olha, não quis ofender nem nada, foi apenas um 'presta atenção' de forma agressiva, rs .. Entretanto, eu acho que você deveria estudar mais sobre os conceitos de OO, entre outras coisas. Enfim, conseguiu resolver o problema ? Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Agosto 28, 2011 Falando o que eu acho sobre o seu código, um lixo cara, você não sabe nem programação básica, e quer aprender OO. Muita calma nessa hora :mellow: @Blod Se você quer apender OOP, primeiramente domine o básico e vá progredindo aos poucos. Procure alguns livros sobre PHP que possam te dar uma base sólida para entrar no "mundo OOP". Aqui vai alguns livros que possam te ajudar. Programando com Orientação a Objetos Programação PHP Se tiver dúvidas, não deixe de perguntar. :D Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Agosto 28, 2011 Não consegui, vou refazer tudo para corrigir Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Agosto 28, 2011 Outra dica também o João Batista Neto está fornecendo cursos no iMasters Pro, se você se interessar, o assunto é MVC, mas .. envolve OO. :seta: http://pro.imasters.com.br/online/cursos/mvc-em-php-na-pratica-construindo-um-sistema-de-pedidos :seta: http://pro.imasters.com.br/online/cursos/php-orientado-objetos Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Agosto 28, 2011 Não estou interessado em comprar nada do iMasters, esse professor deve ser bem "educado" como você. Olha, não quis ofender nem nada, foi apenas um 'presta atenção' de forma agressiva, rs .. Entretanto, eu acho que você deveria estudar mais sobre os conceitos de OO, entre outras coisas. Enfim, conseguiu resolver o problema ? Bom acho que isso não foi somente um 'presta atenção' e sim você quis me humilhar aqui, oque acho desnecessário. E no final do tópico que postou você alterou oque disse. Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Agosto 28, 2011 Bom acho que isso não foi somente um 'presta atenção' e sim você quis me humilhar aqui, oque acho desnecessário. E no final do tópico que postou você alterou oque disse. Se você achou isso, peço desculpas, mas não foi minha intenção, Sim fiz uma alteração, removendo palavras ofensivas ao seu respeito. Não consegui, vou refazer tudo para corrigir Quem dera que todos tivessem esta atitude nesses momentos, você está tomando a melhor atitude para essa situação, refazer o código ! Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Agosto 28, 2011 Pode me dar um exemplo de sistema de login com OO seguro no qual posso me basear pra entender melhor, afinal não faço isso por profissão, somente por hobie. Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Agosto 28, 2011 Não testei, mas a idéia é por aí. <?php ob_start(); session_start(); class Login{ /** * Armazena um Objeto que permite a execução de querys no banco * @var PDO Object $db */ private $db; /** * Armazena as informações do usuário * @var Array $userData */ private $userData; /** * Cria uma autenticação de usuário, verificando se existe * algum usuário referênte ao email e senha passados por parâmetro * @param String $Mail * @param Mixed $Password * @return Integer */ public function createAuthentication( $Mail , $Password ) { $query = $this->db->prepare( 'SELECT * FROM `ma_usuario` WHERE `usr_email` = :email AND `usr_senha` = :senha' ); $query->bindParam( ':email' , $Mail , PDO::PARAM_STR ); $query->bindParam( ':senha' , $Password , PDO::PARAM_STR ); $query->execute(); if( $query->rowCount() ) $this->userData = $query->fetch( PDO::FETCH_ASSOC ); return $query->rowCount(); } /** * Seta o objeto que permite a execução de querys no banco de dados * @param PDO $PDO */ public function setDataSource( PDO $PDO ){ $this->db = $PDO; } /** * Recupera o email do usuário * @return String */ public function getMail(){ return $this->userData[ 'usr_email' ]; } /** * Recupera o password do usuário * @return Mixed */ public function getPassword(){ return $this->userData[ 'usr_senha' ]; } /** * Recupera o ID do usuário * @return Integer */ public function getUserID(){ return ( integer )$this->userData[ 'usr_id' ]; } } $Login = new Login(); $Login->setDataSource( new PDO( 'mysql:host=127.0.0.1;dbname=..' , 'usuario' , 'senha' ) ); if( $Login->createAuthentication( 'andreykvital@gmail.com' , '?' ) ){ $_SESSION[ 'email' ] = $Login->getMail(); $_SESSION[ 'senha' ] = $Login->getPassword(); $_SESSION[ 'uid' ] = $Login->getUserID(); } Compartilhar este post Link para o post Compartilhar em outros sites
Blod 0 Denunciar post Postado Agosto 28, 2011 Bom não entendi nada doque você fez nessas funções mais vou tentar entender. :D Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Agosto 28, 2011 Falando o que eu acho sobre o seu código, um lixo cara, você não sabe nem programação básica, e quer aprender OO. Acompanho o fórum a pouco mais de 03 anos nunca vi o tamanho desrespeito a um membro, tenho pouca experiência com php, mas posso lhe garantir que se deve tratar outro ser humano da mesma forma como gostaria de ser tratado. Se trabalhe-se em umas de minhas empresas te daria somente um único aviso pessoalmente, se fizer isso novamente a um dos meus funcionários taria no olho da rua! E isso não se trata de certo ou errado, você não é obrigado a responder desta forma por saber + ou - sobre a questão! ;) Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Agosto 28, 2011 WDuarte, pois é cara, vacilei mesmo, pedi desculpas, até enviei uma MP ao Blod justificando e pedindo desculpas novamente sobre a resposta ofensiva postada, queria falar o que eu achava sobre o código, mas não daquela forma. Compartilhar este post Link para o post Compartilhar em outros sites