/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Sende POST-data videre?
Fra : David Trasbo


Dato : 24-10-07 11:44

Er der en måde hvorpå, jeg kan viderestille til en anden side med
header("Location: ...") og samtidig bevare de POST-data, der fandtes i den
side jeg viderestiller fra?

Jeg håber i forstår mit spørgsmål. På forhånd tak.

--
David Trasbo.



 
 
Dan Storm (24-10-2007)
Kommentar
Fra : Dan Storm


Dato : 24-10-07 12:20

David Trasbo skrev:
> Er der en måde hvorpå, jeg kan viderestille til en anden side med
> header("Location: ...") og samtidig bevare de POST-data, der fandtes i den
> side jeg viderestiller fra?

Nej, det er der ikke. Men du kan snyde lidt, men det får brugeren at
vide når du gør.
Eksempel:
header("HTTP/1.0 307 Temporary Redirect");
header("Location: side_der_modtager_posts.php");

Brugeren vil dog få at vide at siden viderestiller til en anden og
bliver spurgt om han vil videresende oplysningerne til den side også.

Location er en GET implicit ting så derfor er det ikke muligt.

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

David Trasbo (24-10-2007)
Kommentar
Fra : David Trasbo


Dato : 24-10-07 17:07

Dan Storm skrev:

>> Er der en måde hvorpå, jeg kan viderestille til en anden side med
>> header("Location: ...") og samtidig bevare de POST-data, der fandtes i
>> den side jeg viderestiller fra?

> Brugeren vil dog få at vide at siden viderestiller til en anden og bliver
> spurgt om han vil videresende oplysningerne til den side også.

Det skal foregå gnidningsløst, altså uden dialoger og spørgsmål til
brugeren. Så den mulighed bliver jeg nødt til at se bort fra, men ellers tak
for indsparket.

> Location er en GET implicit ting så derfor er det ikke muligt.

Ærgeligt.

--
David Trasbo.



Jan Nielsen (24-10-2007)
Kommentar
Fra : Jan Nielsen


Dato : 24-10-07 18:59

David Trasbo skrev:
> Det skal foregå gnidningsløst, altså uden dialoger og spørgsmål til
> brugeren. Så den mulighed bliver jeg nødt til at se bort fra, men ellers tak
> for indsparket.
Du kan lave en ny forbindelse med PHP som sender post data til den anden
side og retunere hvad den svarer til brugeren.

Forskellen vil primært være den anden server ikke kan se klientens
browser headers og cookies.


Kim Ludvigsen (24-10-2007)
Kommentar
Fra : Kim Ludvigsen


Dato : 24-10-07 13:36

Den 24-10-07 12.43 skrev David Trasbo følgende:
> Er der en måde hvorpå, jeg kan viderestille til en anden side med
> header("Location: ...") og samtidig bevare de POST-data, der fandtes i den
> side jeg viderestiller fra?

Du kan bruge en session:
SESSION_START();
$_SESSION['navn']=$_REQUEST['navn'];

I den næste side bruger du:
SESSION_START();
$navn=$_SESSION['navn'];


--
Mvh. Kim Ludvigsen
Polimiken - en levende netavis, der tør, hvor selv Ekstra Bladet tier.
http://polimiken.dk

David Trasbo (24-10-2007)
Kommentar
Fra : David Trasbo


Dato : 24-10-07 17:10

Kim Ludvigsen skrev

>> Er der en måde hvorpå, jeg kan viderestille til en anden side med
>> header("Location: ...") og samtidig bevare de POST-data, der fandtes i
>> den side jeg viderestiller fra?

> Du kan bruge en session:
> SESSION_START();
> $_SESSION['navn']=$_REQUEST['navn'];
>
> I den næste side bruger du:
> SESSION_START();
> $navn=$_SESSION['navn'];

Det er også en mulighed, som jeg har overvejet. Men kan man da ikke bruge
følgende?

$_SESSION["..."] = $_POST["..."];

Det skal helst ikke være muligt for brugeren at ændre på POST-data ved hjælp
af url'en.

