24. marts 2001 - 21:46Der er
29 kommentarer og 3 løsninger
Vise billede mens der søges og valideres på serveren!
Ok, nu har jeg surfet og søgt som en sindsyg....men sikkert de forkerte steder :-(
Jeg har en Server side Form validator som redirreger til form siden hvis der er fejl i formen eller visse data allerede findes i en Database. Mens denne form bliver valideret vil jeg vise et lille animeret billede \"Vi undersøger dine informationer.......Vent venligst\". Det hele skal generes fra SERVER SIDE og ikke noget som helst med noget KLIENT JAVA!! Der må godt bruges Server Java men det skal bare være sådant at det er fuldstændigt ligegyldigt hvilken browser der bruges...så alle får det samme billede på skærmen.
Form.asp | Validere.asp | Er infor ok så bekræft.asp, hvis ikke så form.asp
Det jeg så vil er :
Form.asp | Visebillede.asp mens validere.asp køre | Validere.asp | Er infor ok så bekræft.asp, hvis ikke så form.asp
Jeg bruger nu et Iframe og Ilayer til at loade billedet, men jeg vil have et 100% SERVER SIDE script til at smide det op.
Det du skal gøre er at load, en html side, den hvor der står din data hentes... og så skal du sætte en meta tags, op til load, en anden side, efter 1 sekund... Sådan kan det laves.. Men det er jo blot html, og har ikke noget med server side...
Yep men det er ikke helt hvad jeg søger. Lige så snart man så begynder at loade validere.asp så stopper animationen..........og den skulle helst fortsætte indtil valideringen er færdig og der redirregers.
Ja jeg har selv siddet og rodet lidt med noget <%Response.Buffer = False og True Response.Write \"<HTML>\" Response.Write \"<Head>\" Re................. Response.Flush%>
<%Validering her.%>
Men fordi der bruges Response.Redirect når validering er færdig så kommer der en
Response object error \'ASP 0156 : 80004005\'
Header Error
/formtest/new_member/check_member_info.asp, line 130
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
\'Her tjekkes om YourId er udfyldt If YourId = (\"\") Then FejlYourId = \"T\" Fejl = Fejl + 1 End If
\'Her tjekkes om YourId allerede findes i databasen Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\\inetpub\\wwwroot\\databaser\\member.mdb\" Set RS = conn.Execute (\"SELECT MedlemsIdNr From MedlemsInfo WHERE MedlemsIdNr =\'\" & YourId & \"\'\")
if not rs.eof Then FejlYourIdInDb = \"T\" Fejl1 = Fejl1 + 1 End If
\'Her tjekkes FirstName If FirstName = (\"\") Then FejlFirstname =\"T\" Fejl = Fejl + 1 End If
\'Her tjekkes LastName If LastName= (\"\") Then FejlLastName =\"T\" Fejl = Fejl + 1 End If
\'Her tjekkes StreetName If StreetName= (\"\") Then FejlStreetName =\"T\" Fejl = Fejl + 1 End If
\'Her tjekkes StreetNumber If StreetNumber= (\"\") Then FejlStreetNumber =\"T\" Fejl = Fejl + 1 End If
\'Her tjekkes City If City= (\"\") Then FejlCity =\"T\" Fejl = Fejl + 1 End If
\'Her tjekkes PostalCode If PostalCode= (\"\") Then FejlPostalCode =\"T\" Fejl = Fejl + 1 End If
\'Her tjekkes Country If Country= (\"\") Then FejlCountry =\"T\" Fejl = Fejl + 1 End If
\'Her tjekkes Email If Email= (\"\") Then FejlEmail =\"T\" Fejl = Fejl + 1 End If
\'Her tjekkes RetypeEmail If RetypeEmail= (\"\") Then FejlRetypeEmail =\"T\" Fejl = Fejl + 1 End If
\'Her tjekkes om Email og RetypeEmail er ens If Email <> RetypeEmail Then FejlEmailIkkeIdentisk =\"T\" Fejl = Fejl + 1 End If
\'Vi er nu færdige med at tjekke formen, og tjekker nu om Fejl er lig med 0 If Fejl > 0 Or Fejl1 >0 then \'Hvis fejl er større end 0 så sender vi dem tilbage til formen Response.Redirect \"new_member_sign_up1.asp?Fejl=\" & Fejl & _ \"&FejlYourId=\" & FejlYourId & _ \"&Fejl1=\" & Fejl1 & _ \"&FejlYourIdInDb=\" & FejlYourIdInDb & _ \"&FejlFirstName=\"& FejlFirstName & _ \"&FejlLastName=\" & FejlLastName & _ \"&FejlStreetName=\" & FejlStreetName & _ \"&FejlStreetNumber=\" & FejlStreetNumber & _ \"&FejlCity=\" & FejlCity & _ \"&FejlPostalCode=\" & FejlPostalCode & _ \"&FejlCountry=\" & FejlCountry & _ \"&FejlEmail=\" & FejlEmail & _ \"&FejlRetypeEmail=\" & FejlRetypeEmail & _ \"&FejlEmailIkkeIdentisk=\" & FejlEmailIkkeIdentisk & _ \"&SponsorId=\" & SponsorId & _ \"&YourId=\" & YourId & _ \"&FirstName=\" & FirstName & _ \"&LastName=\" & LastName & _ \"&StreetName=\" & StreetName & _ \"&StreetNumber=\" & StreetNumber & _ \"&City=\" & City & _ \"&PostalCode=\" & PostalCode & _ \"&Country=\" & Country & _ \"&State=\" & State & _ \"&Email=\" & Email & _ \"&RetypeEmail=\" & RetypeEmail & _ \"&Gender=\" & Gender & _ \"&Age=\" & Age & _ \"&Birthyear=\" & Birthyear
else
\'Hvis den kommer hertil så er der ingen fejl i formen, og vi sender videre til Database siden response.redirect \"confirm_your_info.asp?SponsorId=\" & SponsorId & _ \"&YourId=\" & YourId & _ \"&FirstName=\" & FirstName & _ \"&LastName=\" & LastName & _ \"&StreetName=\" & StreetName & _ \"&StreetNumber=\" & StreetNumber & _ \"&City=\" & City & _ \"&PostalCode=\" & PostalCode & _ \"&Country=\" & Country & _ \"&State=\" & State & _ \"&Email=\" & Email & _ \"&RetypeEmail=\" & RetypeEmail & _ \"&Gender=\" & Gender & _ \"&Age=\" & Age & _ \"&Birthyear=\" & Birthyear end if %>
Jeg har lagt dette i toppen af siden, og billedet kommer frem øjeblikkeligt ved loadning af siden. <% Response.Buffer = True %> <html> <head> <title>Untitled Document</title> </head>
Og så slette den foroven efter billede HTML\'en?? vil den så ikke ummiddelbart lave hele valideringen først og så i samme split sekundt vise billedet og redirecte
jo den valider og prøver så at redirecte i samme sekundt, men kommer stadigt med samme fejl............pyyyyyyyyyyyyyyy det må da kunne lade sig gøre :-))
Den extra buffer hjalp heller ikke........man skal på en eller anden måde resette Head til 0, den prøve jo vel egentligt at loade den response.redirect side på den samme side som der bliver valideret på????? derfor går der ged i headderen, eller er jeg helt forkert på den her?
Nå ok da..........nu sidder jeg og tænker på at man jo så bare lægger en kopi af form.asp ind istedet for response.redirect
altså
If Fejl > 0 Or Fejl1 >0 then \'Hvis fejl er større end 0 så sender vi dem tilbage til formen Response.Write Og så hele form.asp igen med de forskellige fejl defineret efter ovenstående Else Response.Write Hele confirm.asp siden
Men så vil det jo blive skrevet nedenunder billedet :-( er der en mulig workarround om dette?? noget reload hvis sån og sån?
Eller kan det på nogen måde lade sig gøre at sætte target=\"_self\" ind i en response.redirect ??? så kunne man jo eventuelt snyde browseren til at loade det som en helt ny side?
Helst ikke, men hvis det er noget 1.0 eller 1.1 java så er det jo næsten alle der kan se det..............det bliver jo nok snart løsningen.........eller også bare ski fanden i det og beholde det Iframe Ilayer og smide alle som ikke understøtter det uden om det animated .gif og så derved smide det hvide håndklæde i ringen :-((
Ja det er jo også det................................................................................................................hmmmmmmm...............................................................................ok, hvordan skruer man så sådant et lille redirect script sammen? Ja jeg ved godt jeg er en sølle en, men jeg er kun 4-5 måneder inde i .asp og det er det første programmering jeg nogensinde har lavet....Point til ham der viser eksempel 400 og 100 til den anden for den gode tålmodighed :-))
If Iframe/Ilayer understøttes Then
Form.asp | load.asp mens Validere.asp køre i baggrund | Er infor ok så bekræft.asp, hvis ikke så form.asp
Else
Form.asp | Validere.asp | Er infor ok så bekræft.asp, hvis ikke så form.asp
Kan det laves så man ikke bare tjekker browser version men rent faktigst tjekker om browseren understøtter Iframe/Ilayer af version???? hvis nu der kommer en ny browser hvor Iframe/Ilayer pludseligt er blevet modificeret og ikke længere kan bruge
Mindre problem, jeg ved ikke lige hvordan man skulle kunne kontrollere for om IFRAME / ILAYER virker for det virker kun i ældre browsere end 4.0 og de understøtter vist ikke engang JavaScript, men helt ærligt, hvem bruger browsere ældre end 4.0 ? Ingen.
Nej og hvis de gør må de finde sig i at det ikke ser så godt ud :-) Jeg er bare meget varm på server side scripting da jeg slet ikke er i tvivl om at alt blive server side om ganske få år. Alle kommer til at sidde på en eller anden fast forbindelse og super servere med 50 stk 15GHZ processore og en 50 GB ram bliver til at komme til for de samme penge som almindelig PC\'er koster i dag. Se nu bare alle de firmaer der bruger intranet med en masse scripting i dag..........snart er den gamle mainframe tilbage!!!
Det kommer, folk kommer til at surfe igennem deres TV eller lignende. IIS 5.0 har også tilladelse til nu at udføre asp kode fra en anden side, altså en SSI bare executable med server.execute første skridt til mere server performance og Server.Transfer for eksempel at mindske trafik..........jeg er helt over bevist om at der kommer meget mere server script på banen.
BTW min server understøtter PHP så måske kunne man lave siden i PHP istedet for.....mener at have set den funktion jeg søger lavet i php et eller andet sted..............nej nu må jeg hellere komme videre med mail siden som skal genere tilfældige password\'s og slette folk hvis de ikke svare på email efter xx antal timer :-))
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.