<% option explicit %> <% Response.expiresAbsolute=now()-1 Dim Refemail Dim forum dim forums Dim S, Sentete Dim pub Dim value Dim si Dim fr dim rs1 dim page dim id_quest dim nbrep dim nbligne dim conn dim rs dim sql dim strRech dim j,i dim nom_forum dim okverif Dim titre Dim strNiveau Refemail=Request.Cookies("Email") if request("si")="" then si=1 else si=request("si") end if fr=request("fr") if session("type_forum")="" then session("type_forum")=1 end if if request("forum")<>"" then forums = split(request("forum"),"_") if Ubound(forums)<>1 then response.redirect "erreur.htm" else if not isnumeric(forums(0)) or not isnumeric(forums(1)) then response.redirect "erreur.htm" end if end if if forums(0)<>"0" then '--- Numéro de forum '--- On teste si c'est un forum privé ou public et si l'utilisateur est déjà reconnu if forums(1)="0" then '--- C'est un forum public '--- fr prend la valeur du numéro de forum fr = forums(0) else '--- C'est un forum privé if session("P" & forums(0))<>"" then '--- l'utilisateur est reconnu '--- fr prend la valeur du numéro de forum fr = forums(0) Else response.redirect "login.asp?fr=" & forums(0) & "&si="& si end if end if end if end if Page = 1 Nbligne=20 if fr<>"" then forum=Clng(fr) nom_forum="" else forum="" nom_forum="Général" end if '--- construction de la liste déroulante '--- Cette construction permet de vérifier les autorisation sur les forums privés Set conn = Server.CreateObject("ADODB.Connection") conn.open ChaineConnexion, LoginConnexion, MotDePasseConnexion '--- Pour la sécurité okverif=true SQL="select forums.*,site.* FROM site RIGHT JOIN forums ON site.id_site = forums.id_site where site.id_site=forums.id_site and forums.id_site=" & si set rs=conn.execute(sql) S=" " if not rs.eof then S= "" & Vbcrlf end if '--- sécurité numéro 1 '--- le forum n'existe pas if nom_forum="" then rs.close set rs=nothing conn.close set conn=nothing response.redirect "erreur.htm" end if '--- sécurité numéro 2 '--- erreur mot de passe forum privé if okverif=false then '--- utilisateur non autorisé rs.close set rs=nothing conn.close set conn=nothing response.redirect "login.asp?fr=" & forum & "&si="& si '--- else rs.close end if function Decode_URL(S_encode) '--------- Définition des variables Dim S Dim SDroite Dim SGauche Dim carAscii '----------- Remplacement du caractère <+> par des espaces S=S_encode '----------- Parcours des numéro Ascii Hexa '------- Recherche du caractère % i=Instr(1,S,"%") '------- Tant qu'il exite un caractère pourcent dans la chaîne j=0 do while i>0 '------ On récupère le contenu de la chaine à gauche du % SGauche=Left(S,i-1) '------ On récupère le contenu de la chaine à droite du code Ascii SDroite=right(S,len(S)-i-2) '------- On transforme l'hexa en décimal CarAscii="%" '------- On reconstruit la chaine S=SGauche+CarAscii+SDroite '------- On recherche le caractère % i=Instr(i+1,S,"%") Loop '------ Fin Tant que S=replace(S,"%","_") Decode_url=replace(S,"+","%") end function if isnumeric(request("pg")) and request("pg")<>"" then Page=request("pg") end if %> Liste des messages <% strRech="" ' -------------- DEBUT Une chaine de recherche a été renseigné, on cherche les msg qui la contiennent strRech = request("strRech") if strRech<>"" then if request("ext")="1" then strRech=replace(strRech,"a","à") strRech=replace(strRech,"e","é") strRech=replace(strRech,"u","ù") strRech=replace(strRech,"o","ô") strRech=replace(strRech,"i","ï") strRech=decode_url(server.urlencode(strRech)) else strRech=Replace(strRech," ","%") end if sql="" sql = sql &" and (questions.description like '%"&strRech & "%' OR questions.titre like '%"& strRech & "%') " StrRech=sql end if ' -------------- FIN Une chaine de recherche a été renseigné, on cherche les msg qui la contiennent %> <% if request("ms")="1" then sql="SELECT questions.id_quest,questions.titre,questions.date,questions.auteur,forums.nom_forum FROM questions LEFT JOIN forums ON questions.id_forum = forums.id_forum WHERE questions.id_forum=forums.id_forum And forums.typ_forum<>1 And questions.email='" & Refemail & "' " & strRech & " ORDER By Questions.id_quest DESC" elseIf forum="" then sql="SELECT questions.id_quest,questions.titre,questions.date,questions.auteur,forums.nom_forum FROM questions LEFT JOIN forums ON questions.id_forum = forums.id_forum WHERE questions.id_forum=forums.id_forum And forums.typ_forum<>1 " & strRech & " ORDER By Questions.id_quest DESC" else sql="SELECT id_quest,titre,date,auteur from questions WHERE id_forum=" & forum & " " & strRech & " ORDER By Questions.id_quest DESC" end if Set rs = Server.CreateObject("ADODB.Recordset") 'Set rs1 = Server.CreateObject("ADODB.Recordset") rs.Open sql, conn, 1,1,1 rs.pagesize=nbligne if not rs.eof then rs.AbsolutePage=page end if %>
">
<%if request("ms")="" then response.write("Forum : " & nom_forum) else response.write("Mes questions") forum="" end if %>

