2017-12-25 6 views
1

Ich versuche ein Formular zu erstellen, das als Suchmaschine fungiert und Ergebnisse zurückgibt. Die Daten aus dem Benutzereintrag können jedoch nicht in einer Sitzung gespeichert werden oder die Sitzung kann nicht an eine andere Datei übergeben werden. Hier ist der Code für die Suchseite "home" und die Ergebnisseite "Search-Engine".Wie übertragen Sie Daten aus einem Formular in einer anderen Datei mit PHP-Sitzungen?

home.php

<html lang="en-US"> 
    <html> 
    <head> 
    </head> 
    <body> 
    <form action="Search-Engine.php" method="GET"> 
    <input type="text" id="query" placeholder="I'm looking for..." onkeydown = "if (event.keyCode == 13) document.getElementById('searchbtn').click()"> 
    <input type="submit" id="searchbtn" value="Search"> 
    </form> 
    <?php session_register(); session_start(); ?> 
    <?php $_GET['query'] = $_SESSION['Query']; ?> 
    </body> 
    </html> 

Search-Engine.php

<html lang="en-US"> 
<html> 
<head> 
</head> 
<body> 
<div class="results"> 
<?php session_start(); ?> 
We could not find: <?php echo $_SESSION['Query']; ?> 
</div> 
</body> 
</html> 
+0

Haben Sie es denken vielleicht, weil der Dateiname mit Namen die Erweiterung als .html und warum benutzt du Session um Werte wie diese zu übergeben? Sie könnten sie einfach aus dem Formular selbst entweder mit Post oder Get übergeben? –

+0

Aktualisieren Sie Ihre Home.html-Erweiterung zu PHP wie Home.php für die Verwendung von Sitzungen. –

+0

Auch wenn ich das PHP-Session-Register verschiebe und die Datei als php-Datei umbenenne, hat es das gleiche Ergebnis. – Capattax

Antwort

1

Ich weiß nicht, den genauen Zweck Sessions in Ihrem Formular zu verwenden. Aber Sie tun falsch, indem Sie Sitzung in der Mitte der Seite starten und Sitzungen innerhalb des Formulars verwenden. Sie können den Wert in Sitzungen auf einer anderen Seite nach dem Absenden des Formulars hinzufügen.

Sie können Ihre Dateien in der folgenden Art und Weise aktualisieren:

home.php

<html lang="en-US"> 
<html> 
<head> 
</head> 
<body> 
<form action="Search-Engine.php" method="GET"> 
<input type="text" name="query" id="query" placeholder="I'm looking for..." onkeydown = "if (event.keyCode == 13) document.getElementById('searchbtn').click()"> 
<input type="submit" id="searchbtn" value="Search"> 
</form> 
</body> 
</html> 

Search-Engine.php

<?php session_start(); 
$_SESSION['Query'] = $_GET['query']; ?> 
<html lang="en-US"> 
<html> 
<head> 
</head> 
<body> 
<div class="results"> 
We could not find: <?php echo $_SESSION['Query']; ?> 
</div> 
</body> 
</html> 
+2

Ziemlich sicher, dass das Attribut Name sein sollte, nicht ID für "Abfrage" im Formular. –

+0

@Sidzler Ja, du hast Recht! Vielen Dank –

Verwandte Themen