Es scheint ziemlich einfach zu sein, aber ich kann keinen guten Weg finden, es zu tun.
Angenommen, ich erstelle auf der ersten Seite eine Variable
$myVariable = "Some text";
Die Aktion des Formulars für diese Seite lautet "Page2.php". Wie kann ich in Page2.php auf diese Variable zugreifen? Ich weiß, dass ich es mit Sitzungen machen kann, aber ich denke, es ist zu viel für eine einfache Zeichenfolge, und ich muss nur eine einfache Zeichenfolge (einen Dateinamen) übergeben.
Wie kann ich das erreichen?
Vielen Dank!
Antworten:
HTML / HTTP ist zustandslos, dh was Sie auf der vorherigen Seite getan / gesehen haben, ist vollständig nicht mit der aktuellen Seite verbunden. Außer wenn Sie so etwas wie Sitzungen, Cookies oder GET / POST-Variablen verwenden. Sitzungen und Cookies sind recht einfach zu verwenden, wobei Sitzungen weitaus sicherer sind als Cookies. Sicherer, aber nicht vollständig sicher.
Session:
Denken Sie daran, die
session_start();
Anweisung auf beiden Seiten auszuführen, bevor Sie versuchen, auf das$_SESSION
Array zuzugreifen , und bevor eine Ausgabe an den Browser gesendet wird.Plätzchen:
Der große Unterschied zwischen Sitzungen und Cookies besteht darin, dass der Wert der Variablen auf dem Server gespeichert wird, wenn Sie Sitzungen verwenden, und auf dem Client, wenn Sie Cookies verwenden. Ich kann mir keinen guten Grund vorstellen, Cookies anstelle von Sitzungen zu verwenden, es sei denn, Sie möchten, dass Daten zwischen Sitzungen bestehen bleiben, aber selbst dann ist es vielleicht besser, sie in einer Datenbank zu speichern und sie basierend auf einem Benutzernamen oder einer ID abzurufen.
GET und POST
Sie können die Variable im Link zur nächsten Seite hinzufügen:
Dadurch wird eine GET-Variable erstellt.
Eine andere Möglichkeit besteht darin, ein verstecktes Feld in ein Formular aufzunehmen, das an Seite zwei gesendet wird:
Und dann auf Seite zwei:
Ändern
post
Sie einfach die Methode für das Formular in, wenn Sie dies per Post tun möchten. Beide sind gleichermaßen unsicher, obwohl GET leichter zu hacken ist.Die Tatsache, dass jede neue Anforderung, mit Ausnahme der Sitzungsdaten, eine völlig neue Instanz des Skripts ist, hat mich beim ersten Codieren in PHP überrascht. Sobald Sie sich daran gewöhnt haben, ist es jedoch recht einfach.
quelle
Danke für die Antworten oben. So habe ich es gemacht, ich hoffe es hilft denen, die folgen. Ich möchte eine Registrierungsnummer von einer Seite zur anderen weitergeben, daher regName und regValue :
Erstellen Sie Ihre erste Seite, nennen Sie sie set_reg.php :
Erstellen Sie Ihre zweite Seite, nennen Sie sie get_reg.php :
Obwohl nicht so umfassend wie die obige Antwort, veranschaulicht dies für meine Zwecke auf einfache Weise die Beziehung zwischen den verschiedenen Elementen.
quelle
Daten in der Anfrage übergeben
Sie können es entweder als verstecktes Feld in Ihr Formular einbetten oder Ihre Formularaktions-URL hinzufügen
oder
Beachten Sie, dass dies auch die Verwendung von HTML-Eigenschaften und Urlencode beim Weitergeben von Daten veranschaulicht .
Daten in der Sitzung übergeben
Wenn die Daten nicht an die Clientseite übergeben werden müssen, sind Sitzungen möglicherweise besser geeignet. Rufen Sie einfach session_start () am Anfang jeder Seite auf, und Sie können Daten in das Array $ _SESSION abrufen und festlegen.
Sicherheit
Da Sie angeben, dass Ihr Wert tatsächlich ein Dateiname ist, müssen Sie sich der Sicherheitsauswirkungen bewusst sein. Wenn der Dateiname von der Clientseite eingetroffen ist, wird davon ausgegangen, dass der Benutzer den Wert manipuliert hat. Überprüfen Sie die Gültigkeit! Was passiert, wenn der Benutzer den Pfad zu einer wichtigen Systemdatei oder einer von ihm kontrollierten Datei übergibt? Kann Ihr Skript verwendet werden, um den Server nach Dateien zu durchsuchen, die vorhanden sind oder nicht?
Da Sie gerade erst hier anfangen, sollten Sie daran erinnern, dass dies für alle Daten gilt, die in $ _GET, $ _POST oder $ _COOKIE eingehen. Nehmen Sie an, Ihr schlimmster Feind hat den Inhalt dieser Arrays erstellt und den Code entsprechend erstellt.
quelle
Es gibt drei Methoden, um Werte in PHP zu übergeben.
Diese drei Methoden werden für unterschiedliche Zwecke verwendet. Wenn wir beispielsweise unseren Wert auf der nächsten Seite erhalten möchten, können wir die Methode 'post' ($ _POST) wie folgt verwenden: -
Wenn wir den Wert der Variablen auf mehr als einer Seite benötigen, können wir die Sitzungsvariable wie folgt verwenden:
Bevor wir diese Syntax zum Erstellen der SESSION-Variablen verwenden, müssen wir dieses Tag ganz am Anfang unserer PHP-Seite hinzufügen
Die GET-Methode wird im Allgemeinen verwendet, um Daten auf derselben Seite zu drucken, auf der Eingaben vom Benutzer vorgenommen wurden. Die Syntax lautet wie folgt:
POST-Methoden sind im Allgemeinen sicherer als GET, da bei Verwendung der Get-Methode die Daten in der URL-Leiste angezeigt werden können. Wenn es sich bei den Daten um vertraulichere Daten wie Kennwörter handelt, kann es sich um Inggeris handeln.
quelle
Sitzungen wären der einzig gute Weg, Sie könnten auch GET / POST verwenden, aber das wäre möglicherweise unsicher.
quelle
Versuchen Sie diesen Code
Mit versteckten Feldern können wir PHP Varibale an eine andere Seite übergeben
page1.php
Übergeben Sie die PHP-Variable an den Wert des versteckten Felds, damit Sie auf diese Variable auf einer anderen Seite zugreifen können
page2.php
quelle
Seite 2
quelle
Sitzungen wären der einzig gute Weg, Sie könnten auch GET / POST verwenden, aber das wäre möglicherweise unsicher.
Übergeben von Daten in der Sitzung Wenn die Daten nicht an den Client übergeben werden müssen, sind Sitzungen möglicherweise besser geeignet. Rufen Sie einfach session_start () am Anfang jeder Seite auf, und Sie können Daten in das Array $ _SESSION abrufen und festlegen.
Sicherheit Da Sie angeben, dass Ihr Wert tatsächlich ein Dateiname ist, müssen Sie die Sicherheitsauswirkungen kennen. Wenn der Dateiname von der Clientseite eingetroffen ist, wird davon ausgegangen, dass der Benutzer den Wert manipuliert hat. Überprüfen Sie die Gültigkeit! Was passiert, wenn der Benutzer den Pfad zu einer wichtigen Systemdatei oder einer von ihm kontrollierten Datei übergibt? Kann Ihr Skript verwendet werden, um den Server nach Dateien zu durchsuchen, die vorhanden sind oder nicht?
Da Sie hier gerade erst anfangen, sollten Sie daran erinnern, dass dies für alle Daten gilt, die in $ _GET, $ _POST oder $ _COOKIE eingehen. Nehmen Sie an, Ihr schlimmster Feind hat den Inhalt dieser Arrays erstellt und den Code entsprechend erstellt.
quelle