Ändern Sie die URL mit PHP
z.B. ich habe die Seite mit der url http://mysite.com?page=3&var=10
auch ist das Formular auf der Seite.
Wenn die form eingereicht, gibt es einige Aktionen in php aber ich brauche, um diese zu entfernen ?page=3&var=10
nach form eingereicht wurde, irgendwie ist es kompatibel mit allen Browsern Trog PHP ohne mod_rewrite?
- Mit POST anstelle von GET werden die Parameter ausblenden von Ihr vorgelegten form.
- warum nicht konvertieren das Formular mit POST-dann gibt es keine Parameter in der url, in den ersten Platz. oder leite es einfach danach.
- Diese Parameter kommen von der Seite der Paginierung nicht die form.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
action=index.php
, dann werden alle Werte veröffentlicht werden index php?page=3&var=10
werden automatisch entfernt.Wenn Sie buchen möchten, auf der gleichen Seite) können Sie entweder 'action=index.php?page=3&var=10' oder
action=<?php echo $_SERVER['PHP_SELF'] ?>
Können Sie überprüfen am Anfang der Seite, wenn etwas eingereicht und dann umleiten zu was wollen Sie mit
header('Location: http://www.example.com/');
Mehr über die header-Funktion http://php.net/manual/en/function.header.php$_SERVER['REQUEST_URI']
Sie sind völlig unterschiedlicher Natur und Zweck. SoPHP_SELF
ist nicht sinnvoll, Informationen, die die änderung der original - url, wenn ein einzelnes php-Skript repräsentiert Tausende von verschiedenen url-Pfaden... down-voting.Dies ist ein altes Thema, aber nur für den Fall, jemand ist auf der Suche nach diesem in der Zukunft, können Sie die javascript-replaceState zu ändern, die Geschichte und die browser-Leiste label. Eine einfache php-Funktion, um dies zu tun:
Dann würden einfach diese Funktion aufrufen, mit der gewünschten url (vermutlich fallen die post-Variablen):
Einem Neuladen der Seite oder dem Rücken nach dem Aufruf einer anderen Seite haben nun die neue url in der Geschichte.
Ich denke, dass die Verwendung von POST vielleicht eine elegantere Lösung, aber wenn Sie verwenden müssen, BEKOMMEN dies ist eine Arbeit um.
Macht diese Arbeit für Sie?
Yeah, die Lösung ist ganz einfach (wenn auch nicht wirklich SEO-freundlich):
nur zur information..., warum brauchen Sie es?
$_POST
Daten VOR der Umleitung den browser?verwenden
parse_str
um den query-string als assoziatives array, das einfach zu ändern. Dann nutzen Siehttp_build_query
zu konvertieren, assoziative Arrays zu einem query-string.preg_replace("/\\?.*/s","",$s['REQUEST_URI'])
entfernt die ursprüngliche query-string so dass Sie es zu ersetzen.mod_rewrite kann nicht beeinflussen, was angezeigt wird in der browser-Adresse bar, es sei denn, der rewrite führt eine nach außen sichtbare Umleitung. Ansonsten ist es nur umschreiben Dinge, die in den webserver, und das ist für den Benutzer unsichtbar.
Wenn Sie möchten, um Auswirkungen auf die Benutzer in der Adressleiste, die Sie haben zu tun eine Umleitung über
header('Location: ...')
nachdem das Formular fertig ist die Verarbeitung.