Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp和mysql中登录并创建会话后,如何更改导航栏?_Mysql_Asp Classic - Fatal编程技术网

在asp和mysql中登录并创建会话后,如何更改导航栏?

在asp和mysql中登录并创建会话后,如何更改导航栏?,mysql,asp-classic,Mysql,Asp Classic,所以我正在做一个项目,用经典的asp和mysql创建购物网站,我成功地连接了数据库,成功地创建了工作注册和登录页面,但当我登录时,我无法更改导航栏,就像你知道的那样,将“登录”替换为“注销”或将“注册”替换为“我的帐户”。有人能帮我吗?这是我的密码 baglan.asp <% mysql_server = "localhost" mysql_user = "root" mysql_pass = &quo

所以我正在做一个项目,用经典的asp和mysql创建购物网站,我成功地连接了数据库,成功地创建了工作注册和登录页面,但当我登录时,我无法更改导航栏,就像你知道的那样,将“登录”替换为“注销”或将“注册”替换为“我的帐户”。有人能帮我吗?这是我的密码

    baglan.asp <%    

     mysql_server = "localhost"
     mysql_user = "root"
     mysql_pass = ""
     mysql_db = "favcategorize"

     Connection_DSN= "DRIVER={MySQL ODBC 3.51 Driver}; Stmt=SET NAMES 'utf8'; SERVER="&mysql_server&"; UID="&mysql_user&"; pwd="&mysql_pass&";db="&mysql_db&";"
     Set Baglanti= Server.CreateObject("ADODB.Connection")
     Baglanti.Open Connection_DSN
    
%>
baglan.asp
///分开文件///

<!--#include file="baglan.asp"-->
<%
'her girişte sessionlar biter bu şekilde
session.abandon
if not isempty(Request.Form("submit")) then
    islem=Request.Form("submit")
    if islem="Giriş Yap" then
        email=Request.Form("email")
        password=Request.Form("password")
        if email="" OR password="" then
            mesaj="<span style='color:red'>Alanları doldurunuz</span>"
        else
            query="SELECT * FROM uye WHERE email='"&email&"'"
            Set kullanicisql=Baglanti.Execute(query)
            Do Until kullanicisql.eof
                 uyekontrol=1
                 kullanicisql.MoveNext
            Loop
            if uyekontrol=1 then
                query1="SELECT * FROM uye WHERE email='"&email&"' AND password='"&password&"'"
                Set kullanicipassword=Baglanti.Execute(query1)
                Do Until kullanicipassword.eof
                     passwordkontrol=1
                     'kullanicitip=kullanicipassword("2")
                     kullanicipassword.MoveNext
                Loop
                if passwordkontrol=1 then
                    Session.Timeout=10
                    Session("uye")=email                
                else
                    mesaj="<span style='color:red'>Parolanızı yanlış girdiniz</span>"
                end if
            else
                mesaj="<span style='color:red'>Bu email adresine ait kullanıcı bulunamadı</span>"
            end if
        
        end if
    elseif islem="kayit" then
        Response.Redirect "kayit.asp"
    end if
end if
%>

/////


FavCategorize



///////

<!--#include file="ustgiris.asp"-->
<!--#include file="baglan.asp"-->
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>FavCategorize</title>
    <link rel="stylesheet" href="css/style.css">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Raleway:wght@500&display=swap" rel="stylesheet">
</head>
<%
if Session("uye")=email then %>
<nav class="navbar navbar-dark bg-dark justify-content-center">
        <ul class="nav justify-content-center">
            <li class="nav-item mainpage">
                <a class="nav-link active" aria-current="page" href="index.asp">Anasayfa</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">İletişim</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Hakkımızda</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="hesabim.asp">Hesabım</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="logout.asp">Çıkış Yap</a>
            </li>
        </ul>
    </nav>"
    <% else %>
    <nav class="navbar navbar-dark bg-dark justify-content-center">
        <ul class="nav justify-content-center">
            <li class="nav-item mainpage">
                <a class="nav-link active" aria-current="page" href="index.asp">Anasayfa</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">İletişim</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Hakkımızda</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="giris.asp">Giriş Yap</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="kayit.asp">Kayıt Ol</a>
            </li>
        </ul>
    </nav> <% end if
