Jump to content
Sign in to follow this  
luis7

Delicious - Projecto

Recommended Posts

luis7

Numa cadeira da faculdade tenho que fazer um projecto que funcione à semelhança do Delicious (http://delicious.com/).

Estava a criar o script em php para o login mas estou a falhar em qq coisa pois ele nunca entra naquele If. Podiam-me ajudar?


<?php
// começar ou retomar uma sessão
session_start();

// se vier um pedido para login
if (!empty($_POST)) {

$db = new PDO('sqlite:database.db');
  
// verificar o utilizador em questão (pretendemos obter uma única linha de registos)
$login = $db->prepare('SELECT * FROM users WHERE username = :username AND password = :password');

// receber o pedido de login com segurança
$login->bindParam(':username', $_POST['username'], PDO::PARAM_STR,15);
$login->bindParam(':password', $_POST['password'], PDO::PARAM_STR,15);
$login->execute();

if(mysql_num_rows($login) == 1) {

	$_SESSION['id'] = $login['id_u'];
	$_SESSION['username'] = $login['username'];

	echo "<p>Sessão iniciada com sucesso como {$_SESSION['username']}</p>";
} else {

	// falhou o login
	echo "<p>Utilizador ou password invalidos.<br><a href=\"login.html\">Tente novamente</a></p>";
}
}
?>

CREATE TABLE users(

id_u INTEGER PRIMARY KEY AUTOINCREMENT,
username varchar,
password varchar,
fname varchar,
lname varchar,
email varchar
);

CREATE TABLE link(

id_l INTEGER PRIMARY KEY AUTOINCREMENT,
link varchar
);

CREATE TABLE bookmark(
id_l integer,
id_u integer,
primary key (id_u, id_l)
);

Share this post


Link to post
Share on other sites
scorch

Não te esqueces-te de fazer hash à password? Se não, devias-te ter esquecido, pois era sinal que estavas a guardar as passwords encriptadas.

Anyway, tu estás a misturar as funções mysql_* com PDO.


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
luis7

Para já estava a fazer isto muito simples.

O hash (penso que seja isto (SHA1('Password')) é uma coisa que quero colocar depois. Se não for isto ficava agradecido que me explicasse o que é :D

Eu ainda estou a iniciar-me no php e cometo assim algumas gafes :cheesygrin: O correcto seria colocar um fetch() no if?

Share this post


Link to post
Share on other sites
scorch

Para já estava a fazer isto muito simples.

O hash (penso que seja isto (SHA1('Password')) é uma coisa que quero colocar depois. Se não for isto ficava agradecido que me explicasse o que é :D

Sim, é isso. :)

Eu ainda estou a iniciar-me no php e cometo assim algumas gafes :cheesygrin: O correcto seria colocar um fetch() no if?

Não, em vez do mysql_num_rows() usa: :)

http://pt.php.net/manual/en/pdostatement.rowcount.php


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
luis7

Muito Obrigado.

Estava a tentar fazer um script para visualizar as tags inseridas, mas ordená-las por ordem decrescente de ID. COntudo algo está a dar mal...

<?php

require 'protect.php';

$db = new PDO('sqlite:database.db');

$lin = $db->query('SELECT * FROM tags, bookmark WHERE bookmark.id_t = tags.id_t AND bookmark.id_u ='.$_SESSION['id'] 'ORDER BY id_t DESC;')->fetchAll(PDO::FETCH_ASSOC);
foreach( $lin as $row2){
echo json_encode($row2['name']);
echo '<br/>';
}
echo "<p><a href=\"home.php\">Regressar</a></p>";
?>

CREATE TABLE users(
id_u INTEGER PRIMARY KEY AUTOINCREMENT,
username VARCHAR,
password VARCHAR,
fname VARCHAR,
lname VARCHAR,
email VARCHAR
);

CREATE TABLE links(
id_l INTEGER PRIMARY KEY AUTOINCREMENT,
link VARCHAR
);

CREATE TABLE bookmark(
id_u INTEGER REFERENCES users,
id_l INTEGER REFERENCES links,
id_t INTEGER REFERENCES tags,
title VARCHAR,
data DATE,
time DATE,
PRIMARY KEY (id_u, id_l, id_t)
);

CREATE TABLE tags(
id_t INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR
);

Alguém me pode ajudar?

Muito obrigado :)

Share this post


Link to post
Share on other sites
fil79

Já experimentaste fazer um output da query SELECT * FROM tags, bookmark WHERE bookmark.id_t = tags.id_t AND bookmark.id_u ='.$_SESSION['id'] 'ORDER BY id_t DESC;') e testá-lo directamente no SGBD?


MCITP-MCTS-MCP

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.