Jump to content

[Resolvido] - Passar variáveis para outras páginas


skcratch

Recommended Posts

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

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

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

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

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

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

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

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

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

  • 2 weeks later...

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

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.