mudar esta sintaxe PDO para mysql... - Versão de Impressão +- Forum Pplware (http://forum.pplware.com) +-- Fórum: Mais Tech (/forumdisplay.php?fid=11) +--- Fórum: Programação e Web (/forumdisplay.php?fid=16) +--- Tópico: mudar esta sintaxe PDO para mysql... (/showthread.php?tid=20555) |
mudar esta sintaxe PDO para mysql... - joaonunofz - 24-01-2015 01:28 Boa noite, obtive este script de codigo num video tutorial, que no fundo serve para saber se os dados se login estão corretos e se realmente tiverem,faz um inicio de sessão com o user e AVATAR...! Oproblema é que no video tudo corre bem, nao aparece erros mas como mostro no script...NA ULTIMA LINHA , APRESENTA-ME UM ERRO.... COMO PODERIA FAZER UM INICIO DE SESSÃO COM UM AVATAR, UMA VEZ QUE É UM "OBJECTO "DIFERENTE? INICIAR SESSAO USANDO A SINTAXE MYSQL, EU JÁ O FIZ....SÓ QUE NAO SEI COMO FAZER INICIAR A SESSAÕ DO AVATAR....ISTO FAZ PARTE DE UM PEQUENO FORUM QUE ESTOU CONSTRUINDO ONDE QUERO APRESENTAR ASSIM QUE ENTRO NA PAGINA FORUM.PHP , APRESETANDO O NOME DO UTILIZADOR E O AVATAR CORRESPONDENTE.... //variaveis da base de dados... include 'config.php'; //ligação á base de dados... $ligacao = new PDO("mysql: dbname=$base_dados;host=$host", $user ,$password); //instrução sql... $motor = $ligacao->prepare("SELECT * FROM users WHERE username = ? AND pass = ?"); //introduzir os parametros $motor->bindParam(1,$utilizador, PDO::PARAM_STR);//PARAMETRO DE STRING $motor->bindParam(2,$password_utilizador, PDO::PARAM_STR); //executar $motor->execute(); //fechar a ligação $ligacao = null; //verifica se os dados correspondem a valores da base de dados if($motor->rowCount() == 0) { //ERRO - DADOS INVALIDOS echo '<div class="erro"> dados de login invalidos. <br> <br> <a href="index.php">tente novamente</a> </div>'; exit; } else { //definir os dados da sessão... $_SESSION['user'] = $utilizador ; //ERRO FICA NESTA LINHA ABAIXO.... $_SESSION['avatar'] = $motor->fetch(PDO::FETCH_ASSOC)['avatar']; RE: mudar esta sintaxe PDO para mysql... - eSkiSo - 24-01-2015 21:08 Já agora experimenta fazer isto: $dados_user = $motor->fetch(PDO::FETCH_ASSOC); [font=Verdana, Arial, sans-serif]$_SESSION['avatar'] = $dados_user['avatar']; [/font] [font=Verdana, Arial, sans-serif]Se não resultar poderá ser por estares a por ligação como null?[/font] E um pequeno aparte, se vai guardar passwords como texto...meu deus... isso não se faz, usa uma hash ao registrar, pelo menos ao registrar faz algo do genero: //no topo define(SALT, "fdsklç3F#324=?3532k523?Dl2d"); // ou algo do genero, neste caso a SALT tem de se manter igual .... $password = md5($password.SALT); // e guardas isto como password .... quando o utilizador estiver a fazer login antes de colocares a password na query fazes o mesmo -> md5($password.SALT); RE: mudar esta sintaxe PDO para mysql... - joaonunofz - 27-01-2015 15:22 (24-01-2015 21:08)eSkiSo Escreveu: Já agora experimenta fazer isto:Hummmmm.... muito obrigado pela dica, eu ainda sou novato nisto, nem sequer me ensinaram php, so html....o php tem sido as minhas custas com a ajuda do google e do forum e de um livro tb , mais uma vez , muito obrigado , provavelmente ainda terei mais algumas duvidas RE: mudar esta sintaxe PDO para mysql... - eSkiSo - 01-02-2015 13:19 Devias investir um tempinho a aprender uma framework php, eu uso o Codeigniter ( http://www.codeigniter.com/ ) é relativamente facil de aprender e a documentação ajuda-te bastante. E tens varios videos no Youtube a explicar como trabalhar com o codeigniter do principio ao fim. RE: mudar esta sintaxe PDO para mysql... - joaonunofz - 01-02-2015 23:38 (01-02-2015 13:19)eSkiSo Escreveu: Devias investir um tempinho a aprender uma framework php, eu uso o Codeigniter ( http://www.codeigniter.com/ ) é relativamente facil de aprender e a documentação ajuda-te bastante. E tens varios videos no Youtube a explicar como trabalhar com o codeigniter do principio ao fim.muito obg pela resposta, vou ver !! |