237 Stimmen

PHP Variable an die nächste Seite übergeben

Es scheint ziemlich einfach zu sein, aber ich kann keine gute Methode dafür finden.

Angenommen, ich erstelle auf der ersten Seite eine Variable

$myVariable = "Some text";

Und die Aktion des Formulars für diese Seite ist "Page2.php". Wie kann ich also in Page2.php auf diese Variable zugreifen? Ich weiß, dass ich das mit Sessions machen kann, aber ich denke, das ist zu viel für einen einfachen String, und ich muss nur einen einfachen String (einen Dateinamen) übergeben.

Wie kann ich das erreichen?

Merci !

0 Stimmen

Am besten und einfachsten ist es, Variablen zu übergeben, wie ich es hier erklärt habe: stackoverflow.com/questions/14465464/

518voto

Jrgns Punkte 23690

HTML/HTTP ist zustandslos, d. h., was Sie auf der vorherigen Seite getan/gesehen haben, steht in keinerlei Zusammenhang mit der aktuellen Seite. Außer wenn Sie etwas wie Sitzungen, Cookies oder GET/POST-Variablen verwenden. Sessions und Cookies sind recht einfach zu verwenden, wobei Sessions bei weitem sicherer sind als Cookies. Sicherer, aber nicht völlig sicher.

Sitzung:

//On page 1
$_SESSION['varname'] = $var_value;

//On page 2
$var_value = $_SESSION['varname'];

Denken Sie daran, die session_start(); Anweisung auf diesen beiden Seiten, bevor Sie versuchen, auf die $_SESSION Array, und auch bevor eine Ausgabe an den Browser gesendet wird.

Keks:

//One page 1
$_COOKIE['varname'] = $var_value;

//On page 2
$var_value = $_COOKIE['varname'];

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. Mir fällt kein guter Grund ein, Cookies anstelle von Sessions zu verwenden, es sei denn, Sie wollen, dass die Daten zwischen den Sessions erhalten bleiben, aber selbst dann ist es vielleicht besser, sie in einer DB zu speichern und sie anhand eines Benutzernamens oder einer ID abzurufen.

GET und POST

Sie können die Variable über den Link auf der nächsten Seite hinzufügen:

<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>

Dadurch wird eine GET-Variable erstellt.

Eine andere Möglichkeit besteht darin, ein verstecktes Feld in ein Formular aufzunehmen, das auf Seite zwei weitergeleitet wird:

<form method="get" action="page2.php">
    <input type="hidden" name="varname" value="var_value">
    <input type="submit">
</form>

Und dann auf Seite zwei:

//Using GET
$var_value = $_GET['varname'];

//Using POST
$var_value = $_POST['varname'];

//Using GET, POST or COOKIE.
$var_value = $_REQUEST['varname'];

Ändern Sie einfach die Methode für das Formular in post wenn Sie dies per Post tun möchten. Beide sind gleichermaßen unsicher, obwohl GET leichter zu hacken ist.

Die Tatsache, dass jede neue Anfrage, abgesehen von den Sitzungsdaten, eine völlig neue Instanz des Skripts ist, hat mich überrascht, als ich anfing, in PHP zu programmieren. Wenn man sich erst einmal daran gewöhnt hat, ist es aber ganz einfach.

2 Stimmen

Vielen Dank, das half, das Problem war, dass ich ein Bündel von Variablen in der ersten Seite hatte, so was ich tat, war ein Array mit all diesen Variablen erstellen und senden Sie es an die nächste Seite mit Sitzungen.

0 Stimmen

Schweet :) Freut mich, dass ich helfen konnte.

6 Stimmen

Kleiner Tipp: Sessions in PHP werden im Allgemeinen auch über Cookies abgewickelt. Der Sitzungscookie ist kein dauerhafter Cookie, sondern enthält normalerweise nur die Sitzungsnummer. Aber es ist trotzdem ein Cookie.

34voto

Frank Punkte 345

Vielen Dank für die obigen Antworten. Hier ist, wie ich es tat, ich hoffe, es hilft denen, die folgen. Ich möchte eine Registrierungsnummer von einer Seite zur anderen weitergeben, daher regName y regValue :

Erstellen Sie Ihre erste Seite, nennen Sie sie set_reg.php :

<?php

session_start();

$_SESSION['regName'] = $regValue;

?>

<form method="get" action="get_reg.php">
    <input type="text" name="regName" value="">
    <input type="submit">
</form>

Erstellen Sie Ihre zweite Seite und nennen Sie sie get_reg.php :

<?php

session_start();

$regValue = $_GET['regName'];

echo "Your registration is: ".$regValue.".";

?>

<p><a href="set_reg.php">Back to set_reg.php</a>

Dies ist zwar nicht so umfassend wie die obige Antwort, aber für meine Zwecke veranschaulicht es auf einfache Weise die Beziehung zwischen den verschiedenen Elementen.

14 Stimmen

Ihr Beispiel funktioniert auch ohne Sessions und erhält die Daten nicht über den Session-Mechanismus (in get_reg.php). Du sendest regName über ein Formular mit der get-Methode, wie von Jrgns erklärt. Die Variable ist also auf der Seite get_reg.php über das Array $_GET zugänglich.

20voto

Paul Dixon Punkte 286600

Übergabe von Daten in der Anfrage

Sie können es entweder als verstecktes Feld in Ihr Formular einbetten oder es in die Aktions-URL Ihres Formulars aufnehmen

 echo '<input type="hidden" name="myVariable" value="'.
     htmlentities($myVariable).'">';

o

echo '<form method="POST" action="Page2.php?myVariable='.
    urlencode($myVariable).'">";

Dies veranschaulicht auch die Verwendung von htmlentities y urlencode bei der Weitergabe von Daten.

Übergabe von Daten in der Sitzung

Wenn die Daten nicht an die Client-Seite weitergegeben werden müssen, sind Sitzungen möglicherweise besser geeignet. Rufen Sie einfach session_start() am Anfang jeder Seite, und Sie können Daten im Array $_SESSION abrufen und setzen.

Sicherheit

Da Sie angeben, dass es sich bei Ihrem Wert um einen Dateinamen handelt, müssen Sie sich über die Sicherheitsauswirkungen im Klaren sein. Wenn der Dateiname von der Client-Seite kommt, müssen Sie davon ausgehen, dass der Benutzer den Wert manipuliert hat. Prüfen Sie ihn auf seine Gültigkeit! Was passiert, wenn der Benutzer den Pfad zu einer wichtigen Systemdatei oder zu einer Datei unter seiner Kontrolle angibt? Kann Ihr Skript dazu verwendet werden, den Server nach Dateien zu "sondieren", die existieren oder nicht existieren?

Da Sie hier offensichtlich gerade erst anfangen, lohnt es sich, daran zu erinnern, dass dies für alle Daten gilt, die in $_GET, $_POST oder $_COOKIE ankommen - gehen Sie davon aus, dass Ihr schlimmster Feind den Inhalt dieser Arrays erstellt hat, und programmieren Sie entsprechend!

11voto

ravi sharma Punkte 121

Es gibt drei Methoden, um Werte in php zu übergeben.

  • Per Post
  • Durch erhalten
  • Indem die Sitzungsvariable

Wenn wir zum Beispiel unseren Wert auf der nächsten Seite erhalten wollen, dann können wir die Methode 'post' ($_POST) verwenden.

$a=$_POST['field-name'];

Wenn wir den Wert einer Variablen auf mehr als einer Seite benötigen, können wir die Sitzungsvariable wie folgt verwenden: -

$a=$_SESSION['field-name];

Bevor wir diese Syntax für die Erstellung der SESSION-Variable verwenden, müssen wir zunächst diesen Tag am Anfang unserer PHP-Seite hinzufügen

session_start(); 

Die GET-Methode wird im Allgemeinen verwendet, um Daten auf derselben Seite zu drucken, auf der auch die Eingaben des Benutzers eingegeben werden. Die Syntax lautet wie folgt:

$a=$_GET['field-name'];

POST-Methode sind in der Regel verbrauchen mehr sicher als GET, weil, wenn wir Get-Methode verwenden, als es die Daten in URL bar.If die Daten sind mehr sensible Daten wie Passwort dann kann es inggeris.

8voto

Bhargav Chudasama Punkte 368

Versuchen Sie diesen Code

Mit einem versteckten Feld können wir eine php-Variable an eine andere Seite übergeben

Seite1.php

<?php $myVariable = "Some text";?>
<form method="post" action="page2.php">
 <input type="hidden" name="text" value="<?php echo $myVariable; ?>">
 <button type="submit">Submit</button>
</form>

Übergeben Sie eine php-Variable an den Wert eines versteckten Feldes, damit Sie auf diese Variable in einer anderen Seite zugreifen können

Seite2.php

<?php
 $text=$_POST['text'];
 echo $text;
?>

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