19. februar 2014 - 11:55Der er
9 kommentarer og 1 løsning
Header (Loation: www. xxxx ) spørgsmål.
HEJ,
Skal lave et spørgeskema på nettet for en lille lukket gruppe. Skemaet består af 5 sider med ca. 5-10 spørgsmål hver.
Fra min hoved side (index.php) logger jeg ind SKEMA 1, hvor "bruger" (=en person i målgruppen) svarer på disse spørgsmål og trykker "GEM" (save). Denne GEM submitter alle XX spørgsmåls- data (skema 1) til en 'behandlingsside' (proc1.php), hvor jeg $_POST'er dem allesammen (til rette variable.) Dette fungerer perfekt.
Det er tanken at ville gemme disse svar i en fil (svar1.txt). Data fra spørgeskeam side 2 gemmes i svar2.txt. Data fra spørgeskeam side 3 gemmes i svar3.txt. -- (og så fremdeles til alle sider er håndteret. Når alle skemaer er håndteres vil jeg så flette disse filer sammen og lægge ind i den RESULTAT-basen.
Men (og her er problemet:) når jeg vil header'e videre til skema2 får jeg en HEADER (Location -..) fejl. PHP-fortolkeren (er det en Compiler ??) siger, at den ikke kan finde siden. (Jeg ved den er der, og har læst et eller andet sted at der ikke må være væsentlig aktivitet på PHP-siderne, når HEADER (loc--..) skal bruges.
Så fil-aktiviteten kommer altså i karambolage med denne HEADER..
Spørgsmålet er om jeg må oprette 5 databaser-tabeller (skema 1 .. skema 5) og så "proppe" data ind den vej (skemadata_1 til skematabel_5 -- skemadata_5 til skematabel_5) og så flette disse 5 tabeller sammen til en slut-base, som så kan præsenteres (for rette person(er)) ??
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Normalt bør det ikke være noget problem at have "aktivitet" før en header location, det eneste du ikke må, er at begynde at sende data til klienten før en header.
Har du prøvet at teste med en absolut sti (f.eks. http://www.google.com ) i stedet for din fil, for at se om headeren så virker?
Det er svært at hvad problemet er når vibikke kan se noget kode eller vi ikke får den reelle fejlmeddelelse fra PHP.
Udover det, så virker det lidt fjollet at du starter med at have data i flade filer for derefter at behandle dem og smide resultatet ind i MySQL. Hvor ikke bare køre det hele i MySQL?
At skrive til en fil og header() bør bestemt ikke give problemer. Måske hvis netop skrivningen til filen fejler, så kan det smide noget output til browseren og dermed "ødelægge" dit kald til header().
Men som repox siger. Vis os noget kode. Evt. bare for siden: proc1.php. Så kan vi nemmere vejlede.
Og som det også nævnes, smid da alle data i databasen med det samme. Alternativt "gem" dem i session, indtil side 5 og når der så trykkes afslut, så gemmes det i db.
Kommer lidt an på om du ønsker en bruger skal kunne vende tilbage efter (længere end session-levetid) og færdiggøre sit begyndte skema.
Der er mange løsninger. Men vi kan bedst hjælpe ved at få flere info.
"Udover det, så virker det lidt fjollet at du starter med at have data i flade filer for derefter at behandle dem og smide resultatet ind i MySQL. Hvor ikke bare køre det hele i MySQL? "
Jeg kan ikke være mere enig. Men når skemadata_1 (10 svar) er færdige har jeg brug for at gemme dem midlertidigt, og så "hoppe" til skema_2 (8 svar) (hent skemadata2 - gemme dem) , videre til skema_3 (7 svar), hente data ..... -> skema_5 hente data.
Lidt firkantet (for ikke at sige meget kvadratisk!) ENIG.., men så vidt jeg ved kan jeg ikke lægge data ind i samme tabel i "klumper" (dvs. lægge de første 10 data ind, lukke basen, hoppe til skema2 hente data, åbne tabellen, lægge data ind som en forlængelse af data1 og gentage det til skema_5. Derfor overvejede jeg metoden med 5 tabeller (reelt 6 med RESULTAT-tabellen).
Men korriger mig endelig, hvis der er smartere metoder.
Og til ALLE:
Der var et ECHO stattement (et debug statem.) jeg i min totale blindhed havde oveset. Lå lidt øverst. OPdagede den, så lyset (og en mulighed for at det var "fjelen") da jeg skulle kopiere kode ind (som svar). Fjernede den og kørte igen. Og Heureka og Viola (fransk for Voila). Nu kører det.
MEGET PINLIGT, burde have opdaget den. Havde stirret mig total blind på koden. ! Men ihvertfald, det kører nu så mindst 1 million tak for hjælpen.
Jeg læste Artiklen om SESSIONS og indså at mit løsningsforslag kunne forbedres betydeligt. Det gjorde jeg (denne gang med SESSIONS) og det gjorde at (re-)kodningen ikke alene blev nemmere, men også færre linier med kode. (Altså KISS-modellen).
Det slut-brugeren i mellemtiden havde gjort var at han havde sat en anden på sagen, så det jeg havde lavet blev accepteret, men han valgte den anden løsning, så min del blev et sted mellem 75 og 90 pct. færdigt. Og jeg har (som en stille protest) valgt ikke at færdiggøre det... Derfor citations-tegnene i første linie.
KR
Men den tekniske løsning blev gjort ved at anvende SESSIONS i alle skemaerne.
K
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.