<%=S%>

" size="14">

&ms=<%=request("ms")%>&si=<%=si%>&fr=<%=forum%>&ext=<%=request("ext")%>" target="_self">&ext=<%=request("ext")%>" target="contenu">

Options pour la recherche : checked<%end if%> name="ext">Exacte   checked<%end if%> value="1">Approchée

<% if StrRech="" then %> <%=rs.recordcount%> questions <%else %> <%=rs.recordcount%> question(s) trouvée(s) <% end if %> - " target="_self">Mes questions - " target="_self">Accueil

<% if rs.eof then response.write("
Aucun message trouvé") rs.close set rs=nothing conn.close set conn=nothing response.end end if%> <% j=0 id_quest=0 do while (not rs.eof) and (j <% '---- C'est une question titre=server.htmlencode(rs("titre")) %> la question &niveau=0&pg=<%=CDbl(page)%>&strRech=<%=server.urlencode(request("strRech"))%>&ms=<%=request("ms")%>&si=<%=si%>&fr=<%=forum%>&ext=<%=request("ext")%>" target="contenu" class="titrequest"><%=titre%> <%= rs("date")%> - <%=rs("auteur")%><% if forum="" then response.write(" [" & rs("nom_forum") & "]") end if %>
<% '---- On affiche les réponses %><% SQL="select id_rep,auteur,date,niveau from reponses where id_quest=" & rs("id_quest") & " ORDER by niveau" set rs1=conn.execute(sql) if not rs1.eof then rs1.movefirst do while not rs1.eof StrNiveau="" for i=1 to len(rs1("niveau")) '--- On ajoute des espaces de décalage StrNiveau=StrNiveau & "RE : " %>    <% next %>La réponse &id_quest=<%=rs("id_quest")%>&niveau=<%=rs1("niveau")%>&pg=<%=CDbl(page)%>&strRech=<%=server.urlencode(request("strRech"))%>&ms=<%=request("ms")%>&si=<%=si%>&fr=<%=forum%>&ext=<%=request("ext")%>" target="contenu" class="titrerep"><%response.write(StrNiveau & " par " & rs1("auteur") & " le " & rs1("date") )%>
<% rs1.movenext Loop end if '--- Fin du IF rs1.close %> <% j=j+1 rs.movenext loop %> <% if j=0 then%>

<%=titreColor%>Pas de correspondance...<%end if%>


<% if Cdbl(Page)>1 then %>

&ms=<%=request("ms")%>&si=<%=si%>&fr=<%=forum%>&ext=<%=request("ext")%>" target="_self">Les <%=nbligne%> précédents <%end if%>

<%if CDbl(page)

&ms=<%=request("ms")%>&si=<%=si%>&fr=<%=forum%>&ext=<%=request("ext")%>" target="_self">Les <%=nbligne%> suivants <%end if%>

<% rs.close set rs=nothing conn.close set conn=nothing %>