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.

Foi útil?

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'];

Você pode tentar usar GET e POST métodos para transferir entradas de usuário dentro de scripts PHP.

PHP GET

PHP POST

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top