Parece bem simples, mas não consigo encontrar uma boa maneira de fazê-lo.
Digamos que na primeira página eu criei uma variável
$myVariable = "Some text";
E a ação do formulário para essa página é "Page2.php". Então, no Page2.php, como posso ter acesso a essa variável? Sei que posso fazê-lo com sessões, mas acho que é demais para uma sequência simples e só preciso passar uma sequência simples (um nome de arquivo).
Como posso conseguir isso?
Obrigado!
Respostas:
HTML / HTTP é sem estado, em outras palavras, o que você viu / viu na página anterior, está completamente desconectado da página atual. Exceto se você usar algo como sessões, cookies ou variáveis GET / POST. Sessões e cookies são bastante fáceis de usar, sendo a sessão muito mais segura do que os cookies. Mais seguro, mas não completamente seguro.
Sessão:
Lembre-se de executar a
session_start();
instrução nessas duas páginas antes de tentar acessar a$_SESSION
matriz e também antes de qualquer saída ser enviada ao navegador.Biscoito:
A grande diferença entre sessões e cookies é que o valor da variável será armazenado no servidor se você estiver usando sessões e no cliente se estiver usando cookies. Não consigo pensar em nenhum bom motivo para usar cookies em vez de sessões, exceto se você deseja que os dados persistam entre as sessões, mas mesmo assim talvez seja melhor armazená-los em um banco de dados e recuperá-los com base em um nome de usuário ou ID.
GET e POST
Você pode adicionar a variável no link à próxima página:
Isso criará uma variável GET.
Outra maneira é incluir um campo oculto em um formulário que é enviado para a página dois:
E então na página dois:
Basta alterar o método para o formulário para
post
se você quiser fazê-lo via postagem. Ambos são igualmente inseguros, embora GET seja mais fácil de invadir.O fato de cada nova solicitação ser, exceto os dados da sessão, uma instância totalmente nova do script me pegou quando comecei a codificar em PHP. Depois de se acostumar, é bastante simples.
fonte
Obrigado pelas respostas acima. Aqui está como eu fiz isso, espero que ajude aqueles que o seguem. Estou procurando passar um número de registro de uma página para outra, portanto regName e regValue :
Crie sua primeira página, chame-a de set_reg.php :
Crie sua segunda página, chame-a get_reg.php :
Embora não seja tão abrangente quanto a resposta acima, para meus propósitos isso ilustra de maneira simples a relação entre os vários elementos.
fonte
Passando dados na solicitação
Você pode incorporá-lo como um campo oculto no seu formulário ou adicioná-lo ao URL de ação do seu formulário.
ou
Observe que isso também ilustra o uso de htmlentities e urlencode ao transmitir dados.
Passando dados na sessão
Se os dados não precisarem ser passados para o lado do cliente, as sessões poderão ser mais apropriadas. Simplesmente chame session_start () no início de cada página e você poderá obter e configurar dados no array $ _SESSION.
Segurança
Como você declara que seu valor é realmente um nome de arquivo, você precisa estar ciente das ramificações de segurança. Se o nome do arquivo chegou do lado do cliente, suponha que o usuário tenha adulterado o valor. Verifique se há validade! O que acontece quando o usuário passa o caminho para um arquivo importante do sistema ou para um arquivo sob seu controle? Seu script pode ser usado para "analisar" o servidor em busca de arquivos que existem ou não?
Como você está claramente começando aqui, vale lembrar que isso vale para todos os dados que chegam em $ _GET, $ _POST ou $ _COOKIE - assuma que seu pior inimigo criou o conteúdo dessas matrizes e codifique de acordo!
fonte
Existem três métodos para passar valor em php.
Esses três métodos são usados para fins diferentes. Por exemplo, se queremos receber nosso valor na próxima página, podemos usar o método 'post' ($ _POST) como: -
Se exigirmos o valor da variável em mais de uma página, poderemos usar a variável de sessão como: -
Antes de usar esta sintaxe para criar a variável SESSION, primeiro precisamos adicionar essa tag no início da nossa página php
O método GET geralmente é usado para imprimir dados na mesma página que costumava receber informações do usuário. Sua sintaxe é como:
O método POST geralmente consome mais seguro que GET porque, quando usamos o método Get, ele pode exibir os dados na barra de URL. Se os dados são mais sensíveis, como a senha, podem ser inggeris.
fonte
As sessões seriam a única maneira boa, você também pode usar GET / POST, mas isso seria potencialmente inseguro.
fonte
tente este código
usando o campo oculto, podemos passar o php varibale para outra página
page1.php
passe a variável php para o valor do campo oculto para que você possa acessar essa variável em outra página
page2.php
fonte
página 2
fonte
As sessões seriam a única maneira boa, você também pode usar GET / POST, mas isso seria potencialmente inseguro.
Passando dados na sessão Se os dados não precisarem ser passados para o lado do cliente, as sessões poderão ser mais apropriadas. Simplesmente chame session_start () no início de cada página e você poderá obter e configurar dados no array $ _SESSION.
Segurança Como você declara que seu valor é realmente um nome de arquivo, você precisa estar ciente das ramificações de segurança. Se o nome do arquivo chegou do lado do cliente, suponha que o usuário tenha adulterado o valor. Verifique se há validade! O que acontece quando o usuário passa o caminho para um arquivo importante do sistema ou para um arquivo sob seu controle? Seu script pode ser usado para "analisar" o servidor em busca de arquivos que existem ou não?
Como você está claramente começando aqui, vale lembrar que isso vale para todos os dados que chegam em $ _GET, $ _POST ou $ _COOKIE - assuma que seu pior inimigo criou o conteúdo dessas matrizes e codifique de acordo!
fonte