Vnepomuceno Posted December 18, 2006 at 10:49 AM Report #71114 Posted December 18, 2006 at 10:49 AM 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? 😛
marinheiro Posted December 18, 2006 at 11:40 AM Report #71127 Posted December 18, 2006 at 11:40 AM 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..
karva Posted December 18, 2006 at 12:08 PM Report #71140 Posted December 18, 2006 at 12:08 PM Mas isso pode ser um perigo, pois pode ser facilmente feita uma injeccao de sql Proud LEIC-A@IST student!
Vnepomuceno Posted December 18, 2006 at 12:12 PM Author Report #71141 Posted December 18, 2006 at 12:12 PM Pois...isso não convinha, lol 😛 Alguma outra solução?
AriOps Posted December 18, 2006 at 12:44 PM Report #71150 Posted December 18, 2006 at 12:44 PM podes sempre tratar o resultado do $_GET['id'] e depois é que fazes a query 😛 Daniel Correia
Vnepomuceno Posted December 18, 2006 at 02:19 PM Author Report #71182 Posted December 18, 2006 at 02:19 PM E como é que "defino" que o ID está em http://website.net/?id=$id ? É que de headers não percebo muito 😛
marinheiro Posted December 18, 2006 at 04:26 PM Report #71208 Posted December 18, 2006 at 04:26 PM 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..
Vnepomuceno Posted December 18, 2006 at 07:29 PM Author Report #71250 Posted December 18, 2006 at 07:29 PM 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?
marinheiro Posted December 18, 2006 at 09:26 PM Report #71265 Posted December 18, 2006 at 09:26 PM 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..
Vnepomuceno Posted December 19, 2006 at 10:44 AM Author Report #71329 Posted December 19, 2006 at 10:44 AM 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
Vnepomuceno Posted December 19, 2006 at 11:25 AM Author Report #71337 Posted December 19, 2006 at 11:25 AM Já consegui 😄 Obrigado pela ajuda, nunca pensei que fosse tão fácil 😛
marinheiro Posted December 19, 2006 at 02:02 PM Report #71373 Posted December 19, 2006 at 02:02 PM 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..
nuno_couto Posted December 25, 2006 at 11:22 PM Report #72393 Posted December 25, 2006 at 11:22 PM 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
marinheiro Posted December 25, 2006 at 11:51 PM Report #72396 Posted December 25, 2006 at 11:51 PM 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..
nuno_couto Posted December 27, 2006 at 01:31 AM Report #72605 Posted December 27, 2006 at 01:31 AM 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
Vnepomuceno Posted December 29, 2006 at 01:46 PM Author Report #73216 Posted December 29, 2006 at 01:46 PM 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? 😉
kingless Posted December 29, 2006 at 02:14 PM Report #73224 Posted December 29, 2006 at 02:14 PM 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']
Vnepomuceno Posted December 29, 2006 at 02:31 PM Author Report #73228 Posted December 29, 2006 at 02:31 PM 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?
kingless Posted December 29, 2006 at 02:36 PM Report #73229 Posted December 29, 2006 at 02:36 PM 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')
pedrotuga Posted December 29, 2006 at 02:43 PM Report #73231 Posted December 29, 2006 at 02:43 PM Já agora... ainda da primeira página... para evitar injecções via sql deves certeficar-te que é um inteiro $ID = intval($_GET['ID']);
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now