WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Problem med ett forum (https://www.wn.se/forum/showthread.php?t=26100)

tri 2008-01-08 09:34

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">&Auml;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

%>

Kurdistan 2008-01-12 02:58

Har du kontrollerat att alla fälten verkligen innehåller något värde?

Citat:

jag får felmeddelande om att alla fält ska vara ifyllda
På vilken sida finns det felmeddelandet? i new.asp?

Oskar Lindgren 2008-01-12 03:15

Citat:

Originally posted by tri+--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (tri)Jag har ett forum soom har fått ovälkomna besökare.[/b]

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..

Kurdistan 2008-01-12 03:23

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.

tri 2008-01-23 11:44

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?

tartareandesire 2008-01-23 13:38

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.

tri 2008-01-23 22:48

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&auml;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">

tartareandesire 2008-01-24 09:07

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?

tri 2008-01-24 09:25

Ja, det är samma för samtliga.

tartareandesire 2008-01-24 10:13

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å....


Alla tider är GMT +2. Klockan är nu 21:10.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson