Forum Pplware
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.... Sad

//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:
$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);
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 Smile


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,Smile vou ver !!