Ich muss den Benutzer von einer Seite mit example.com/node/add/dispo?arg1=1&arg2=2 auf denselben URL-Typ umleiten. Aber wenn ich einfach a mache drupal_goto(request_uri());
, leitet es meinen Benutzer zu example.com/node/add/dispo%25F%3C usw. weiter.
Ich habe str_replace ausprobiert, aber es hat nicht funktioniert.
Haben Sie eine Problemumgehung?
drupal_goto()
eine URL auf der Grundlage der angegebenen Parameter erstellen, die sie dannheader()
selbst aufrufen. Die Hauptunterschiede bestehen darin, dassdrupal_exit()
aufgerufen wird und das Skript sauber beendet wird. Wenn dies$_GET['destination']
festgelegt ist, wird der Pfad, den Sie an die Funktion übergeben, überschrieben. Im Allgemeinendrupal_goto()
sollte verwendet werden, aber es gibt Situationen, in denen gutes Alterheader()
angemessener ist. Kommt darauf an, was du tun musstDies ist die gleiche Antwort wie bei Clive. Es ist IMO korrekt, aber ich wollte nur die Antwort hinzufügen, die zu Ihrem Anwendungsfall 1: 1 passt.
Sie wollten
drupal_goto()
denselben Standort anrufen wie den aktuellen.current_path () gibt node / add / dispo zurück; drupal_get_query_parameters () gibt alle zurück
$_GET
Parameter zurück, außer$_GET['q']
dem internen Pfad node / add / dispo.Wenn Sie anrufen
drupal_goto()
, kann Drupal denselben URI neu erstellen, an den der Benutzer gesendet werden soll.quelle
Sie können auch verwenden
drupal_goto($GLOBALS['base_root'] . request_uri());
Beachten Sie, dass dies nicht
drupal_goto(request_uri());
der Fall ist, wenn der übergebene Parameter urlencodiert ist, als ob es sich um einen internen Drupal-Pfad handelt, der tatsächlich die Quelle Ihres Problems ist.quelle
Eigentlich habe ich damit gearbeitet
header("location: " . $base_path . request_uri());
quelle