Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda de verdade com script


Malluco

Pergunta

Ola galera.. sou eu de novo..

Primeiramente venho agradecer aos esforços de Andreia, bareta e Alan por terem me ajudado num post criado recentemente com dúvidas sobre IIS e configurações..

Bom, venho novamente pedir ajuda, sei que a galera é muito gente boa e vai ajudar eu espero.

Bom, o tópico que falei sobre config do IIS foi neste --> aqui <--

Configurei o ASP legal, leu as páginas, os scripts.. porém, eu não consegui instalar o SQL Server, apesar de ter tentado instalar várias outras coisas que ele pediu como frameworks 2.0 e etc.. eu não consegui fazer funcionar.

Tenho o MySQL instalado funcionando com apache + php, onde consigo fazer funcionar todos os scripts que faço e testo, inclusive o banco de dados também que funciona a mil maravilhas. Porém, a Andréia, no post que citei me passou uma mina de ouro que é fazer conexão com o MySQL pelo ASP, até então não conseguia.

Pra começar eu sou leigo em ASP e to aprendendo ainda, fuçando aqui e acolá.. então me desculpem a falta de experiência.

Pois então, pela conexão via ASP do MySQL eu, após ter instalado um tal de MyODBC e configurado no Fontes de ODBC, funcionou perfeitamente a conexão, apenas a conexão, porém eu não consegui fazer funcionar meus scripts.

Bom, a ajuda que eu adoraria que me dessem é essa. Eu estou fazendo um projeto pra faculdade onde o prof. falou que precisamos criar um site pra uma empresa real e apresentar, e nesse site precisa ter algo com uso de banco de dados. Até ai beleza, apesar de ter tido apenas 5 aulas de asp não foram o suficiente para poder aprender, consegui aprender mais lendo manuais e dicas aqui do fórum do que nas aulas, pois bem. Fiz o tal site pra empresa de um amigo meu, ficou legal e tudo.

O banco de dados que falei que eu ia usar nele é diferente de todos da classe, pois a maioria usará apenas um banco pra cadastro de clientes, o básico mesmo né. Eu vou fazer um sisteminha de chamado, bem básico também, aqueles onde se cria um #ticket e tal..

A idéia é essa, porém, continuando acima, eu não consegui fazer com uso do MySQL, infelizmente, na faculdade tem instalado o tal SQL Server, onde a conexão funciona legal, principalmente o cadastro dos tickets que eu consegui fazer também.. Só que tanto no meu PC quanto no PC da empresa que trabalho eu não consegui configurar nem SQL Server nem o MySQL. Então, parti para um processo mais básico, o uso de banco de dados access (.mdb). Consegui também fazer funcionar o cadastro onde cadastra os tickets e tal, separados basicamente por 5 campos, nome, email, assunto, mensagem e data.. junto com um ID de autonumeração.

O código do arquivo enviar.asp é o seguinte:

<%
    Dim nome, email, assunto, mensagem, data
    nome = Request.Form("nome")
    email = Request.Form("email")
    assunto = Request.Form("assunto")
    mensagem = Request.Form("mensagem")
    data = Request.Form("dataa")


'Creating connection Object
set Conn=server.createobject("ADODB.Connection")
'Creating Recordset Object
set rs = Server.CreateObject("ADODB.Recordset")
'Initialising Provider String

connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("ticket.mdb") & ";"

'Opening Connection to Database
Conn.open  connStr

strSQL_Insert = "INSERT INTO ticket (nome, email, assunto, mensagem, data)" & _
                        " VALUES ('" & nome & "','" & email & "','" & assunto & "','" & mensagem & "','" & data & "');"
                              
On error resume next
Set rs = conn.Execute (strSQL_Insert)
            If strSQL_Insert = True Then
                response.write "cadastrado com sucesso"
            End If
            
Conn.Close
Set Conn = Nothing

                                                          
%>
Ele envia para o ticket.mdb legal e é cadastrado beleza.. sei que devem ter alguns erros mais beleza eu suporto por hora. Agora, o código do admin.asp onde é mostrado os tickets enviados.
<%
        If NOT Session("logado") = true Then
        Response.redirect("erro.asp")
        Response.End
        End If
