Avatar billede bojohansen Nybegynder
24. marts 2001 - 21:46 Der 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.

Server er Win 2000 (AV går jeg ud fra)
Avatar billede mouzey Nybegynder
24. marts 2001 - 22:08 #1
Prøver at hjælpe dig om lidt
Avatar billede mouzey Nybegynder
24. marts 2001 - 22:28 #2
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...
Avatar billede bojohansen Nybegynder
24. marts 2001 - 22:35 #3
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.
Avatar billede tdaugaard Nybegynder
25. marts 2001 - 01:47 #4
hmm .. hvis du sætter

<% Response.Buffer = False %>
i toppen af dit ASP dokument, og laver det således:

<% Response.Buffer = False %>
[siden der skal vises som \'vent venligst\']
<%
\' asp koden der validerer hvad den nu skal validere ..
%>

Det virker helt fint ...
Avatar billede gnu Nybegynder
25. marts 2001 - 09:16 #5
- er det samme måde, som eksperten virker på, eller...?

Avatar billede bojohansen Nybegynder
25. marts 2001 - 13:30 #6
--> tdaugaard

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.

linie 130 -> Response.Redirect \"new_member_sign_up1.asp?Fejl=\" & Fejl & osv osv osv

Avatar billede bojohansen Nybegynder
25. marts 2001 - 13:31 #7
Og ja det er samme måde som Eksperten virker på :-)
Avatar billede bojohansen Nybegynder
25. marts 2001 - 13:33 #8
Her er selve validerings koden :

