skcratch Posted September 15, 2009 at 10:45 AM Report Share #287085 Posted September 15, 2009 at 10:45 AM Viva! Neste momento, estou a desenvolver uma pequena aplicação em PHP. A referida aplicação tem dois formulários, cujo processamento é feito na própria página onde se encontram (action="<?php echo $_SERVER['PHP_SELF']; ?>" ). No entanto, quando processo o formulário depois deste ser submetido, invoco funções que estão definidas em ficheiros externos. Na maior parte dos casos, pretendo obter mais do que um valor, não me podendo limitar a um valor de retorno único da invocação de uma função. Sendo assim, gostaria de saber como posso/devo retornar os valores para a página inicial, depois de tratada a submissão do formulário? Grato desde já pela ajuda, Cumps! 😉 Link to comment Share on other sites More sharing options...
infopc Posted September 15, 2009 at 12:44 PM Report Share #287098 Posted September 15, 2009 at 12:44 PM pelo metodo post, get, cookie ou session não tou a bver outro metodo de passar valores de página para página O que não tem solução, solucionado esta... Link to comment Share on other sites More sharing options...
lufinima Posted September 15, 2009 at 01:16 PM Report Share #287101 Posted September 15, 2009 at 01:16 PM pelo metodo post, get, cookie ou session não tou a bver outro metodo de passar valores de página para página Pois já somos 2, a não ser que no PHP6 tenham implemento mais alguma maneira Link to comment Share on other sites More sharing options...
skcratch Posted September 15, 2009 at 04:46 PM Author Report Share #287134 Posted September 15, 2009 at 04:46 PM Viva! Antes demais, obrigado pelas sugestões. Sendo assim, posso armazenar em variáveis de sessão os dados que pretendo, sendo estas declaradas no ficheiro *.php onde a função que realiza o processamento do formulário está implementada e utilizar os valores armazenados nessas mesmas variáveis na página onde é invocada a referida função? Grato desde já pela ajuda, Cumps! B) Link to comment Share on other sites More sharing options...
scorch Posted September 15, 2009 at 05:01 PM Report Share #287138 Posted September 15, 2009 at 05:01 PM Sim. Tens de fazer um session_start(); em todos os ficheiros que queres aceder/atribuir um valor à variável de sessão. Mas porque não usas o método Get? É bastante prático. B) PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
skcratch Posted September 15, 2009 at 05:28 PM Author Report Share #287148 Posted September 15, 2009 at 05:28 PM Viva! Tenho tentado evitar passar variáveis na querystring. Consideram isso má prática? Existem algum inconveniente em guardar valores nas variáveis de sessão? Cumps! B) Link to comment Share on other sites More sharing options...
scorch Posted September 15, 2009 at 05:38 PM Report Share #287153 Posted September 15, 2009 at 05:38 PM Pelo que sei, não. A não ser que se alguém te conseguir meter um ficheiro .php no servidor, pode aceder às variáveis. PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
skcratch Posted September 15, 2009 at 05:55 PM Author Report Share #287158 Posted September 15, 2009 at 05:55 PM Viva! Embora na aplicação que estou a desenvolver, as questões de segurança não sejam críticas, estou a tentar seguir boas práticas (as poucas que tenho conhecimento... B)) para projectos futuros. Sendo assim, caso o utilizador decida alterar os valores que são passados na querystring, não pode comprometer de alguma forma a segurança da aplicação, já que o código que estou a desenvolver, constrói HTML de forma dinâmica, consoante as respostas do servidor aos pedidos efectuados pelos clientes, com base nos referidos valores. Grato desde já pela ajuda, Cumps! 😛 Link to comment Share on other sites More sharing options...
scorch Posted September 15, 2009 at 06:06 PM Report Share #287159 Posted September 15, 2009 at 06:06 PM Embora na aplicação que estou a desenvolver, as questões de segurança não sejam críticas, estou a tentar seguir boas práticas (as poucas que tenho conhecimento... B)) para projectos futuros. Sendo assim, caso o utilizador decida alterar os valores que são passados na querystring, não pode comprometer de alguma forma a segurança da aplicação Pode. Mas também há maneiras de parar isso. Eu, pessoalmente, não sei muito sobre assuntos de hackear um site, mas podes ler este artigo. PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
skcratch Posted September 15, 2009 at 06:32 PM Author Report Share #287168 Posted September 15, 2009 at 06:32 PM Viva! Obrigado pelas dicas. Quanto à pergunta inicial do tópico, estou a pensar optar pelas variáveis de sessão. Entretanto, vou deixar o tópico aberto para mais sugestões (se existirem) ou se decidir mudar a forma de implementação que tenho prevista. Grato a todos pelos comentários, Cumps! B) Link to comment Share on other sites More sharing options...
skcratch Posted September 15, 2009 at 09:47 PM Author Report Share #287216 Posted September 15, 2009 at 09:47 PM Viva! Neste momento, estou com alguns problemas com as sessões. Tal como foi referido anteriormente, estou a invocar o session_start(); em todos os locais onde pretendo ler e/escrever valores na variável de sessão. Mais concretamente, a referida função é invocada no ficheiro onde está implementada a função que trata do pedido ao servidor, para armazenar os dados resultantes do pedido e na página que invoca a referida função para realizar a leitura dos valores previamente armazenados. Neste momento, estou a receber o seguinte warning por parte do php: Warning: session_start() [function.session-start]: Node no longer exists Será que alguém pode dar uma ajuda? Cumps! B) Link to comment Share on other sites More sharing options...
scorch Posted September 15, 2009 at 09:53 PM Report Share #287217 Posted September 15, 2009 at 09:53 PM Mostra o código desse ficheiro. PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
skcratch Posted September 16, 2009 at 07:35 PM Author Report Share #287345 Posted September 16, 2009 at 07:35 PM Viva! Código do ficheiro userNewLinkRequest.php: function userNewLinkRequest() { // parse response to obtain title, description and path to the video foreach($xmlResponse->newlink[0]->attributes() as $attribute => $value) { if ($attribute == 'title') { $videoTitle = $value; } else if ($attribute == 'description') { $videoDescription = $value; } else if ($attribute == 'path') { $videoPath = $value; } } // start a session in order to store variables in the php $_SESSION variable session_start(); // store variables values in php $_SESSION $_SESSION['videoTitle'] = $videoTitle; $_SESSION['videoDescription'] = $videoDescription; $_SESSION['videoPath'] = $videoPath; $_SESSION['username'] = "rui"; } Código no ficheiro index.php, onde é invocada a função userNewLinkRequest(): <?php session_start(); $validSession = true; userNewLinkRequest(); $title = $_SESSION['videoTitle']; $description = $_SESSION['videoDescription']; $videoPath = $_SESSION['videoPath']; ?> Caso retire a instrução session_start() do ficheiro userNewLinkRequest.php, aparece o seguinte warning: Warning: session_start() [function.session-start]: Node no longer exists in C:\wamp\www\IPTVClient\index.php on line 7 De notar que depois das mensagens relativas ao warning geradas pelo php, o código é correctamente executado, sendo o seu resultado apresentado no browser. Será que alguém pode dar uma ajuda? Cumps! B) Link to comment Share on other sites More sharing options...
scorch Posted September 16, 2009 at 08:49 PM Report Share #287361 Posted September 16, 2009 at 08:49 PM A função session_start(); tem de estar sempre no inicio do ficheiro. <?php session_start(); function userNewLinkRequest() { // parse response to obtain title, description and path to the video foreach($xmlResponse->newlink[0]->attributes() as $attribute => $value) { if ($attribute == 'title') { $videoTitle = $value; } else if ($attribute == 'description') { $videoDescription = $value; } else if ($attribute == 'path') { $videoPath = $value; } } // store variables values in php $_SESSION $_SESSION['videoTitle'] = $videoTitle; $_SESSION['videoDescription'] = $videoDescription; $_SESSION['videoPath'] = $videoPath; $_SESSION['username'] = "rui"; } ?> PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
djthyrax Posted September 16, 2009 at 09:19 PM Report Share #287368 Posted September 16, 2009 at 09:19 PM Uma nota, não envies dados sensíveis pela querystring porque há ferramentas que guardam tudo (inclusive querystrings) como uma extensão que havia do Google para o Firefox (acho que era o Sync, não me lembro). Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
skcratch Posted September 16, 2009 at 09:36 PM Author Report Share #287373 Posted September 16, 2009 at 09:36 PM Viva! Uma nota, não envies dados sensíveis pela querystring porque há ferramentas que guardam tudo (inclusive querystrings) como uma extensão que havia do Google para o Firefox (acho que era o Sync, não me lembro). Era por motivos semelhantes ao referido que pretendia passar os dados na querystring. Cumps! B) Link to comment Share on other sites More sharing options...
scorch Posted September 17, 2009 at 08:25 AM Report Share #287409 Posted September 17, 2009 at 08:25 AM Já funciona? PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
skcratch Posted September 17, 2009 at 01:13 PM Author Report Share #287450 Posted September 17, 2009 at 01:13 PM Viva! Ainda não. 😛 Cumps! 😄 Link to comment Share on other sites More sharing options...
scorch Posted September 17, 2009 at 08:26 PM Report Share #287512 Posted September 17, 2009 at 08:26 PM Dá algum erro? Se sim qual? PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
skcratch Posted September 26, 2009 at 04:48 PM Author Report Share #288762 Posted September 26, 2009 at 04:48 PM Viva! Nos ficheiros que referi anteriormente, adicionei a seguinte entrada (inclusivamente antes do require): session_start(); No entanto, o erro continua a persistir: ( ! ) Warning: session_start() [function.session-start]: Node no longer exists in C:\wamp\www\IPTVClient\index.php on line 4 Grato desde já pela ajuda, Cumps! 😉 Link to comment Share on other sites More sharing options...
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