Einem Link Infos wie bei Formularen in der Variante POST mitgeben

Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 22.11.2007 14:18:52 von Frank Martinus

Ich moechte einem Link 'unsichtbar' Informatioen mitgeben.
Der Link verweist auf eine andere Seite meiner WebSite, auf
der soll ggf. (beim Abruf eines Downloads) der originale
(externe) Referer in einem Log aufgezeichnet werden. Den
Referrer koennte ich natuerlich per '?ref=...' (o.ae.) an
den Link anhaengen (was der GET-Variante in Formularen
entspricht) oder auch mit Hilfe einer temporaeren Datei
weitergeben, das beides will ich aber wenn moeglich
vermeiden. Bei der temporären Datei muesste ich naemlich
zum Beispiel eine multiuserfaehige Mimik einbauen. SIDs
will ich vermeiden.

Gibt es in php eine Möglichkeit einen Link sozusagen "per
Hand" nachzubilden, so dass er sich wie ein POST eines
Formulars verhaelt? Kann man also alle Header-Informationen
einzeln manuell uebergeben?

Gruesse

Frank

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 22.11.2007 14:27:09 von Andre Gawron

Frank Martinus schrieb:
> Ich moechte einem Link 'unsichtbar' Informatioen mitgeben.
> Der Link verweist auf eine andere Seite meiner WebSite, auf
> der soll ggf. (beim Abruf eines Downloads) der originale
> (externe) Referer in einem Log aufgezeichnet werden. Den
> Referrer koennte ich natuerlich per '?ref=...' (o.ae.) an
> den Link anhaengen (was der GET-Variante in Formularen
> entspricht) oder auch mit Hilfe einer temporaeren Datei
> weitergeben, das beides will ich aber wenn moeglich
> vermeiden. Bei der tempor�ren Datei muesste ich naemlich
> zum Beispiel eine multiuserfaehige Mimik einbauen. SIDs
> will ich vermeiden.

Kann es sein, dass Du $_SERVER['HTTP_REFERER'] suchst?

Zitat von php.net:
"Die Adresse der Seite (falls es eine gibt), die den Browser auf die
aktuelle Seite verwies. Dieser Header wird vom Browser gesetzt, aber
nicht von allen. Einige Browser bieten die Möglichkeit, den HTTP_REFERER
zu modifizieren. Kurz, auf diesen Header kann man sich nicht verlassen."

http://de2.php.net/manual/de/reserved.variables.php

Gruß

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 22.11.2007 14:42:07 von Peter Schmidt

Frank Martinus schrieb:
> Gibt es in php eine Möglichkeit einen Link sozusagen "per
> Hand" nachzubilden, so dass er sich wie ein POST eines
> Formulars verhaelt? Kann man also alle Header-Informationen
> einzeln manuell uebergeben?

Das wird wohl in arges Gebastel mit einem umschließenden method="post" ...> und Javascript zum "submitten" via Link ausarten. Ob
man das möchte sei jedem selbst überlassen - ich würds aber nicht wollen.

Gruß
Pta

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 22.11.2007 14:45:17 von dafox

Frank Martinus schrieb:
> Ich moechte einem Link 'unsichtbar' Informatioen mitgeben.
> Der Link verweist auf eine andere Seite meiner WebSite, auf
> der soll ggf. (beim Abruf eines Downloads) der originale
> (externe) Referer in einem Log aufgezeichnet werden. Den
> Referrer koennte ich natuerlich per '?ref=...' (o.ae.) an
> den Link anhaengen (was der GET-Variante in Formularen
> entspricht) oder auch mit Hilfe einer temporaeren Datei
> weitergeben, das beides will ich aber wenn moeglich
> vermeiden. Bei der temporären Datei muesste ich naemlich
> zum Beispiel eine multiuserfaehige Mimik einbauen. SIDs
> will ich vermeiden.