%>
<html>
    <head>
    <title> Administração - Ticket Equip Tecnologia </title>
    <style>
.alt1, .alt1Active
    {
        background: #F5F5FF;
        color: #000000;
    }
.tborder
    {
        background: #D1D1E1;
        color: #000000;
        border: 1px solid #0B198C;
    }
.tcat
    {
        font-family:Verdana;
        font-size:12px;
        color:#000000;
        font-weight:bold;
    }
</style>
    </head>
<body>
<table class="tborder" cellpadding="6" cellspacing="0" border="0" width="745">
<tbody>
    <tr>
        <td class="tcat" colspan="5">
            Tickets Aguardando Revisão
        </td>
    </tr>
</tbody>
    <tr>
        <td align="left" class="alt1">
<%
    on error resume next
    dim stringconexao
    set CONEXAO = Server.CreateObject("ADODB.Connection")
    stringconexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("ticket.mdb") & ";"
    CONEXAO.Open stringconexao
    set ticket = Server.CreateObject("ADODB.RecordSet")
            
    ticket.open "select * from ticket", CONEXAO

    while NOT ticket.EOF
         response.Write ticket("data")
         response.Write(" -- ")
         response.Write ticket("nome")
         response.Write(" -- ")
         response.Write("<a href=default.asp?id=>")
         response.Write ticket("assunto")
         response.Write ("</a>")
         response.Write("<br><br>")
     ticket.movenext
    wend 
%>


           </td>

    </tr>
    <tr>
    <td colspan="50" style="border-bottom: 1px solid #DAE0E4; height: 1px; padding: 0px;"></td>
</tr>
    

</table>
<br /><br />
<center> <a href="cadastroUser.asp">Cadastrar novo usuário</a> | <a href="logoff.asp">Sair do Sistema</a> </center>
</body>
</html>

Ele também lista todos, separei apenas por data -- Nome -- Assunto.

O que eu queria e que eu não to conseguindo é criar uma queryString que, clicando no assunto, que será um link, abrir o resto do chamado em uma página tipo mostrar.asp, sendo por exemplo o link seria <a href=mostrar.asp?id=2>ASSUNTO</a>, que pega o ID do assunto e abre o ticket no mostrar.asp.

Eu já fiz o mostrar.asp junto com um campo para resposta onde, respondendo, ele enviará uma mensagem para o e-mail do ID selecionado com a resposta. É bem básico eu sei porém não to conseguindo fazer.

Estou meio desesperado, já fiz de tudo pra tentar fazer, não queria estar aqui pedindo ajuda e não estaria se tivesse conseguido. Se que é folga, mas tentei mesmo e não consegui fazer isso.. Sei que é folga minha, mas eu só tenho vocês a quem recorrer e tal.. já li vários lugares, até inclusive entrei em contato com um pessoal gringo num canal do #irc tentando ajuda, mas a maioria lá é meio metida e não gosta de brasileiros.

Bom, aceito qualquer ajuda possível, até pago se alguém puder fazer isso ai, pois preciso apresentar amanhã na faculdade..

Como falei, sei que é folga, porém não recorreria caso tivesse conseguido fazer por conta própria..

Valeu qualquer ajuda :)

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Olá amigo..

Me disponho a lhe ajudar..

Mas então, vamos ao que interessa!

Bom, na verdade não é necessário nem criar uma pagina "mostra.asp".

Irei seguir quase todas as linhas com explicações!

No asp, temos uma função chamada de Resquest.Querystring, que em determinadas pode servir para determinar uma área esclussiva dentro de uma única pagina, ignorando todo o resto dela!

Por Exemplo:

<%
MODULO = REQUEST.QUERYSTRING("modulo") ' Essa será a função que resgatara a querystring MODULO..
'para entender melhor, esse modulo pode ser "enviar", "analisar", "normal", vazio.. enfim, entenderá mais adiante!
%>
bom declarando este codigo acima no topo da pagina, podemos fazer os tester para ver se funciona tudo OK.. Salve como pagina.asp para teste, se mudar o nome para outro também deverá mudar os links!
<%
MODULO = REQUEST.QUERYSTRING("modulo") 'Deve estar no Topo, Não necessáriamente, mas para efeito de estudos..
%>

