webForumDet fria alternativet

Går det på något sätt att skicka med gamla POST-värden till ny sida?

PHP

11 svar · 439 visningar · startad av aasah

Medlem sedan mars 20034 471 inlägg
Frågan#1

Förklaring: Säg att jag har en question.php som bla innehåller en form med namn First. Vid submit skickas sidan till test.php . Om test-sidan kollar värdena, finns det någon möjlighet att "skicka vidare" värdena från First-formen till en tredje sida result.php som tar hand om dem "mera"?

Jag kan ju ladda result.php mha redirect, men då hänger väl inte värdena från POSTen med, eller? :q

Eller kan man på något sätt skicka formvärdena vidare mha hidden-värden men utan att användaren måste submitta på nytt..?

Började skriva detta under HTML och ångrade mig... Ber om ursäkt om det blev felplacerat nu...

Medlem sedan juni 20001 521 inlägg
#2

Det finns flera lösningar.

1. Spara värdena i sessionsvariabler.
2. Spara värdena i cookies
3. Skicka med värdena i query-strängen. Du skickar alltså inte vidare till result.php utan till result.php?varde1=ett&varde2=tva

Medlem sedan maj 2004693 inlägg
#3

är inte säker men du borde väll kunna göra så här.

du skickar värdena från question.php till test.php med post variabeln

sedan när allt behandlats i test.php så kan du kanske göra så här

header("Location: test.php?varde=$_POST[]");

Medlem sedan juni 20006 031 inlägg
#4

Att skicka värdena med query-strängen är inget jag rekomenderar för då kan ju någon mixtra med värdena utan att de kollas.
Det bästa är ju att skicka formuläret till result.php och där kolla uppgifterna innan de lagras i databasen, skrivs ut eller vad som ska hända med dem.

Alltså skippa test.php helt!

Medlem sedan mars 20034 471 inlägg
#5

Gislaved.net skrev:

... 3. Skicka med värdena i query-strängen. Du skickar alltså inte vidare till result.php utan till result.php?varde1=ett&varde2=tva

Då hämtas de med GET eller? :q

Hur lång kan en sådan sträng bli? Skulle tex vilja göra en frågesport där man ser exakt en fråga i taget... men där värdena utvärderas efteråt i stället för ett och ett. Och då måste man ju skicka med fler och fler värden...

Kanske bättre med variant 1 och 2? Är inte SESSIONsvariabeln sparad i en cookie förresten? Vari ligger skillnaden mellan 1 och 2?

Medlem sedan juni 20006 031 inlägg
#6

En session är en sorts cookie men det finns bara på servern, en vanlig cookie sparas ju på besökarens dator.

Medlem sedan juni 20001 521 inlägg
#7

Då hämtas de med GET eller?

De skickas med GET och kan hämtas via $_GET["variabel"]

Uppbyggnaden är dock lite konstig. Vad gör scriptet egentligen? Sparar den data i en databas så kan du ju helt enkelt plocka ut informationen ur databasen igen.

I alternativet med frågesporten är det ju en enkel match att lägga in ett fält som är dolt, <input type="hidden" name="svar1" value="a" /> Skippa i så fall test.php helt.

Vari ligger skillnaden mellan 1 och 2?

Enbart en (om någon) cookie sparas hos användaren om du använder dig av sessions. Den innehåller ett sessions-id. Användaren kan inte läsa av de enskilda värden som sparas i en session, det går däremot om du använder cookies.

Medlem sedan mars 2003429 inlägg
#8

Pedda skrev:

En session är en sorts cookie men det finns bara på servern, en vanlig cookie sparas ju på besökarens dator.

En session ligger väl hos användaren, men sparas inte som en cookie?

Medlem sedan aug. 20002 975 inlägg
#9

En session med sina variabler/värden sparas på servern.
På klienten läggs en cookie med id till sessionen.

Medlem sedan juni 20006 031 inlägg
#10

PHP manualen skrev:

A visitor accessing your web site is assigned an unique id, the so-called session id. This is either stored in a cookie on the user side or is propagated in the URL.

Det jag menade är att värdena från formuläret inte sparas i en cookie hos besökaren.

Medlem sedan apr. 20012 427 inlägg
#11

Oavsett vad som sparas var måste hursomhelst besökarens webbläsare acceptera s.k. "session cookies" för att det ska fungera.

Medlem sedan aug. 20002 975 inlägg
#12

Skarre skrev:

Oavsett vad som sparas var måste hursomhelst besökarens webbläsare acceptera s.k. "session cookies" för att det ska fungera.

I praktiken är det oftast så, men det är inte riktigt sant.

Är session.use_trans_sid satt på servern, och session.use_only_cookies inte är satt, så kommer PHP att lägga på sessionsid i "querystringen", och sessionen kommer därmed att föras vidare mellan sidorna trots att cookien inte är satt.

Detta innebär förståss att man måste ha session_start() på alla sidor, för går man på en sida utan session_start, eller på en annan webbplats, kommer man att tappa bort sitt sessionsid.

Dessutom måste man hårdkoda in sitt sessionsid för vissa headers och javascript, typ:

header("Location: sida.php=".SID);

//eller
echo "<script type='text/javascript'>
   document.location.href = 'sida.php?".SID."';
</script>";
274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)