Avatar billede mettecarsten Nybegynder
28. juni 2004 - 22:16 Der er 2 kommentarer og
1 løsning

Login til en MySQL database

Hej eksperter

Jeg er ved at skifte fra accessdatabase til en MySQL database. Når jeg efterfølgende ønsker at logge ind, får jeg dog problemer. Login oplysninger sendes først med denne kode:

<form method="POST" action = vallog.asp>
<p align="left"><font face="Arial" size="3">Brugernavn<br>
</font><input type="text" name="Navn" size="20"></p>
<p align="left">&nbsp;<font size="3" face="Arial">Password<br>
</font><input type="password" name="pass" size="20"></p>
<p align="left"><input type="submit" value="Login" name="B1"></p>
</form>

Oplysningerne sendes videre til vallog.asp, som har følgende kode:

<htlm>
<!--#include file="forb.asp"-->

<%Response.Expires = -1 %>

<%

Bnavn = Request.form ("Navn")
Pass = Request.form ("pass")

StrQ = "Select Navn, password, Bnavn, type from selskaber"
Objrs.open StrQ
    While not objrs.eof
    If Bnavn = objrs("Bnavn") Then
        if Pass = objrs("password") Then
        Session("navn") = objrs("Bnavn")
        if objrs("type") = "A" Then
        Response.Redirect "bover.asp"
        Else
        Response.Redirect "hoverstart.asp"
        End if
        End if
    End if


Objrs.movenext
Wend
Session("logon") = 1
Response.Redirect "log-on.asp"
%>

Hvad skal der ændres, så koden passer til MySQL databasen?

På forhånd tak.
Avatar billede eagleeye Praktikant
28. juni 2004 - 22:26 #1
Du skal havde rettet i din forb.asp sådan den connecter til mySQL database. Men det har du sikkert lavet?

Recordset og mySQL er ikke så godt integreret som Access og recordset, så det kan være nødvendigt at lave koden lidt om sådan man ikke bruger recordset'et til at connecte med men et connection object. Samt laves koden om sådan du ikke har det loop, men brugeres findes ved et SQL kald:

<%Response.Expires = -1 %>
<%
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Din Connection String Her"

Bnavn = replace(Request.form ("Navn"),"'","")
Pass = replace(Request.form ("pass"),"'","")

StrQ = "Select Navn, password, Bnavn, type from selskaber where bnavn = '" & Bnavn & "' AND password = '" & pass & "'"
Set rs = Conn.Execute(StrQ)
if not rs.EOF then
  Session("navn") = objrs("Bnavn")
  if rs("type") = "A" Then
    Response.Redirect "bover.asp"
  Else
    Response.Redirect "hoverstart.asp"
  End if
End if
Conn.Close
Session("logon") = 1
Response.Redirect "log-on.asp"
%>
Avatar billede mettecarsten Nybegynder
28. juni 2004 - 22:39 #2
Siden, forb.asp, burde være ok, da jeg uden problemer kan lave sider, som henter fra databasen via <!--#include file="forb.asp"-->.

Vallog.asp indeholder nu kun:

<!--#include file="forb.asp"-->

<%

Bnavn = replace(Request.form ("Navn"),"'","")
Pass = replace(Request.form ("pass"),"'","")

StrQ = "Select Navn, password, Bnavn, type from selskaber where bnavn = '" & Bnavn & "' AND password = '" & pass & "'"
Set rs = Conn.Execute(StrQ)
if not rs.EOF then
  Session("navn") = objrs("Bnavn")
  if rs("type") = "A" Then
    Response.Redirect "bover.asp"
  Else
    Response.Redirect "hoverstart.asp"
  End if
End if
Conn.Close
Session("logon") = 1
Response.Redirect "log-on.asp"
%>

Der kommer stadig fejl:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>

<head>
<style>
a:link            {font:8pt/11pt verdana; color:red}
a:visited        {font:8pt/11pt verdana; color:#4e4e4e}
</style>
<meta HTTP-EQUIV="Content-Type" Content="text-html; charset=Windows-1252">
<title>Der opstod en intern HTTP 500-serverfejl</title>
</head>
<script>

function Related(){
    userURL=document.location.href;

    //for the href, we need a valid URL to the domain. We search for the # symbol to find the begining
    //of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker.

    BeginURL=userURL.indexOf("#",1) + 1;
    CurrentURL=userURL.substring(BeginURL,DocURL.length);
   
    //Build the query
    RelatedServiceURL="http://related.msn.com/related.asp?url=";
   
    //Perform simple check for Intranet URLs
    //this is where the http or https will be, as found by searching for :// but skip res:
    protocolIndex=userURL.indexOf("://",4);
    serverIndex=userURL.indexOf("/",protocolIndex + 3);
    urlresult=userURL.substring(0,serverIndex);
    if (protocolIndex - BeginURL > 7)
        urlresult=""
   
    //Check if Intranet URL - then open search bar
   
    if (urlresult.indexOf(".",0) < 1) userURL="Intranet URL";
    finalURL = RelatedServiceURL + encodeURIComponent(userURL);
    window.open(finalURL, "_search");
   
}

function Homepage(){

// in real bits, urls get returned to our script like this:
// res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm

    //For testing use DocURL = "res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm"
    DocURL=document.location.href;
   
    //this is where the http or https will be, as found by searching for :// but skipping the res://
    protocolIndex=DocURL.indexOf("://",4);
   
    //this finds the ending slash for the domain server
    serverIndex=DocURL.indexOf("/",protocolIndex + 3);

    //for the href, we need a valid URL to the domain. We search for the # symbol to find the begining
    //of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker.
    //urlresult=DocURL.substring(protocolIndex - 4,serverIndex);
    BeginURL=DocURL.indexOf("#",1) + 1;
    urlresult=DocURL.substring(BeginURL,serverIndex);
       
    //for display, we need to skip after http://, and go to the next slash
    displayresult=DocURL.substring(protocolIndex + 3 ,serverIndex);

    // Security precaution: must filter out "urlResult" and "displayresult"
    forbiddenChars = new RegExp("[<>\'\"]", "g");    // Global search/replace
    urlresult = urlresult.replace(forbiddenChars, "");
    displayresult = displayresult.replace(forbiddenChars, "");

    document.write('<A target=_top HREF="' + urlresult + '">' + displayresult + "</a>");
}
function doSearch()
{
    saOC.NavigateToDefaultSearch();
}

function initPage()
{
    document.body.insertAdjacentHTML("afterBegin","<object id=saOC CLASSID='clsid:B45FF030-4447-11D2-85DE-00C04FA35C89' HEIGHT=0 width=0></object>");
}

</script>


<body bgcolor="white" onload="initPage()">

<table width="400" cellpadding="3" cellspacing="5">
  <tr>
    <td id="tableProps" valign="top" align="left"><img id="pagerrorImg" SRC="pagerror.gif"
    width="25" height="33"></td>
    <td id="tableProps2" align="left" valign="middle" width="360"><h1 id="errortype"
    style="COLOR: black; FONT: 13pt/15pt verdana"><span id="errorText">Siden kan ikke vises</span></h1>
    </td>
  </tr>
  <tr>
    <td id="tablePropsWidth" width="400" colspan="2"><font
    style="COLOR: black; FONT: 8pt/11pt verdana">Der er problemer med den side, du prøver
    at åbne, og den kan ikke vises.</font></td>
  </tr>
  <tr>
    <td id="tablePropsWidth" width="400" colspan="2"><font id="LID1"
    style="COLOR: black; FONT: 8pt/11pt verdana"><hr color="#C0C0C0" noshade>
    <p id="LID2">Prøv følgende:</p><ul>
      <li id="instructionsText1">Åbn hjemmesiden <script> Homepage();</script>, og søg efter hyperlinks, der fører til
        de ønskede oplysninger. </li>
      <li id="instructionsText2">Klik på knappen
      <a xhref="java script:location.reload()" target="_self">
      <img border=0 src="refresh.gif" width="13" height="16"
        alt="refresh.gif (82 bytes)" align="middle"></a> <a xhref="java script:location.reload()" target="_self">Opdater</a>, eller prøv igen senere.<br>
      </li>
      <li ID="instructionsText3">Klik på <a href="java script:doSearch()"><img border=0 src="search.gif" width="16" height="16" alt="search.gif (114 bytes)" align="center"> Søg</a> for at søge efter oplysninger på Internettet. </li>
      <li id="instructionsText4">Du kan også se <a onclick="Related();event.returnValue=false" href="">en liste over relaterede websteder.</a>   
</ul>
</p>
   
    <p><br>
    </p>
    <h2 id="ietext" style="font:8pt/11pt verdana; color:black">HTTP 500 - Intern serverfejl <br>
    Internet Explorer </h2>
    </font></td>
  </tr>
</table>
</body>
</html>

Bnavn og password er af datatypen "text" - korrekt?
Avatar billede mettecarsten Nybegynder
12. juli 2004 - 06:49 #3
Lukker spg. - virker stadig ikke
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