Dim SponsorId, YourId, FirstName, LastName, StreetName, StreetNumber, _
City, PostalCode, Country, State, Email, RetypeEmail, Gender, Age, BirthYear, Fejl, Fejl1
SponsorId = Request.Querystring(\"SponsorId\")
YourId = Request.Querystring(\"YourId\")
FirstName = Request.Querystring(\"FirstName\")
LastName = Request.QueryString(\"Lastname\")
StreetName = Request.Querystring(\"StreetName\")
StreetNumber = Request.Querystring(\"StreetNumber\")
City = Request.Querystring(\"City\")
PostalCode = Request.Querystring(\"PostalCode\")
Country = Request.Querystring(\"Country\")
State = Request.Querystring(\"State\")
Email = Request.Querystring(\"Email\")
RetypeEmail = Request.Querystring(\"RetypeEmail\")
Gender = Request.Querystring(\"Gender\")
Age = Request.Querystring(\"Age\")
BirthYear = Request.Querystring(\"BirthYear\")
Fejl = (\"0\")
Fejl1= (\"0\")



\'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
%>


Avatar billede bojohansen Nybegynder
25. marts 2001 - 17:39 #9
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>

<body bgcolor=\"#FFFFFF\" text=\"#000000\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">
<table width=\"100%\" border=\"0\" align=\"center\" height=\"100%\">
<tr>
<td>
<table width=\"r%\" border=\"0\" align=\"center\" height=\"r%\">
<tr>
<td><img src=\"billeder/animerede/chekin_info.gif\" width=\"349\" height=\"125\"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
<%
Response.Flush
%>

men så snart den er færdig med at validere så kommer denne fejl

Response object error \'ASP 0156 : 80004005\'

Header Error

/formtest/new_member/TMPjr9bjarfhb.asp, line 133

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
Avatar billede bojohansen Nybegynder
25. marts 2001 - 17:42 #10
Se eksemplet på ovenstående her http://bo-johansen.adsl.dk/formtest/new_member/check_member_info2.asp med en løkke lagt ind i koden så den bruger lidt tid på at validere
Avatar billede netsrac Praktikant
25. marts 2001 - 19:19 #11
Hvordan ser linie 133 ud ?
Avatar billede tdaugaard Nybegynder
25. marts 2001 - 19:34 #12
bojohansen:> så brug et lille JavaScript istedet for Response.Redirect.

%>
<script>location.href=\"din_side.asp\";</script>
<%

den kan du bruge nederst på siden eller der hvor du vil redirecte
Avatar billede bojohansen Nybegynder
25. marts 2001 - 20:10 #13
--> tdaugaard
Ingen java script da denne section SKAL være 100% ens for alle og udførlig for alle.

--> Netscrac

Linie 133 er response.redirect linien

Response.Redirect \"new_member_sign_up1.asp?Fejl=\" & Fejl & _ og alt det medfølgende selvfølgelig.

Har siddet og luret inde hos ms.com http://support.microsoft.com/support/kb/articles/Q159/4/02.asp
Måske fatter jeg det ikke helt rigtigt, for det funger heller ikke? hvordan ville du/i implementere det i mit ovenstående script??

og det er en win 2000 server hvor buffer burde være = True som default. Men det er jo lige meget når nu den bliver sat til True
 
Avatar billede netsrac Praktikant
25. marts 2001 - 20:12 #14
Kan du ikke lave en response.flush i linien lige inden ?
Avatar billede bojohansen Nybegynder
25. marts 2001 - 20:17 #15
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
Avatar billede netsrac Praktikant
25. marts 2001 - 20:18 #16
Tjo...Jeg ved ikke rigtig om det kan lade sig gøre det du gerne vil...
Avatar billede bojohansen Nybegynder
25. marts 2001 - 20:20 #17
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 :-))

hvad mener du med http://support.microsoft.com/support/kb/articles/Q159/4/02.asp
Avatar billede netsrac Praktikant
25. marts 2001 - 20:20 #18
Efter din response.flush i toppen burde man da kunne lave en ny response.buffer = true ?
Avatar billede bojohansen Nybegynder
25. marts 2001 - 20:25 #19
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?
Avatar billede netsrac Praktikant
25. marts 2001 - 20:26 #20
Det kommer jo af at man ikke kan tilføje headere efter at have udskrevet HTML og jeg tror altså ikke at det kan løses..
Avatar billede bojohansen Nybegynder
25. marts 2001 - 20:48 #21
Grrrrrrrrrr det skal lykkes :-) *LOL*

Om så jeg skal læse hele msdn online igennem så skal det sgu komme til at funge :-) 
Avatar billede bojohansen Nybegynder
25. marts 2001 - 21:20 #22
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?
Avatar billede bojohansen Nybegynder
25. marts 2001 - 21:28 #23
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?
Avatar billede netsrac Praktikant
25. marts 2001 - 21:37 #24
Du kan ikke lave en response.redirect med target, så skal du over i JavaScript, men det vil du jo ikke...
Avatar billede bojohansen Nybegynder
25. marts 2001 - 21:43 #25
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 :-((
Avatar billede netsrac Praktikant
25. marts 2001 - 21:46 #26
Det er jo kun browsere ældre end 4.0 der ikke kan klare enten IFRAME eller ILAYER...
Avatar billede bojohansen Nybegynder
25. marts 2001 - 21:58 #27
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

<HTML>
<HEAD>
</HEAD>
<BODY ONLOAD=\"location.href=\'check_member_info1.asp?<%=request.servervariables(\"QUERY_STRING\") %>\';\">
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" height=\"100%\">
  <tr>
    <td>
      <table width=\"r%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" height=\"r%\" align=\"center\">
        <tr>
          <td><img src=\"billeder/animerede/chekin_info.gif\" width=\"349\" height=\"125\"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<IFRAME SRC=\"check_member_info1.asp?<%=request.servervariables(\"QUERY_STRING\") %>\" WIDTH=\"0\" HEIGHT=\"0\"><ILAYER SRC=\"search.asp?<%=request.servervariables(\"QUERY_STRING\") %>\" WIDTH=\"0\" HEIGHT=\"0\"></ILAYER></IFRAME>
</BODY>
</HTML>


Avatar billede netsrac Praktikant
25. marts 2001 - 22:11 #28
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.
Avatar billede bojohansen Nybegynder
25. marts 2001 - 22:20 #29
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!!!
Avatar billede netsrac Praktikant
25. marts 2001 - 22:24 #30
Naah tvivler på at vi mister vores mulighed for at client scripte, der er trods alt mange ting som ikke kan lade sig gøre serverside.
Avatar billede bojohansen Nybegynder
25. marts 2001 - 22:35 #31
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 :-))
Avatar billede bojohansen Nybegynder
11. april 2001 - 13:46 #32
Jeg lukker lige her.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester