Ich möchte Benutzereingaben in einer Seite erhalten, speichern, dass in einer PHP-Variable und verwenden Sie es in einer anderen PHP-Seite. Ich habe es mit "sessions" versucht, aber es scheint nicht zu funktionieren. Gibt es eine andere sichere Alternative? Bei diesen Informationen handelt es sich wahrscheinlich um Benutzernamen und Passwörter.
Antworten
Zu viele Anzeigen?Versuchen Sie, Ihren Sitzungscode zu ändern, da dies die beste Möglichkeit ist, dies zu tun.
Zum Beispiel:
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
}
?>
nächsteSeite.php
<?php
session_start();
if (isset($_SESSION['username'])) {
echo $_SESSION['username'];
} else {
header('Location: index.php');
}
?>
Allerdings würde ich wahrscheinlich etwas Sichereres wie eine userid in einer Sitzung speichern, anstatt die Anmeldedaten des Benutzers.
Ich stimme mit Carson überein, dass die Sitzungen dazu dienen sollten. Stellen Sie sicher, dass Sie aufrufen session_start() vor allen anderen Seiten, auf denen Sie die Sitzungsvariablen verwenden wollen.
Außerdem würde ich das Kennwort nicht direkt speichern, sondern eine Art Authentifizierungs-Token-Mechanismus verwenden. IMHO, ist es nicht an sich unsicher, Kennwortdaten in einer Sitzung zu speichern, aber wenn keine Notwendigkeit dafür besteht, sollten Sie dies wahrscheinlich vermeiden.
Es gibt mehrere Möglichkeiten:
- verwenden. Sitzungen (aber vergessen Sie nicht, anzurufen session_start() verwenden Sie auf jeder Seite den Sitzungsdatenspeicher ( $_SESSION ))
- Ihre Daten an den Abfrage-String der "nächsten" Seite anhängen ( $_GET )
- Ihre Daten auf die "nächste" Seite stellen ( $_POST )
Der Session-Weg ist die einzige Möglichkeit, bei der die Daten den Server nicht "verlassen", da sie auf dem Server selbst gespeichert werden. Bei allen anderen oben genannten Wegen müssen Sie sich um die Bereinigung und Validierung der Daten auf der empfangenden Seite kümmern.
Der einfachste Weg wäre
//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';
//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];
Ich stimme ebenfalls zu, dass Sitzungen die beste Lösung sind. Siehe dieses Kapitel aus Web-Datenbankanwendungen mit PHP und MySQL für einige Beispiele.