Domanda

Voglio ottenere l'input dell'utente in una pagina, memorizzarlo in una variabile php e usarlo in un'altra pagina php. Ho provato a usare 'sessioni' ma non sembra funzionare. C'è un'altra alternativa sicura? È probabile che queste informazioni siano nomi utente e password.

È stato utile?

Soluzione

Prova a cambiare il codice della sessione poiché questo è il modo migliore per farlo.

Ad esempio:

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

Tuttavia probabilmente memorizzerei qualcosa di più sicuro come un ID utente in una sessione piuttosto che le credenziali di accesso dell'utente.

Altri suggerimenti

Sono d'accordo con Carson, le sessioni dovrebbero funzionare per questo. Assicurati di chiamare session_start () prima di qualsiasi altra cosa su qualsiasi pagina in cui desideri utilizzare le variabili di sessione.

Inoltre, non vorrei memorizzare direttamente le informazioni sulla password, ma piuttosto utilizzare un qualche tipo di meccanismo di token di autenticazione. IMHO, non è intrinsecamente sicuro archiviare i dati della password in una sessione, ma se non è necessario farlo, probabilmente dovresti cercare di evitarlo.

Esistono diversi modi:

  • usa sessioni (ma non dimenticare di chiamare < a href = "http://de2.php.net/manual/en/function.session-start.php" rel = "nofollow noreferrer"> session_start () su ogni pagina utilizzerai i dati della sessione store ( $ _SESSION ))
  • aggiungi i tuoi dati alla stringa di query del " next " pagina ( $ _GET )
  • pubblica i tuoi dati nella " successiva " pagina ( $ _POST )

Il modo sessione è l'unico modo in cui i dati non " lascia " il server così come è memorizzato sul server stesso. Per tutti gli altri modi di cui sopra, è necessario occuparsi della sanificazione e della convalida dei dati nella pagina di ricezione.

Il modo più semplice sarebbe

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

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

Puoi provare a usare i metodi POST e GET per trasferire input utente all'interno di script PHP.

PHP GET

PHP POST

Sono d'accordo anche io, le sessioni sono la soluzione migliore. Vedi questo capitolo da Applicazioni database Web con PHP & Amp; MySQL per alcuni esempi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top