FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Jag har ett forum soom har fått ovälkomna besökare. Jag har gjort en bild med ett lösenord som är kopplat till en databas. När formulärrutorna är kontrollerade att de är rätt ifyllda ska sidan new.asp laddas och där fylls uppgifterna i från formuläret. Då uppstår problemet. jag får felmeddelande om att alla fält ska vara ifyllda. Förstår inte var felet är, säkert alldeles för enkelt.
Koden för formuläret: [CODE]<td width="70" bgcolor="#EFEFDE" align="left">Skriv in koden i båda rutorna för att undvika spam</td> <td width="319" bgcolor="#EFEFDE" align="left"> Skriv in koden<input type="text" name="anvnamn" value="<%=Server.HTMLEncode(request.querystring("a nvnamn"))%>" SIZE="15"> <INPUT TYPE="text" NAME="losen" SIZE="15"> [img]loginbild.jpg[/img] </td> </tr> <td width="70" bgcolor="#EFEFDE" align="left">Namn</td> <td width="319" bgcolor="#EFEFDE" align="left"> <input type="text" name="autor" size="21" maxlength="15"> </td> </tr> <tr> <td width="70" bgcolor="#EFEFDE" align="left">Mail</td> <td width="319" bgcolor="#EFEFDE" align="left"> <input type="text" name="mail" size="34" maxlength="60"></td> </tr> <tr> <td width="70" bgcolor="#EFEFDE" align="left">Ämne</td> <td width="319" bgcolor="#EFEFDE" align="left"> <input type="text" name="title" size="34" maxlength="80"></td> </tr> <tr> <td width="394" bgcolor="#EFEFDE" colspan="2" align="left"> <textarea rows="6" name="message" cols="46"></textarea></td> </tr> <tr> <td width="394" bgcolor="#EFEFDE" colspan="2" align="center"> <input type="submit" value="Spara" name="B1"></td> </tr> </table>[/ Verifieringen <% Set Connect = Server.CreateObject("ADODB.Connection") Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& server.mappath("forum.mdb") Set rs = connect.Execute("SELECT anvnamn, losen FROM postings WHERE anvnamn = '" & Inj (Request.Form("anvnamn")) & "' AND losen = '" & Inj (Request.Form("losen")) & "'") If rs.eof then Response.Write "Inloggningen misslyckades" Else rs.Close : Set rs = Nothing Connect.Close : Set Connect = Nothing Session("inloggad") = 1 Response.Redirect "new.asp" End If rs.Close : Set rs = Nothing Connect.Close : Set Connect = Nothing %> |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Nykomling
|
Har du kontrollerat att alla fälten verkligen innehåller något värde?
Citat:
|
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Mycket flitig postare
|
Citat:
Kanske går dom in via.. <!--QuoteBegin--tri Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& server.mappath("forum.mdb")[/quote] Men du kanske har ett externt skydd? Annars kan det vara dax att byta lösenord.. |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Nykomling
|
Tror jag sett någonstans att man ska kunna komma förbi lösenordet i access.
Det bästa är att ha databasen utanför webbrooten. |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Medlem
|
Jag fick ett svar på denna fråga men jag är inte säker på att jag riktigt förstår.
Jag har ett javascript som kontrollerar att alla fält är ifyllda och då framföraööt fältet där info hämtas från databas. Rekomendationen jag fick var att ersätta Så här ser javascripet ut <script type="text/javascript"> function validate (form) { var returnValue = true; var anvnamn = form.anvnamn.value; if (anvnamn == "") { returnValue = false; alert("Du måste ange koden "); document.frmloginform.anvnamn.focus(); } return returnValue; } </script> "Prova att sätta ett ID på ditt formulär och använd sedan "document.getElementById('id')" istället för "form.anvnamn.value"... " Visst är det så att jag ska byta ut i javascriptet och ingen annanstans? Spelar det någon roll vad jag tilldelar formuläret för id, eller måste det vara specifikt? |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Supermoderator
|
Du ska sätta ett specifikt ID på formuläret och sedan använda detta namn istället för 'id'. ID måste alltid vara unikt.
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Medlem
|
Ok, men ska jag fortfarande kontrollera lösenordet via databasen eller hoppa över det. Jag har kört fast och suttit med detta alldeles för länge nu. Så här gjorde jag men det är säkert helt fel.
<script type="text/javascript"> function validate (form) { var returnValue = true; var anvnamn = document.getElementById('inloggning'); if (anvnamn == "") { returnValue = false; alert("Du måste ange koden "); document.frmloginform.anvnamn.focus(); } return returnValue; } </script> <form name="frmloginform" id="inloggning" action="new.asp" method="post" onSubmit="return validate(this);"> <center> <table cellpadding="1" cellspacing="1" border="1" width="450" class="text"> <table border="0" cellpadding="0" cellspacing="0" width="100" bgcolor="#000000" align="center"> <tr> <td width="100%"> <table border="0" cellpadding="2" cellspacing="1" width="400" class="text"> <tr> <td width="389" bgcolor="#848CB5" align="center" colspan="2">Nytt inlägg </td> </tr> <tr> <tr> <td width="70" bgcolor="#EFEFDE" align="left">Skriv in koden i båda rutorna för att undvika spam</td> <td width="319" bgcolor="#EFEFDE" align="left"> Skriv in koden<input type="text" name="anvnamn" id="inloggning" SIZE="15"> |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Supermoderator
|
Du skrev i ditt första inlägga "Jag har gjort en bild med ett lösenord som är kopplat till en databas." Har du ett enda lösenord för samtliga medlemmar?
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Medlem
|
Ja, det är samma för samtliga.
|
||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Supermoderator
|
Verkar inte så lyckat men varför är det i så fall alls kopplat till en databas? =) Du behöver inte kolla mot databasen då....
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
Svara |
|
|