Ich versuche sicherzustellen, dass der Parameter einer GET-Methode von Seite 2 (die das Ergebnis anzeigt) nicht von anderen in der URL (den Variablen hinter dem Fragezeichen) geändert wird, indem Sie die Benutzer sicher stellen Klicken Sie auf die Schaltfläche "Senden" auf Seite 1 (die das Formular enthält).
Der Professor bittet uns, isset()
zu verwenden, um diese Anforderung zu implementieren
Hier die Anmeldeseite: (page1.php)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional ...> <html
xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Login
Page</title> </head>
<body>
<label>User ID:</label>
<input type="text" name="uid">
<br />
<input type="submit" value="SubmitCredentials" name="SubmitCredentials"/>
<br />
</form> </body> </html>
Und dies ist die zweite Seite: (page2.php)
<?php
// get the data from the form
$uid = $_GET['uid'];
if(!isset($_GET['SubmitCredentials'])){
include('error.html');
exit();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional
...>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HELLO</title>
</head>
<body>
<label>Hello,</label>
<span><?php echo $uid; ?></span><br />
</body>
</html>
Die Anweisung if
scheint jedoch nicht zu funktionieren. Es soll die Seite an error.html
weiterleiten, wenn ich die Variable uid
in der URL ändere (z. B. wenn ich die URL in http://localhost/1/page2.php?uid=admin
ändere), dies aber nicht ist. Wie kann ich das Problem beheben?
PS: Ein relevantes Tutorial, das ich in Google & gt; & gt; & gt; http://www.homeandlearn.co.uk/php/php4p7.html
Versuchen Sie:
if (! isset ($ _ GET ['SubmitCredentials'])) { header ('Location: error.html'); }
Isset ist auf Arrays nicht sicher. Vergleichen Sie stattdessen den Operator ===
:
if(!($_GET['SubmitCredentials'] === 'SubmitCredentials')) {
include('error.html');
exit();
}
Seite 1:
<form method="GET" action="...">
<input>
<input>
<input>
</form>
URL einreichen:
http://localhost/1/page2.php?SubmitCredentials=SubmitCredentials&uid=admin&i_like_php=yes&...