[gelöst] Möchte Werte als URL Parameter übergeben - aber wie?

am 08.02.2011 - 22:05 Uhr in
Guten Abend,
bin gerade dabei auf einer Node-Seite mit PHP-Filter eine Datenbankabfrage zu erstellen.
Dabei soll automatisch ein Link erstellt werden, den der Besucher anklicken kann und damit automatisch auf eine weitere Seite (Node mit PHP) geleitet wird, welche die Parameter aus der URL weiterverarbeiten kann.
Aus PHP kannte ich bisher das Beispiel für die Seite 1:
<a href="testseite?param1=10¶m2=hallo¶m3=welt">Link</a>
Und auf Seite 2 konnte man dann z.B. mit:
print $_POST['param1']
Ich kann die Daten zwar mittels Formular (post) übergeben, aber das mit der URL klappt bei mir nicht.
Drupal zeigt entweder nicht an oder gibt eine Fehlermeldung aus, dass param1... nicht gesetzt wurde.
Auch mit der Funktion arg(x) kann ich hier nichts anfangen - gibt nur "node" bzw. die entsprechende "node-nr" aus.
Hat hier jemand einen Tipp für mich??
DANKE
Carsten
- Anmelden oder Registrieren um Kommentare zu schreiben
Link
am 09.02.2011 - 08:37 Uhr
Hallo.
Erstelle den Link mit Hilfe der Funktion [api:l:6]. Dann werden die Parameter korrekt aufgebaut. Das Problem ist nämlich, dass das "?" bereits im internen Pfad ("example.com?q=node/...") gesetzt ist und nicht doppelt verwendet werden kann.
Davon mal abgesehen sollte man PHP in einem Node tunlichst vermeiden. Das ist besser in einem Modul aufgehoben (zumal Du dann noch weitere Berechnungen durchführen willst).
Stefan
Funktion l()
am 10.02.2011 - 00:44 Uhr
Hallo Stefan,
danke für den Hinweis auf die l() Funktion.
Das klappt soweit auch und ich bekomme nun einen hoffentlich korrekten TAG:
echo l(
t('Mein Link Titel'),
'node/28',
array(
'query' => array(
'param1' => '10'
)
)
);
Daraus wird dann der Link: http://www.meinedomain.de/nodealias?param1=10
Wie kann ich aber auf der nächsten Seite - in diesem Fall "node/28" oder eben "nodealias" - auf den Wert von "param1" zugreifen???
-> Habe es soeben selbst gelöst - mit $_POST['param1'] hat es nicht geklappt - aber dafür mit $_GET['param1']!