Jump to content

Novo link, nova página...automática


Recommended Posts

Posted

Boas, gostava que alguém me ajudasse com um problema que tenho.

Precisava de um guia ou um tutorial que me ajudasse a que, por exemplo, no meu site tivesse: http://website.net/?id=13, e a página fosse toda referente a um cliente com ID 13, ou seja, o link seria http://website.net/?id=$id, e depois toda a página rodaria em torno deste '$id'.

Percebem o que quero dizer? Podem ajudar?  😛

Posted

os dados desse cliente 13 estão em bd?

se sim, é só criares o layout da página pretendida com os campos que queres mostrar e na conexão à bd colocares $query_Recordset1 = "SELECT * FROM clientes WHERE cliente_id=\"".$_GET['id']."\"";...

os campos a mostrar serão $query_Recordset1['nome_campo1'], $query_Recordset1['nome_campo2'], etc, em que nome_campo1 é o nome do 1º campo como está na bd, nome_campo2 é o do 2º campo, etc...

há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Posted

Mas isso pode ser um perigo, pois pode ser facilmente feita uma injeccao de sql

para isso pode-se usar o addslashes...

$userid=addslashes($_GET['id']);
$query_Recordset1 = "SELECT * FROM clientes WHERE cliente_id=\"".$userid."\"";

E como é que "defino" que o ID está em http://website.net/?id=$id ?

É que de headers não percebo muito 😛

suponho que a página seja chamada por uma listagem de clientes, por exemplo...

se a página com os detalhes se chamar detalhes.php e, na listagem, o campo do id do cliente seja $userid, por exemplo, é só chamar o link como

echo "<a href=detalhes.php?id=".$userid.">cliente ".$userid."</a>";

na página de detalhes, é fazeres como coloquei na resposta anterior...

há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Posted

Penso que não respondeste a minha questão...

Perdoem a minha ignorância porque nestes campos do PHP não pesco nada.

Falando por miúdos, o que eu quero por exemplo é que na caixa de link da página, no link que seja por exemplo cliente.php?id=$id, esteja armazenado o $id de cada cliente.

E após o $id ter sido identificado no link, toda a página seja "construida" a partir da pesquisa de todos os dados referentes com o $id que está no link. A minha dúvida é como é que posso "retirar" o $id que está presente só no link?

Posted

a página que abre quando carregas no link vai ler o id do endereço com o $_GET['id']

há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Posted

Por exemplo em teste.php, quando faço localhost/teste.php?id=3, e no teste.php está:

$ID = $_GET['ID'];
echo $ID;

Aparece-me a seguinte mensagem:

Notice: Undefined index: ID in d:\programas\easyphp1-8\www\teste.php on line 2
Posted

anytime 😄

qualquer coisa, apita 😛

há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Posted

Vnepomuceno

Atenção porque com este "esquema" de funcionamento qualquer pessoa que digite o endereço, consegue saber os dados sobre o cliente com esse ID... (ou seja, eu sei que me basta escrever o endereço qqcoisa.php?id=15 para obter os dados do cliente 15)

Mas para ultrapassar isto irias necessitar de um sistema de login com palavra-passe.

portalmundial.net »» criamos sites

Posted

se funcionar com frames (que eu detesto) não tem esse problema...

há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Posted

As frames apenas disfarçam o endereço... Basta um "view-source" para ver qual o endereço que está aberto na frame... Esse sistema não é seguro para utilizar com informação que não seja "pública".

portalmundial.net »» criamos sites

Posted

Eu sei, isto é para um backoffice que já está quase acabado, e como implementei um sistema de sessões, só quem crashar o sistema de sessões é que consegue ter acesso a essas páginas bla.php?id=x

Uma coisa, estou a implementar um sistema de upload de ficheiros, e adoptei um script no pixel2life e estou agora a alterá-lo às necessidades desse mesmo backoffice, e criei a seguinte função:

function upload($id) {
$ultimoID = mysql_fetch_array(mysql_query("SELECT * FROM projectos ORDER BY ID DESC LIMIT 0,1"));
$uploadpath = "../imagens/uploads/grandes/".$ultimoID['ID'];
$uploadpath = $uploadpath . basename( $_FILES['imagem{$id}']['name']); 
if(move_uploaded_file($_FILES['imagem{$id}']['tmp_name'], $uploadpath))
{ echo"This file: ".  basename( $_FILES['imagem{$id}']['name']). "has been uploaded"; } 
else { echo "There was an error uploading the file, please try again!"; }
}

Mas por exemplo no $uploadpath, em $_FILES['imagem{$id}']['name'] não reconhece o $id como o primeiro parâmetro inserido na função e aparece o erro:

Notice: Undefined index: imagem{$id} in d:\programas\...\criar_projecto.php on line 87
There was an error uploading the file, please try again!

Como posso fazer a coisa funcionar?  😉

Posted

Tu utilizaste  '  ' em vez de " " e a variavel $id não é reconhecida como uma variavel dentro de ' ' por isso é que da esse erro... troca ' ' por " "

$_FILES['imagem$id']['name']

para:

$_FILES["imagem$id"]['name']

Posted

ARGH...que raiva. Devo ter andado aí uma hora à volta deste código só por causa disso.

Em indexs e essas coisas deve-se usar aspas duplas ou simples? Ou melhor? QUANDO é que se deve usar aspas duplas ou simples?

Posted

ARGH...que raiva. Devo ter andado aí uma hora à volta deste código só por causa disso.

Em indexs e essas coisas deve-se usar aspas duplas ou simples? Ou melhor? QUANDO é que se deve usar aspas duplas ou simples?

Deves usar aspas duplas sempre que quiseres usar variáveis (echo "X igual a $var") para o resto podes utilizar aspas simples. (echo 'bla bla bla')

Posted

Já agora... ainda da primeira página...

para evitar injecções via sql deves certeficar-te que é um inteiro

$ID = intval($_GET['ID']);

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
×
×
  • 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.