Ich würde einfach Sessions verwenden und gut ist. Dann musst du dich
damit gar nicht rumschlagen. Auf Seite A packst du den Referrer, oder
welche Informationen auch immer, in die Session und auf der Download
Page holst du die Werte wieder ab. Im besten Fall siehst du die SID dann
auch gar nicht, weil sowieso Cookies verwendet werden. Aber warum
einfach, wenn es auch kompliziert geht...

> Gibt es in php eine Möglichkeit einen Link sozusagen "per
> Hand" nachzubilden, so dass er sich wie ein POST eines
> Formulars verhaelt?

PHP hat nix damit am Hut, was der UA mit dem Link anstellt. Und ein
normaler UA wird einen GET-Request senden, weil das so definiert ist.
Beeinflussen kannst du das Verhalten serverseitig nicht. Wie auch?

Du kannst natürlich JavaScript verwenden, um beim Klick auf einen Link
ein (verstecktes) Formular abzusenden. Dann hast du allerdings ein
Usability-Problem, denn Benutzer ohne JS senden wieder einen GET-Request
ohne die Daten oder können mit dem Link nichts anfangen.









> Kann man also alle Header-Informationen einzeln manuell uebergeben?

Was für Header-Informationen? Was der Client sendet kannst du mit PHP
nicht beeinflussen. Du kannst natürlich alle Server-Header überschreiben
und auch beliebige hinzufügen, aber das hilft dir bei deinem Vorhaben nicht.

--
"Faulheit ist die Wurzel allen Fortschritts!"
(Inhalt eines Knallbonbons, 2002)

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 22.11.2007 14:58:38 von Frank Martinus

"Thomas Hamacher" schrieb...

[einiges zu Sessions, JS und versteckten Formularen,
Clients Servern Headern im Zusammenhang mit Links... ]

Dass du diese umfassenden und verstaendliichen Informationen
zu meiner Frage einfach so aus dem Aermel schuettelst:

Ich bin platt.

Danke.

Frank

im Newsbeitrag news:fi40u1$gah$1@newsreader2.netcologne.de...
> Frank Martinus schrieb:
> > Ich moechte einem Link 'unsichtbar' Informatioen mitgeben.
> > Der Link verweist auf eine andere Seite meiner WebSite, auf
> > der soll ggf. (beim Abruf eines Downloads) der originale
> > (externe) Referer in einem Log aufgezeichnet werden. Den
> > Referrer koennte ich natuerlich per '?ref=...' (o.ae.) an
> > den Link anhaengen (was der GET-Variante in Formularen
> > entspricht) oder auch mit Hilfe einer temporaeren Datei
> > weitergeben, das beides will ich aber wenn moeglich
> > vermeiden. Bei der temporären Datei muesste ich naemlich
> > zum Beispiel eine multiuserfaehige Mimik einbauen. SIDs
> > will ich vermeiden.
>
> Ich würde einfach Sessions verwenden und gut ist. Dann musst du dich
> damit gar nicht rumschlagen. Auf Seite A packst du den Referrer, oder
> welche Informationen auch immer, in die Session und auf der Download
> Page holst du die Werte wieder ab. Im besten Fall siehst du die SID dann
> auch gar nicht, weil sowieso Cookies verwendet werden. Aber warum
> einfach, wenn es auch kompliziert geht...
>
> > Gibt es in php eine Möglichkeit einen Link sozusagen "per
> > Hand" nachzubilden, so dass er sich wie ein POST eines
> > Formulars verhaelt?
>
> PHP hat nix damit am Hut, was der UA mit dem Link anstellt. Und ein
> normaler UA wird einen GET-Request senden, weil das so definiert ist.
> Beeinflussen kannst du das Verhalten serverseitig nicht. Wie auch?
>
> Du kannst natürlich JavaScript verwenden, um beim Klick auf einen Link
> ein (verstecktes) Formular abzusenden. Dann hast du allerdings ein
> Usability-Problem, denn Benutzer ohne JS senden wieder einen GET-Request
> ohne die Daten oder können mit dem Link nichts anfangen.
>
>
>
>