--
David Trasbo.



Leonard (24-10-2007)
Kommentar
Fra : Leonard


Dato : 24-10-07 17:18

On Wed, 24 Oct 2007 18:10:11 +0200, David Trasbo wrote:

> Det er også en mulighed, som jeg har overvejet. Men kan man da ikke bruge
> følgende?
>
> $_SESSION["..."] = $_POST["..."];

Jo, $_REQUEST er for de dovne, der ikke gider spekulere på om det er
$_POST eller $_GET ...

--
Leonard
Mine biler: http://vw.leonard.dk/

David Trasbo (24-10-2007)
Kommentar
Fra : David Trasbo


Dato : 24-10-07 17:23

Leonard skrev:

>> Det er også en mulighed, som jeg har overvejet. Men kan man da ikke bruge
>> følgende?

>> $_SESSION["..."] = $_POST["..."];

> Jo, $_REQUEST er for de dovne, der ikke gider spekulere på om det er
> $_POST eller $_GET ...

Ok. Men jeg plejer altså at bruge $_POST - også af den årsag, at jeg synes
querystrings er grimme...

("Nice URLs"...)

--
David Trasbo.



David Trasbo (24-10-2007)
Kommentar
Fra : David Trasbo


Dato : 24-10-07 17:38

David Trasbo skrev:

>>> Det er også en mulighed, som jeg har overvejet. Men kan man da ikke
>>> bruge
>>> følgende?

>>> $_SESSION["..."] = $_POST["..."];

>> Jo, $_REQUEST er for de dovne, der ikke gider spekulere på om det er
>> $_POST eller $_GET ...

> Ok. Men jeg plejer altså at bruge $_POST - også af den årsag, at jeg synes
> querystrings er grimme...
>
> ("Nice URLs"...)

Okay, jeg fandt en elegant løsning:

$_SESSION["post"] = $_POST;
Header("Location: ...");

Og i filen der viderestilles til:

$_POST = $_SESSION["post"];

På den måde kan man bruge POST-dataerne, som om de var sendt direkte fra en
formular.

--
David Trasbo.



Martin (24-10-2007)
Kommentar
Fra : Martin


Dato : 24-10-07 18:20

David Trasbo wrote:
> David Trasbo skrev:
>
>>>> Det er også en mulighed, som jeg har overvejet. Men kan man da ikke
>>>> bruge
>>>> følgende?
>
>>>> $_SESSION["..."] = $_POST["..."];
>
>>> Jo, $_REQUEST er for de dovne, der ikke gider spekulere på om det er
>>> $_POST eller $_GET ...
>
>> Ok. Men jeg plejer altså at bruge $_POST - også af den årsag, at jeg synes
>> querystrings er grimme...
>>
>> ("Nice URLs"...)
>
> Okay, jeg fandt en elegant løsning:
>
> $_SESSION["post"] = $_POST;
> Header("Location: ...");
>
> Og i filen der viderestilles til:
>
> $_POST = $_SESSION["post"];

HUSK lige at lave en
unset($_SESSION['post']);
bagefter - så du er helt sikker på at brugeren ikke har nogle
oplysninger med fra en tidligere formular :)

David Trasbo (24-10-2007)
Kommentar
Fra : David Trasbo


Dato : 24-10-07 20:05


Martin skrev:

>> Okay, jeg fandt en elegant løsning:
>>
>> $_SESSION["post"] = $_POST;
>> Header("Location: ...");
>>
>> Og i filen der viderestilles til:
>>
>> $_POST = $_SESSION["post"];
>
> HUSK lige at lave en
> unset($_SESSION['post']);
> bagefter - så du er helt sikker på at brugeren ikke har nogle oplysninger
> med fra en tidligere formular :)

Ja. men jeg fandt ellers frem til at det var bedre at bevare dataerne i
session istedet for at flytte dem over i $_POST, for den side, der blev
viderestillet til, indeholder endnu en formular, som henviser til sig selv.

Derfor har jeg valgt at holde dataerne fra de to sider adskilt.

--
David Trasbo.



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste