2017-05-07 3 views
0

Wie die URL ein, nachdem über mehrere Seiten in PHP

<html> 
 

 
<head> 
 
    <title>Session Form</title> 
 
</head> 
 

 
<body> 
 
    <form method="get" action="session_php.php"> 
 
    Add text using session<input type="text" name="formdata" size="20"> 
 
    <input type="submit" value="Press to submit"> 
 
    </form> 
 
</body> 
 

 
</html>

<?php 
 
session_start(); 
 
if (isset ($_GET['formdata'])) 
 
{ 
 
    
 
     $_SESSION['times'] = $_SESSION['times']+1; 
 
     // a better way 
 
     // $_SESSION['times']++; 
 
\t $_SESSION['data'] = $_GET['formdata']; 
 
     $_SESSION['old'] = $_SESSION['old']."<br>".$_SESSION['data']; 
 
\t echo $_SESSION['old']."<br>"; 
 
     echo "times changed = ".$_SESSION['times']."<br>"; 
 
    
 
} 
 
else 
 
{ 
 
    echo "No data was submitted<br>"; 
 
} 
 
?>
Hallo, Ich bin neu in PHP vorgelegt $ _SESSION zur Speicherung von Daten verwendet und vor kurzem traf ich ein Problem.

Wenn ich die $ _SESSION verwenden, um die Daten zu speichern (z. B. Ich tippte "Dddd") von der HTML-Seite übergeben, ändert sich die URL der gesendeten Seite zu "Session_php.php? Formdata = Dddd".

Wenn ich die ursprüngliche URL 'session_php.php' verwende, stellt sich heraus, dass keine Daten gesendet wurden.

So legen Sie die richtige URL fest, die die gespeicherten Daten enthält.

Danke für die Hilfe,

+0

Einfach fragen, warum verwenden Sie statt POST GET? POST wird stattdessen die bessere Option sein. –

Antwort

1

Ok für das folgen dieser

www.somewebsite.com?somevariable=<?php echo $_SESSION['data']; ?> 

, dass es ..

+0

Danke! Ich habe mich gefragt, wie man den Link setzt, wenn mehrere Variablen von der vorherigen Seite übergeben werden? –

0

Das URL-Muster die Sie gegeben haben ist

session_php.php?formdata=dddd 

session_php.php der Dateiname und dann ein "?" danach ein Feldname Formular „Formulardaten“, die „=“ und dann „dddd“ ein Wert

Sie einfach die „dddd“ ändern, was auch immer Sie und Ihre Daten werden es einfach so

session_php.php?formdata=value1 
session_php.php?formdata=value2 
schreiben
+0

Danke für die Erklärung. Ich frage mich, wie man einen Link setzt, der dynamisch auf die Seite verweisen kann, auf der die endgültige Einreichung angezeigt wird? –

0

Die Supervariable $_GET speichert Werte, die als Teil der URL übergeben werden.

Im Fall von ?formdata=dddd werden Sie $_GET['formdata'] = haben (string) dddd

Was Sie tun, richtig den Wert von $_GET['formdata']-$_SESSION['data'], da dies den Wert behält, ist vorbei Sie im Rahmen der GET-Anforderung übergeben.

Was Sie falsch machen, ist die Suche nach isset ($_GET['formdata'] in session_php.php. Sie wollen, so etwas zu tun:

if (isset ($_SESSION['data']]) { 

} else { 

} 

Wenn Sie die $_GET Variable überprüft dann, sobald Sie Zeichenfolge, die die Query-String aus der URL haben Sie wesentlich ungesetzt diese Variable.

0

Sie können eine dynamische Verknüpfung dafür brauchen. Weil Sie den übergebenen Wert in Ihrer Sitzungsvariablen haben. Sie können diesen Wert auf jeder beliebigen Seite aufrufen.

in jeder Seite, die Sie gerade schreiben

<?php echo $_SESSION['data']; ?> 
+0

Was passiert, wenn mehr als zwei Daten mit Ausnahme von $ _SESSION ['data'] übergeben werden? –

1

Alle Daten in $ gespeichert werden _SESSION [] Variable wie diese

$_SESSIOM['data1'], $_SESSIOM['data2'], $_SESSIOM['data3'] 
Verwandte Themen