<%
IF MODULO = "" THEN
%>

Como o modulo inícia vazio, sempre quando entrar caira nesse modulo!
Porem temos links que podem nos levar a outros modulos!
<a href="pagina.asp?modulo=teste1">Ir Para modulo Teste 1?</a><br>
<a href="pagina.asp?modulo=teste2">Ir Para modulo Teste 2?</a>
<a href="pagina.asp?modulo=">Ir Para modulo Vazio?</a>
<br>

<br>
NOTE QUE PODEM EXISTIR QUANDO MODULOS QUISERES!
<%
END IF
%>


<%
IF MODULO = "teste1" THEN
%>

Este é o modulo TESTE1.
Porem temos links que podem nos levar a outros modulos!
<a href="pagina.asp?modulo=teste1">Ir Para modulo Teste 1?</a><br>
<a href="pagina.asp?modulo=teste2">Ir Para modulo Teste 2?</a>
<a href="pagina.asp?modulo=">Ir Para modulo Vazio?</a>
<br>

<br>

<%
END IF
%>
NOTE FORA DO IF E FORAS DO SND IF, POSSO TER COISAS QUE APAREÇERÃO EM TODOS OS MODULOS, ISSO OCORRE porque ESSA PARTE NÃO É ESCLUSSIVA DOS MODULOS... AQUI PODE SER UM LAYOUT, QUE SERÁ SEMPRE IGUAL, ALGUM TEXTO ENFIM...
<%
IF MODULO = "teste2" THEN
%>

Este é o modulo TESTE2.
Porem temos links que podem nos levar a outros modulos!
<a href="pagina.asp?modulo=teste1">Ir Para modulo Teste 1?</a><br>
<a href="pagina.asp?modulo=teste2">Ir Para modulo Teste 2?</a>
<a href="pagina.asp?modulo=">Ir Para modulo Vazio?</a>
<br>

<br>

<%
END IF
%>

Bom, após esse esclarecimento partimos para a próxima fase.

Note que o codigo acima, é para evitar excesso de paginas, o que pode lhe trazer uma melhor performace em sua apresentação..

Irei criar um no próximo post o tutorial relacionado direto a sua dúvida..

Link para o comentário
Compartilhar em outros sites

  • 0

NoNaMexD legal

poxa, é super simples o uso do request.querystring .. realmente achei ótima sua explicação.. entrou rápido na cabeça..

colocando o uso da conexão e a disposição do banco de dados pode-se puxar a linha da tabela então utilizando o tal do

var = "select * from ticket ......." né?

po cara. valeu a sua ajuda e disposição... to também procurando em uns arquigos do htmlStaff.org onde tem várias dicas interessantes de asp.. to lendo tudo que posso aqui e fuçando e testando também.... quero aprender isso mais doque nunca :)..

valeu a dica do querystring..

Link para o comentário
Compartilhar em outros sites

  • 0

bom..

Na sua dúvida é a mesma função, porem a difrença é temos que passar as condições para uma instrução SQL...

"Só tera que passar as instruções para a seleção no banco que será só os que FOREM igual a aquele ID!"

Essa é a pagina ver.asp...

<%
ID = REQUEST.QUERYSTRING("id")

    on error resume next
    dim stringconexao
    set CONEXAO = Server.CreateObject("ADODB.Connection")
    stringconexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("ticket.mdb") & ";"
    CONEXAO.Open stringconexao
    set ticket = Server.CreateObject("ADODB.RecordSet")
            
    ticket.open "SELECT * FROM ticket WHERE id = "&ID&" ", CONEXAO  ' NOTE QUE NESSA LINHA
' chamei a querystring ID para fazer a condição na clausula Were.

  
         response.Write ticket("data")
         response.Write(" -- ")
         response.Write ticket("nome")
         response.Write(" -- ")
         response.Write ticket("assunto") 
         response.Write("<br><br>")
         response.Write ticket("mensagem")
         response.Write("<br><br>")

%>
E na pagina Admin... Onde ira o Link... O link deve haver o chamado do id do Tickte..
response.Write("<a href=ver.asp?id=ticket("id")>")

