Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Agsto

Condição para IF

Recommended Posts

Olá,

 

Sou bem beginner quanto a ASP, então estou precisando mesmo de ajuda!

 

Trata-se de uma loja virtual e preciso colocar uma apresentação em .swf para cada produto.

 

Seria fácil se o módulo de cadastramento de banners da loja virtual funcionasse, o problema é que a %&%¨$* do sistema da loja não reconhece mais de uma viável na querystring.

 

O padrão das páginas dos produtos é: "http://www.nome-da-loja.com.br/produtos.asp?código-do-produto&nome-do-produto"

 

Ou seja, a loja não reconhece nada depois do "&" e por padrão a loja chama os detalhes do produto desta forma.

 

O resultado é que as apresentações .swf não funcionam.

 

Aí tu me pergunta como eu sei que o problema é na querystring... descobri porque se eu cadastro o banner .swf para o destino quemsomos.asp faleconosco.asp, os arquivos .swf são exibidos!

 

É mole?

 

Como solução estou editando o código fonte, só que eu e a ASP estamos apenas começando nosso relacionanemto, temos pouquíssima intimidade um com o outro.

 

Lendo descobri que tenho que colocar um comando IF no código fonte, sem problema com o bloco de instruções, meu pepino é com a condição. Tô com um problemão em escrever um script na condição que pegue a página de produto destino para comparar com as intruções...

 

Segue o código que estou tentando implementar:

 

<%
Dim productID
productID = ("script-para-comparar-página-do-produto-com-bloco-de-intruções")
If productID = ("http://www.nome-da-loja.com.br/produtos.asp?produto-x") Then
 Response.Write("<embed src='banners/produto-x.swf' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' name='obj1' width='480' height='245'>")
ElseIf productID = ("http://www.nome-da-loja.com.br/produtos.asp?produto-y") Then
 Response.Write("<embed src='banners/produto-y.swf' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' name='obj2' width='480' height='245'>")
Else
 Response.Write("Nada aqui")
End If
%>
Obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então....

 

Meio estranho esse lance de "não reconhecer mais QueryStrings".... acho meio impossível isso....

 

Basta fazer "página.asp?Id=1&Id2=3&Id3=4" e chamar as respectivas variáeis no fonte....

 

Outra coisa.... você cadastra o flash pelo admin da loja, correto?... logo.. você precisa fazer um verificação no BD, se o campo contendo o flash está preenchido.. então ele é exibido....

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta fazer um loop para pegar todas as variaveis querystring, para ver o que é retornado.

 

 

vbQuot = "''"
For each objItem in Request.Querystring
		   Response.Write "str" &objItem &" = Request.Querystring(" &vbQuot &objItem &vbQuot &")" _
		   &"<BR>"  &"Value  - " &Request.Querystring(objItem) &"<HR>"
		 Next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o problema está no & coloca só & e o resto da variavel.

O & é o codigo html para & e pode estar sendo tratado pelo sistema como sendo o nome da variavel amp, e um ; acho que serve para gerar um erro já que a notação normal é &varivel=valor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o problema está no & coloca só & e o resto da variavel.

O & é o codigo html para & e pode estar sendo tratado pelo sistema como sendo o nome da variavel amp, e um ; acho que serve para gerar um erro já que a notação normal é &varivel=valor

 

 

Galera,

 

Para ficar mais fácil vou "dar nome aos bois" e colocar os endereços reais.

 

 

DarkDemo,

 

Os flashes estão corretos na data base:

 

"http://shop.netstore.com.br/natusvita/images/flash/pholia-magra.swf"

 

"http://shop.netstore.com.br/natusvita/images/flash/anti-queda.swf"

 

 

Vinicius;

 

Lembrando que estou adicionando pelo Gerenciador da Loja estas mudanças.

 

O endereço da categoria do produto é:

 

"http://shop.netstore.com.br/natusvita/category/6/funcionais"

 

Neste endereço acima, clicando em "detalhes do produto" é chamado o seguinte endereço:

 

"http://shop.netstore.com.br/natusvita/details.aspx?c=pho60300&n=pholia-magra"

 

 

No caso de trocar o amp; por & ocorre algo estranho.

 

Cadastrei no módulo de flash do Gerenciador dois endereços para serem exibidos o arquivo "pholia-magra.swf"

 

O endereço padrão chamado pela loja quando se navega nela e clica-se na opção "detalhes do produto":

"http://shop.netstore.com.br/natusvita/details.aspx?c=pho60300&n=pholia-magra"

Neste endereço acima nada ocorre, não é exibido o arquivo .swf

 

e o endereço sem o amp; e somente com o &:

"http://shop.netstore.com.br/natusvita/details.aspx?c=pho60300&n=pholia-magra"

Digitando-se diretamente no navergador, neste endereço é exibido o arquivo .swf.

 

Porém não adianta porque o sistema da loja não chama este endereço quando o usuário está navegando nela, chama apenas o endereço do primeiro exemplo que tem o amp;

 

 

X@nBuRzUm;

 

Eu vou fazer o loop agora.

 

Acho que o lance é alterar mesmo no código fonte e apenas implementar este comanda if com um script que gera a condição para comparar com as instruções.

 

Lembrando que eu tenho o endereço correto de cada produto, no caso:

 

"http://shop.netstore.com.br/natusvita/details.aspx?c=pho60300&n=pholia-magra"

"http://shop.netstore.com.br/natusvita/details.aspx?c=HA-ANTQDA&n=herbal-amazon"

 

Eu quero o script para fornecer como condição um destes endereços, conforme for solicitado pelo usuário da loja, e comparar com as intruções.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta fazer um loop para pegar todas as variaveis querystring, para ver o que é retornado.

 

 

vbQuot = "''"
For each objItem in Request.Querystring
		   Response.Write "str" &objItem &" = Request.Querystring(" &vbQuot &objItem &vbQuot &")" _
		   &"<BR>"  &"Value  - " &Request.Querystring(objItem) &"<HR>"
		 Next

Xanburzum,

 

Achei uma resposta tua em um tópico que pode ser o que eu procuro para colocar no valor da condição do IF, só que está dando erro, o código é o seguinte:

 

<%@language="VBScript"%>

<%

Dim strDomain, strPath, strQueryString, strURL

‘descobrir o domínio:

strDomain = Request.ServerVariables("HTTP_HOST")

'Descobrir o caminho para o arquivo atual:

strPath = Request.ServerVariables("URL")

'Descobrir a QueryString:

strQueryString = Request.ServerVariables("QUERY_STRING")

‘ junta tudo:

strURL = "http://" & strDomain & strPath & "?" & strQueryString

Response.Write "O atual endereço é: " & strURL

%>

 

Eu tenti colocar parênteses nestas últimas linhas do strURL, mas mesmo assim segue o erro no sistema da loja, tentei o seguinte:

 

strURL = ("http://") & strDomain & strPath & ("?") & strQueryString

Response.Write ("O atual endereço é:") & strURL

 

O que tu acha que pode ser o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui o script que precisava, agora só tenho que integrar com o IF.

 

Antes disso, não posso usar o Request.Querystring porque a querystring "c=pho60300&n=pholia-magra" retorna como "c=pho60300&%3bn=pholia-magra". E também não adianta porque o sistema da loja quando se clica em "detalhes do produto" chama a url "http://shop.netstore.com.br/natusvita/details.aspx?c=pho60300&n=pholia-magra"

 

Bom, mas para contornar me dei por conta que dá para comparar somente esta variável "c".

 

Para isso encontrei este script que cai como uma luva:

<script>
qs=new Array()
variaveis=location.search.replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
if(variaveis!=""){
for(i=0;i<variaveis.length;i++){
nvar=variaveis[i].split("=")
qs[nvar[0]]=unescape(nvar[1])
}
}
function QueryString(variavel){
return qs[variavel]
}

// Pode-se resgatar quantas variaveis houver na URL
document.writeln ("" + QueryString("c") );
</script>

Mas ainda assim preciso de ajuda para integrar com este comando IF:

 

<%
Dim productID
productID = [u]script-que-retorna-o-valor-da-variável-c[/u]
If productID = ("pho60300") Then
	Response.Write("<embed src='http://shop.netstore.com.br/natusvita/images/flash/pholia-magra.swf' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' name='obj1' width='980' height='445'>")
ElseIf productID = ("HA-ANTQDA") Then
	Response.Write("<embed src='http://shop.netstore.com.br/natusvita/images/flash/anti-queda.swf' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' name='obj1' width='980' height='445'>")
Else
	Response.Write(" ")
End If
%>

Obrigado de novo!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual erro gerado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual erro gerado...

 

Xanburzum;

 

Na verdade eu resolvi o problema do erro neste teu código que mencionei, mas não pude utilizar, tive que usar outro que pega apenas a primeira variável pois o sistema da loja coloca um amp; sempre que requisitado a página de detalhes do produto e se eu pego a querystring por este teu código que citei aparece o amp; como "3bn". Não tenho nem idéia do porque...

 

De todo jeito, achei um script para comparar apenas a primeira variável da querystring, ou seja o "c".

 

Trocando em míúdos é o seguinte:

 

<script>
qs=new Array()
variaveis=location.search.replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
if(variaveis!=""){
for(i=0;i<variaveis.length;i++){
nvar=variaveis[i].split("=")
qs[nvar[0]]=unescape(nvar[1])
}
}
function QueryString(variavel){
return qs[variavel]
}
// Pode-se resgatar quantas variaveis houver na URL
document.writeln ("" + QueryString("c") );
</script>

E tenho que integrar este script aí de cima com o comando IF abaixo:

 

<%Dim 
productIDproductID = script-que-retorna-o-valor-da-variável-c
If productID = ("pho60300") Then
        Response.Write("<embed src='http://shop.netstore.com.br/natusvita/images/flash/pholia-magra.swf' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' name='obj1' width='980' height='445'>")
ElseIf productID = ("HA-ANTQDA") Then
        Response.Write("<embed src='http://shop.netstore.com.br/natusvita/images/flash/anti-queda.swf' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' name='obj1' width='980' height='445'>")
Else
        Response.Write(" ")
End If%>

Poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.