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
11 svar · 439 visningar · startad av aasah
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...
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
ä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[]");
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!
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?
En session är en sorts cookie men det finns bara på servern, en vanlig cookie sparas ju på besökarens dator.
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.
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?
En session med sina variabler/värden sparas på servern.
På klienten läggs en cookie med id till sessionen.
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.
Oavsett vad som sparas var måste hursomhelst besökarens webbläsare acceptera s.k. "session cookies" för att det ska fungera.
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>";