Bom, caso queira fazer no formato de modulos, esta quase tudo explicadinho, qualquer dúvida post!

Não testei os codigos acima, qualquer erros os relate aqui..

Editado por NoNaMexD
Link para o comentário
Compartilhar em outros sites

  • 0

legal NoNaMexD ..

uma dúvida

ali onde tem o while no admin.asp

while NOT ticket.EOF
         response.Write ticket("data")
         response.Write(" -- ")
         response.Write ticket("nome")
         response.Write(" -- ")
         response.Write("<a href=default.asp?id=>")
         response.Write ticket("assunto")
         response.Write ("</a>")
         response.Write("<br><br>")
     ticket.movenext
    wend
tipo, se usar o response.Write("<a href=default.asp?id=>") da erro no asp. então o que eu fiz? fiz isso:
<%
    while NOT ticket.EOF
%>
<%
         response.Write ticket("data")
         response.Write(" -- ")
         response.Write ticket("nome")
         response.Write(" -- ")
%>

        <a href=ver.asp?id=ticket("id")>
<%
        response.Write ticket("assunto")
%>
<%
         response.Write ("</a>")
         response.Write("<br><br>")
     ticket.movenext
    wend 
%>
funcionou, porém, no chamado id=ticket("id") ele não esta chamando propriamente a id da tabela ticket.mdb.. como ficaria no admin então? eu coloquei o select assim:
Dim ID
   ID= Request.QueryString("id")
   ticket.open "SELECT * FROM ticket WHERE id = " & id & " ", CONEXAO

ae chamei ele.. mas da erro nessa linha do select.. da esse erro, isso no admin.asp

Erro de sintaxe (operador faltando) na expressão de consulta 'id ='.
no ver.asp que você gentilmente me ajudou a fazer, da erro assim:

Função 'ticket' indefinida na expressão.

valeu a ajuda amigão..

estou começando a entender legal, principalmente com a sua explicação ali em cima do querystring..

Link para o comentário
Compartilhar em outros sites

  • 0
legal NoNaMexD ..

uma dúvida

ali onde tem o while no admin.asp

while NOT ticket.EOF
         response.Write ticket("data")
         response.Write(" -- ")
         response.Write ticket("nome")
         response.Write(" -- ")
         response.Write("<a href=default.asp?id=>")
         response.Write ticket("assunto")
         response.Write ("</a>")
         response.Write("<br><br>")
     ticket.movenext
    wend
tipo, se usar o response.Write("<a href=default.asp?id=>") da erro no asp. então o que eu fiz? fiz isso:
<%
    while NOT ticket.EOF
%>
<%
         response.Write ticket("data")
         response.Write(" -- ")
         response.Write ticket("nome")
         response.Write(" -- ")
%>

        <a href=ver.asp?id=ticket("id")>
<%
        response.Write ticket("assunto")
%>
<%
         response.Write ("</a>")
         response.Write("<br><br>")
     ticket.movenext
    wend 
%>
NO CODIGO ACIMA USE:
<%
    while NOT ticket.EOF
%>
<%
         response.Write ticket("data")
         response.Write(" -- ")
         response.Write ticket("nome")
         response.Write(" -- ")
%>

        <a href="ver.asp?id=<%=ticket("id")%>">
<%
        response.Write ticket("assunto")
%>
<%
         response.Write ("</a>")
         response.Write("<br><br>")
     ticket.movenext
    wend 
%>
funcionou, porém, no chamado id=ticket("id") ele não esta chamando propriamente a id da tabela ticket.mdb..
como ficaria no admin então? eu coloquei o select assim:
Dim ID

ID= Request.QueryString("id") 
   ticket.open "SELECT * FROM ticket WHERE id = " & id & " ", CONEXAO
ae chamei ele.. mas da erro nessa linha do select.. da esse erro, isso no admin.asp
Erro de sintaxe (operador faltando) na expressão de consulta 'id ='.
no ver.asp que você gentilmente me ajudou a fazer, da erro assim:
Função 'ticket' indefinida na expressão.
valeu a ajuda amigão.. estou começando a entender legal, principalmente com a sua explicação ali em cima do querystring..
Fica Assim!
Dim ID

