Pregunta

Quiero obtener la entrada del usuario en una página, almacenarla en una variable php y usarla en otra página php. He intentado usar 'sesiones' pero no parece estar funcionando. ¿Hay otra alternativa segura? Es probable que esta información sean nombres de usuario y contraseñas.

¿Fue útil?

Solución

Intente cambiar su código de sesión ya que esta es la mejor manera de hacerlo.

Por ejemplo:

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');
}
?>

Sin embargo, probablemente almacene algo más seguro como un ID de usuario en una sesión en lugar de las credenciales de inicio de sesión del usuario.

Otros consejos

Estoy de acuerdo con carson, las sesiones deberían funcionar para esto. Asegúrese de llamar a session_start () antes de cualquier otra cosa en cualquier página en la que desee utilizar las variables de sesión.

Además, no almacenaría la información de contraseña directamente, sino que usaría algún tipo de mecanismo de token de autenticación. En mi humilde opinión, no es intrínsecamente inseguro almacenar datos de contraseña en una sesión, pero si no hay necesidad de hacerlo, probablemente deberías intentar evitarlo.

Hay varias formas:

  • use sesiones (pero no olvide llamar a < a href = "http://de2.php.net/manual/en/function.session-start.php" rel = "nofollow noreferrer"> session_start () en cada página utilizará los datos de la sesión store ( $ _SESSION ))
  • agregue sus datos a la cadena de consulta de " next " página ( $ _GET )
  • publique sus datos en " next " página ( $ _POST )

El modo de sesión es la única forma en que los datos no & "; deja &"; el servidor como está almacenado en el servidor mismo. Para todas las otras formas mencionadas anteriormente, debe encargarse de desinfectar y validar los datos en la página de recepción.

La forma más simple sería

//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';

//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];

Puede intentar usar los métodos POST y GET para transferir entradas de usuario dentro de scripts PHP.

PHP GET

POST PHP

También estoy de acuerdo, las sesiones son la mejor solución. Consulte este capítulo en Aplicaciones de bases de datos web con PHP & Amp; MySQL para algunos ejemplos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top