>
>

>
>
>
> > Kann man also alle Header-Informationen einzeln manuell uebergeben?
>
> Was für Header-Informationen? Was der Client sendet kannst du mit PHP
> nicht beeinflussen. Du kannst natürlich alle Server-Header überschreiben
> und auch beliebige hinzufügen, aber das hilft dir bei deinem Vorhaben
nicht.
>
> --
> "Faulheit ist die Wurzel allen Fortschritts!"
> (Inhalt eines Knallbonbons, 2002)

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 22.11.2007 18:27:57 von Frank Martinus

"Peter Schmidt" schrieb...

> Das wird wohl in arges Gebastel mit einem umschließenden
>

und Javascript zum "submitten"
> via Link ausarten. Ob man das möchte sei jedem selbst
> überlassen - ich würds aber nicht wollen.

Bitte noch einmal genauer: Was wuerdest du nicht wollen?

Das Gebastel herzustellen (aber das kann dir ja egal sein,
es ist ja meine Arbeit...) oder als Benutzer der Seite das
Gebastel zu benutzen (weil es ggf nicht funktioniert, siehe
Posting von Thomas Hamacher
)?

Anders gefragt: Ist so etwas zu basteln schlechter Stil?

Gruesse

Frank

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 22.11.2007 19:19:07 von Christoph Herrmann

Frank Martinus schrieb:
> Bitte noch einmal genauer: Was wuerdest du nicht wollen?
>
> Das Gebastel herzustellen (aber das kann dir ja egal sein,
> es ist ja meine Arbeit...) oder als Benutzer der Seite das
> Gebastel zu benutzen (weil es ggf nicht funktioniert, siehe
> Posting von Thomas Hamacher
> )?

Als Entwickler ersteres, als Benutzer letzteres. Spätestens wenn ich
einen Link anklick und zurück will per Browser bekomme ich ja jedes mal
eine Meldung ob ich die Post Daten nochmal senden will. So eine Seite
bekommt bei mir ein Klick auf das X zum schließen. :)

Und dass das ganze ohne JavaScript nicht funktioniert sollte für dich
schon heißen nicht machen, siehe unten.

> Anders gefragt: Ist so etwas zu basteln schlechter Stil?

Barrierefreiheit ist doch was schönes, deine Seite soll ohne JavaScript
benutzbar sein. Deine wäre dann nicht mal mehr Navigierbar, also ganz
schlecht. Auch wenn die meisten es nicht beachten oder wissen was
Barrierefreiheit ist (in etwa kommt es dem Wissen nach was HTML Konform
ist).

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 22.11.2007 21:45:19 von dafox

Christoph Herrmann schrieb:
> Frank Martinus schrieb:
>> Bitte noch einmal genauer: Was wuerdest du nicht wollen?

>> Das Gebastel herzustellen (aber das kann dir ja egal sein,
>> es ist ja meine Arbeit...) oder als Benutzer der Seite das
>> Gebastel zu benutzen (weil es ggf nicht funktioniert, siehe
>> Posting von Thomas Hamacher
>> )?

> Als Entwickler ersteres, als Benutzer letzteres. Spätestens wenn ich
> einen Link anklick und zurück will per Browser bekomme ich ja jedes mal
> eine Meldung ob ich die Post Daten nochmal senden will. So eine Seite
> bekommt bei mir ein Klick auf das X zum schließen. :)

Tja, wenn du ein Formular abschickst bekommst du diese Meldung auch. Ich
finde es auch unschön, wenn einfach jeder Link mit JS verbogen wurde,
aber es kann unter Umständen durchaus sinnvoll sein anstelle eines
Form-Buttons einen Link zu verwenden. Kommt halt drauf an.

