12 Stimmen

Variablen zwischen PHP-Seiten übertragen

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.

15voto

Ross Punkte 44536

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.

7voto

ZombieSheep Punkte 29085

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.

5voto

Stefan Gehrig Punkte 80686

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

0voto

milot Punkte 1050

Sie können versuchen, POST- und GET-Methoden für die Übertragung von Benutzereingaben in PHP-Skripten zu verwenden.

PHP GET

PHP POST

0voto

Treb Punkte 19459

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X