Mit Hilfe des POST-Methode zum ausblenden von URL-Parametern
Verstehe ich, dass ich in der Lage bin, die POST-Methode für URL-Parameter für die Anzeige von Daten, die nach einer bestimmten variable, ich weiß, wie man die Verwendung der GET-Methode - aber ich bin gesagt, dass die POST-Methode verwendet werden kann, zu verstecken, der Teil der URL, das ist wie diese.
/data.php?parameter=1234
Was ist eigentlich der Unterschied der beiden Methoden in Bezug auf die URL-Parameter?
Nachfolgend finden Sie einige code, der holt sich die Daten aus einer Datenbank nach der id eines bestimmten link
<?php
//This includes the variables, adjusted within the 'config.php file' and the functions from the 'functions.php' - the config variables are adjusted prior to anything else.
require('configs/config.php');
require('configs/functions.php');
//This is the actual interaction with the database, according to the id.
$query = mysql_query("SELECT * FROM table WHERE id=" .$_GET['id'] . ";") or die("An error has occurred");
//This re-directs to an error page the user preventing them from viewing the page if there are no rows with data equal to the query.
if( mysql_num_rows($query) < 1 )
{
header('Location: 404.php');
exit;
}
//Here each cell in the database is fetched and assigned a variable.
while($row = mysql_fetch_array($query))
{
$id = $row['id'];
$title = $row['title'];
$month = $row['month'];
$day = $row['day'];
$photo = $row['photo'];
$text = $row['text'];
}
?>
Auf einer separaten Seite habe ich links erzeugen, um die data.php -Datei nach der ID etwa so:
<a href="post.php?id=<?php echo $content['id']; ?>"><?php echo $content['title']; ?></a>
Vergessen, dass es mögliche SQL-Injektionen, die auftreten können, durch den obigen code, wie würde ich mich über die Nutzung der POST-Methode, um sich zu verstecken die URL-Parameter, oder zumindest nicht anzeigen wie diese:
http://example.com/data.php?id=1
mysql_query("SELECT * FROM table WHERE id=" .$_GET['id'] . ";")
ist anfällig für SQL-injection, also seien Sie vorsichtig, wenn Sie setzen diese online und wenn Ihre Datenbank enthält wichtige Daten.InformationsquelleAutor Alex | 2011-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um zu POSTEN, benötigen Sie eine
<form>
tag, und je nachdem, wie Sie sind, ziehen Sie diese URLs, könnte es einfacher sein, javascript zu verwenden, um zu helfen. Hier ist ein einfaches Beispiel:Den Go-button POST-Daten des Formulars, und jetzt in data.php Sie werden in der Lage, zum abrufen des Wertes aus
$_POST['parameter']
. Beachten Sie, dass bei der Verwendung von POST, werden Sie wahrscheinlich wollen redirect (HTTP 302) wieder zu einer Seite, so dass, wenn ein Benutzer sich zuvor auf den zurück-button, der browser nicht prompt erneut die form.Mit javascript, Sie können die
parameter
Eingang auf einen anderen Wert, bevor die form.Da gibt es nichts Falsches darüber, aber wenn Sie möchten, verwenden Sie den POST, um Sie zu entfernen-id aus der URL, dann möchten Sie zum speichern der ID in der session ($_SESSION). So, wenn ein Benutzer auf data.php Sie können sich die id aus der session zu, anstatt ab zu BEKOMMEN.
So würde ich zum kleben der code für die Aktualisierung der Datenbank in der gleichen Datei die zeigt auch den Inhalt eingefügt wird? Also der form ausgeführt wird, das Skript einfügen in die Datenbank und zeigt dann die eingestellten Daten für die Benutzer?
Wenn Sie die Aktualisierung der Datenbank auf eine Benutzer-Aktion, würde ich POST an ein php-Skript, das das speichern, setzt die id in die session, leitet dann zu der Ansicht-Seite, die dann das laden der Daten aus der db mit der id aus der session. Hätte man auch alles in der selben Datei, und nur die Updates wenn Sie erkennen POST-Daten. Es gibt viele Strategien, die Sie verwenden können, aber es hängt von der Anwendung ab, auf welchem Weg am besten ist.
InformationsquelleAutor Dan Breen
Verwenden Sie die Methode "POST" für Ihre form. Ich hatte das gleiche Problem, nur das hinzufügen BEITRAG zu der form entfernt die Parameter aus der URL
InformationsquelleAutor Amir Md Amiruzzaman
POSTEN Werte, die einen browser verwenden würde, ein Formular mit method="post" -, oder javascript-Simulation der form. Verschiedene Entwickler-tools (fireug, etc) konvertieren, Formulare zu POST-Formen, aber in der Regel, eine form ist das, was erforderlich ist.
In der Theorie-GET-Anfragen sollten keine Nebenwirkungen haben, und "sollte" im Einklang von Anforderung zu Anforderung. Das heißt, der server sollte wieder den gleichen Inhalt. In der heutigen Welt fast alles, was dynamisch ist, könnte dies von geringer praktischer design Bedeutung.
InformationsquelleAutor Jeff Warnica
Ob Sie GET oder POST verwenden, die Parameter erscheinen in
$_REQUEST
. Der entscheidende Unterschied ist, dass die Verwendung von POST ermöglicht den Variablen, die NICHT angezeigt werden in der URL-Geschichte. Dies verringert die Sichtbarkeit von Daten, wie z.B. Passwörter, die Sie nicht wollen, zu zeigen, bis in der URL-Geschichte. Die Verwendung von POST statt GET, einfach zu<form method="POST" ...>
im Dokument.Sogar noch besser ist, speichern Sie vertrauliche Werte (wie Benutzer-ids) in cookies, so dass Sie nicht in
$_REQUEST
überhaupt. Da die Inhalte der cookies werden in extra HTTP-request-Header, nicht in den Inhalten, Sie sind in der Regel nicht gespeichert, als Teil der Geschichte.InformationsquelleAutor wberry
Um POST anstelle von GET, müssen Sie ein HTML-Formular-tag in den html-Code, etwa so:
Beim senden Ihrer URL wird nur
/data.php
" und " parameter=1234 werden in Ihrer (versteckten) post Puffer.Sinn?
InformationsquelleAutor lambinator
Tun, eine POST, müssen Sie ein Formular verwenden, oder einige javascript - /ajax-Tricks. Ein
<a>
wird immer nur Ursache einer GET-Anfrage.Beachten Sie, dass POST-requests können immer noch query-Parameter in der URL. Es ist nicht "normal" zu haben, aber Sie sind erlaubt. Der wesentliche Unterschied ist, dass mit einer GET-Anfrage (ignorieren von cookies), die URL ist der NUR Weg, um senden Parameter/Daten an den server. Mit POST können Sie sowohl die URL, und der Textkörper der POST-Anforderung, die ist, wo Gepostet-Formular-Daten werden in der Regel platziert.
InformationsquelleAutor Marc B