> Und dass das ganze ohne JavaScript nicht funktioniert sollte für dich
> schon heißen nicht machen, siehe unten.

Wenn man unbedingt den POST-Request braucht, dann könnte man mein
Beispiel ja auch noch umbauen, sodaß es bei Benutzern ohne aktiviertes
JS halt ein Button angezeigt wird.







>> Anders gefragt: Ist so etwas zu basteln schlechter Stil?
>
> Barrierefreiheit ist doch was schönes, deine Seite soll ohne JavaScript
> benutzbar sein. Deine wäre dann nicht mal mehr Navigierbar, also ganz
> schlecht. Auch wenn die meisten es nicht beachten oder wissen was
> Barrierefreiheit ist (in etwa kommt es dem Wissen nach was HTML Konform
> ist).

Mein Beispiel ist barrierefrei. Mit "nicht funktionieren" meine ich in
diesem Fall eher, dass Frank seine Daten dann nicht bekommt. Die Daten,
die mit dem Link mitgesendet werden sollen (in dem Fall der Referrer)
sind sowieso unsicher, da der UA den Referrer ja schon auf der Vorseite
ggf. gar nicht gesendet hat. Also kann man wohl auch verkraften, wenn er
bei Benutzern ohne JS nicht mitgesendet wird.



Benutzer ohne JS rufen ziel.php auf ohne die Daten mitzusenden. Benutzer
mit aktiviertem JS senden den POST-Request. Ob das bereits ausreichend
ist muss allerdings der OP entscheiden.

--
"Faulheit ist die Wurzel allen Fortschritts!"
(Inhalt eines Knallbonbons, 2002)

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 23.11.2007 13:35:19 von dev-null-use-reply-adress

Frank Martinus schrieb:

[...]
> Gibt es in php eine Möglichkeit einen Link sozusagen "per
> Hand" nachzubilden, so dass er sich wie ein POST eines
> Formulars verhaelt? Kann man also alle Header-Informationen
> einzeln manuell uebergeben?

Also, die wichtigsten Infos hast Du ja schon bekommen.
Meine Frage wäre jetzt, was genau Deine Beweggründe sind.
Möchtest Du einfach nur, daß es nicht wie ein Formular
mit einem Submitbutton aussieht?
Ist denn trotzdem ein (verstecktes) Formular mit einem
echten POST-Request okay?

Dann trickse doch einfach ein wenig mit CSS:

button {
border: 0;
margin: 0;
padding: 0;
display: inline;
text-decoration: underline;
cursor: pointer;
background: transparent;
font-size: 100%;
}



Freilebende
gibt es nicht. Man kauft sie in Packungen an der Kinokasse.



Gruß
JPM

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 24.11.2007 20:37:16 von Frank Martinus

"Jens Peter Moeller" schrieb...
> Möchtest Du einfach nur, daß es nicht wie ein
> Formular mit einem Submitbutton aussieht?

Ja.


> Dann trickse doch einfach ein wenig mit CSS:
>
> button {
> border: 0;
> margin: 0;
> padding: 0;
> display: inline;
> text-decoration: underline;
> cursor: pointer;
> background: transparent;
> font-size: 100%;
> }
>
>


>
> Freilebende
> gibt es nicht. Man kauft sie in Packungen an der Kinokasse.
>


Interessante Idee. Danke dafuer.

Gruesse

Frank

Re: Einem Link Infos wie bei Formularen in der Variante POST mitgeben

am 25.11.2007 13:00:22 von Martin Lemke

Frank Martinus schrieb:

> Kann man also alle Header-Informationen einzeln manuell uebergeben?

Ich vermutte, Du suchst die Möglichkeit eines Post-Request. Ja, das ist
möglich. Wie so oft in php, gibt es dazu viele verschiedene Möglichkeiten.

Dazu, dir solche aus der Literatur rauszusuchen, bin ich zu faul. Das
kannst Du selber machen.

Martin