variáveis ??de transferência entre páginas PHP
Pergunta
Eu quero começar a entrada do usuário em uma página, loja que em uma variável php e usá-lo em outra página php. Eu tentei usar 'sessões', mas não parece estar funcionando. Existe outra alternativa segura? Esta informação é susceptível de ser nomes de usuários e senhas.
Solução
Tente alterar o seu código de sessão como esta é a melhor maneira de fazer isso.
Por exemplo:
index.php
<?php
session_start();
if (isset($_POST['username'], $_POST['password']) {
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];
echo '<a href="nextpage.php">Click to continue.</a>';
} else {
// form
}
?>
nextpage.php
<?php
session_start();
if (isset($_SESSION['username'])) {
echo $_SESSION['username'];
} else {
header('Location: index.php');
}
?>
No entanto eu provavelmente armazenar algo mais seguro como um ID de usuário em uma sessão, em vez de credenciais de login do usuário.
Outras dicas
Eu concordo com Carson, as sessões devem trabalhar para isso. Certifique-se de que você está chamando session_start () antes de qualquer coisa em qualquer página que você deseja usar as variáveis ??de sessão.
Além disso, eu não armazenar informações de senha diretamente, em vez usar algum tipo de mecanismo de token de autenticação. IMHO, não é intrinsecamente inseguro para armazenar dados de senha em uma sessão, mas se não há necessidade de fazê-lo, você provavelmente deve tentar evitá-lo.
Existem várias maneiras:
- usar sessões (mas não se esqueça de chamar < a href = "http://de2.php.net/manual/en/function.session-start.php" rel = "nofollow noreferrer"> session_start () em todas as páginas que você vai usar os dados da sessão loja ( $ _SESSION ))
- anexar seus dados para a string de consulta da página "ao lado" ( $ _ GET )
- postar seus dados para a página de "next" ( $ _POST )
A sessão-way é a única maneira em que os dados não "deixar" o servidor como ele é armazenado no próprio servidor. Para todas as outras formas mencionadas acima, você tem que cuidar de saneantes e validando os dados na página de recepção.
A maneira mais simples seria
//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';
//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];
Eu concordo também, as sessões são a melhor solução. Veja neste capítulo a partir Web de banco de dados Aplicações com PHP e MySQL para alguns exemplos.