ID= Request.QueryString("id") ' Note que a Variavel que guarda Query é maiuscula, então no ID do ticket.open tb deve ser maiusculo!
   ticket.open "SELECT * FROM ticket WHERE id = "&ID&" ", CONEXAO
Irei ter que sair agora... Mas Tenho certeza que outros lhe ajudarão, estou em duvida quanto essa CONEXÃO separada por Virgula após as instruções SQLs, não costumo usa-la, as vezes isso pode exigir modificações nas Aspas Duplas ou aspas Simples, no final da instrução... Podenso ser somente asim!
ticket.open "SELECT * FROM ticket WHERE id = "&ID, CONEXAO

Mas não creio..

Abraços..

Editado por NoNaMexD
Link para o comentário
Compartilhar em outros sites

  • 0

opa opa NoNaMexD véio.. tu ta me dando maior força cara.. agora consegui fazer funcionar o ver.asp e o admin também chamando a ID específica... agora ta a pampa..

só preciso fazer agora pra enviar por e-mail uma resposta pro cabra que pede o suporte.. bom..

vou tentar fazer aqui essa parte ok? qualquer problema irei pedindo ajudas..

mais por enquanto foi de muito grande valia... se tu mora em são paulo eu vou ficar te devendo uma cervejinha em hehehe..

qualquer coisa posto por ae.. poxa to felizão veio .. grande ajuda.. mais não fechem ainda não pessoal.. por favor :)

quando terminar, eu irei zipar esse script, por ser um trabalho academico acho bom ajudar quem precisa.. irei postar o script pra galera fazer download.. dificil achar um script de suporte básico como esse...

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Fico feliz que tenha dado certo.. :D

Bah, moro no Rio grande do Sul..

Então essa cervejinha fica pra próxima...

Mas se quiser eu aceito um Wisk por Sedex.. ainda mais que ta um frio aqui.. rsrsrsrs

Abraços..

Boa Sorte!

Link para o comentário
Compartilhar em outros sites

  • 0

ahkahkehkaea.. opa.. wisk é bom em.. aqui em sampa também ta um frio danado .. no meu barzinho não falta wisk, mas eu só consigo tomar num sabado, porque se tomar no meio de semana eu encho a cara e vo trabalhar bebado ai não da ehhehe..

bom só mais uma dúvida básica.. da pra eu criar tipo, um ID com numeração randomica e maior do que 5 caracteres? como no meu MDB ta como autonumeração ae teria de criar uma variavel pra incluir nessa ID né??

bom.. to arrumando, fazendo a tela bonitinha..

a parte do e-mail eu consegui fazer funcionar lendo umas dicas pela web.. agora já to manjando eheheh

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
ahkahkehkaea.. opa.. wisk é bom em.. aqui em sampa também ta um frio danado .. no meu barzinho não falta wisk, mas eu só consigo tomar num sabado, porque se tomar no meio de semana eu encho a cara e vo trabalhar bebado ai não da ehhehe..

bom só mais uma dúvida básica.. da pra eu criar tipo, um ID com numeração randomica e maior do que 5 caracteres? como no meu MDB ta como autonumeração ae teria de criar uma variavel pra incluir nessa ID né??

bom.. to arrumando, fazendo a tela bonitinha..

a parte do e-mail eu consegui fazer funcionar lendo umas dicas pela web.. agora já to manjando eheheh

abraço

Exatamente tem que criar uma variavel, além de fazer uma verificação antes de dar INSERT no banco, para ver se o valor gerado pela randomização ainda não existe lá dentro(no banco)..

A unica observação: * é que esse campo não pode ser Autonumeração, e sim Texto simples, ou até mesmo memorando se for o caso..

Há dúvidas ainda?

Editado por NoNaMexD
Link para o comentário
Compartilhar em outros sites

  • 0

não cara.. poxa me ajudou pra caramba.. agora só to terminando o sisteminha aqui, parte do call e já era mano.

poxa me ajudou.. tu merece um beijo ehehkehakhkea..

merece fazer parte da equipe de moderadores pois tens paciencia pra ajudar o pessoal ai ..

abraços

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...