%>

FavCategorize
"

在登录纸条上,设置一个会话变量以指示登录已发生,然后在菜单页面上执行以下操作: (编辑注释-如果您计划使用其他两个部分,请不要将其放入代码中。我相信您是)

然后将代码放在菜单栏中,比如说LOGIN或LOGOUT。如果您愿意,也可以将LOGIN状态作为字符串传递到变量中,这样做: (编辑注释-将其放在脚本开头的
标记之后)

然后,在设置该变量之后,该代码(显然,您还需要包含其他代码,但这是为了向您表明,您应该能够使用if/Then检查变量,然后通过ASP显示HTML内容)

IF logstate = 1 THEN
   response.write("<a class='nav-link' href='logout.asp'>LOGOUT</a>")
ELSE
   response.write("<a class='nav-link' href='login.asp'>LOGIN</a>")
END IF
如果logstate=1,则
回答。写(“”)
其他的
回答。写(“”)
如果结束
如果您同时使用最后两个脚本,它将显示注销html或基于我们之前使用的会话变量代码的登录html

我认为您正在使用名为uye的变量来跟踪登录状态是否正确?因此,如果您在我的代码中使用该变量,它应该根据会话变量中设置的内容显示相应的登录或注销,这有意义吗

更新注释-将其更改为uye变量,并将其改为数字而不是字符串。您是否也发布了登录脚本,因为它可能没有传递变量

如果在脚本末尾执行此代码,它会说什么,是1还是什么都没有?如果没有,我怀疑会话变量没有设置,如果是这样,我想查看登录脚本。尝试以下操作:

response.write("uye is " & Session("uye") & "<br>")
response.write(“uye是”&Session(“uye”)和“
”)
之前我做了类似的事情,然后我做了你说我应该做的事情,是的,我先检查电子邮件和密码,然后如果它们正确,我声明变量uye=1,然后我将它与你的代码一起使用,但它不起作用。如果你想这样做,我将尝试编辑它,使其适合你的代码uye=1,而不是字符串另外,当你说它不工作时,它会显示什么?还包括检查变量是否被设置的代码。但是在你的login.asp脚本中,在它进行检查之后,你会执行以下操作:如果密码=密码,电子邮件=电子邮件,那么会话(“uye”)=1 ELSE'暂时没有其他结束如果什么都没有发生,在导航栏登录和注册链接上就会消失dim logstate如果Session(“uye”)=1那么logstate=1 ELSE logstate=0结束如果///我是否将此代码放入ustgiris.asp或giris.asp?我添加了响应。write(“uye is”&Session(“uye”)&“
”)这显示了数据库中正确的电子邮件,我还将会话(“uye”)=1更改为会话(“uye”)=电子邮件,然后在响应之前写入(“uye是”&会话(“uye”)和“
”),我添加了if session(“uye”)=然后发送电子邮件,它显示了电子邮件这里有太多不好的做法,我不知道从哪里开始。在
会话中存储登录状态是经典ASP的一个基本概念(它已经存在20多年了)另外,考虑到尽可能短的时间保持与数据库的连接,而不是在页面的持续时间。我将在整个生命中使用经典ASP,仅在这个项目上,是的,这是一个旧的编码语言,没有太多的资源可以查看,所以我只想问一下。如果你确实有问题,就报告这个问题这是我的观点,关于这个问题有很多现有的问题和答案,你只需要看一下。
    dim logstate
    IF Session("uye") = 1 THEN
       logstate = 1
    ELSE
       logstate = 0
    END IF
IF logstate = 1 THEN
   response.write("<a class='nav-link' href='logout.asp'>LOGOUT</a>")
ELSE
   response.write("<a class='nav-link' href='login.asp'>LOGIN</a>")
END IF
response.write("uye is " & Session("uye") & "<br>")