shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

OFF-TOPIC: Re: Res: [shell-script] executar CGI Bash em servidor apache


From: Cristiano
Subject: OFF-TOPIC: Re: Res: [shell-script] executar CGI Bash em servidor apache
Date: Fri, 02 Jul 2010 16:46:25 -0000
User-agent: eGroups-EW/0.82


--- Em address@hidden, Wagner Brasileiro <wagnerbrasileirocardoso@...> escreveu
>
> MrBits,
> 
> Me desculpe pela demora e por não ter postado o código pelo Pastebin, além de 
> não conhecer e ferramenta, encarei como uma sugestão apenas e meu muito 
> obrigado 
> pelo seu empenho mesmo assim. Me enrolei com outras coisas aqui e por isso só 
> agora estou voltando a postar sobre ele. Agora postado no Pastebin:  
> http://pastebin.com/f4yci2A0 (rs...)
> 
> 
> 
> Voltei a verificar os logs do servidor e nada aparece, porém consegui 
> evoluir, 
> se eu chamar o script via página html diretamente assim: 
> meusite/cgi-local/script.cgi ele resposde. Algumas anomalias porém eu ainda 
> estou encontrando, talvez pela minha falta de experiência, são elas:
> 
> 1- Se na linha "2. content-type: text/plain" eu declarar asim como plain, ele 
> me 
> dá um resultado bem próximo do que eu quero e do que ele tem me mostrado aqui 
> quando o executo diretamente via SSH como usuário local, mas com um problema, 
> ele me injeta o resultado em texto plano, como se fosse um relatório. Se eu 
> mudo 
> para HTML ele me come os resultados do código dentro do "for" entre as linhas 
> 15 
> e 19 e nada em html é impresso dentro do "for". Achei que fosse aluma aspa 
> aberta pois o próprio VI me mostrava dependnedo do caso que o loop estava 
> aberto, mesmo qaundo ele mostra fechado nada acontece.

Wagner, vamos por partes.

Antes de mais nada, se o resultado do seu script apareceu OK quando você usou 
text/plain e não funciona quando você usa text/html, o assunto shell acabou 
aqui. Seu script funciona e seu problema é codificação HTML e o assunto virou 
off-topic.

Já que a thread vem rodando há alguns dia, peço licença para terminá-la em off 
topic (não vou ficar chateado se ela for editada ou moderada).

Bom, vamos lá.

1) embora html não seja case sensitive, o W3C recomenda usar caixa baixa para 
compatibilidade com versões mais recentes do protcolo (XHTML, HTML5). Recomendo 
que você siga a recomendação

2) Seu problema todo está na linha 17:

echo "<A HREF="http://meusite.com.br/${DIR##/*public_html*/}/${LS}";></A>"\n

Novamente, por partes:

2.a) Por padrão, o comando echo não interpreta caracteres escapados  com a 
barra invertida. Se você quer que seu \n vire um 'new line', use a sintaxe 
'echo -e'. Falta de atenção sua, pois o MrBiTs já te avisado disso também.

2.a.a) Mesmo usando "echo -e", este seu \n não irá se tornar uma quebra de 
linha, simplesmente pelo fato de que o código HTML apenas produz quebras de 
linha através da tag <br> (ou <br /> para seguir a norma atual corretamente). 
Também não adianta colocar mais de um espaço consecutivo que o resultado será 
sempre 1 espaço. A exceção a esta regra são os blocos entre as trags 
<pre></pre>.

2.b) O seu link está construído de forma incorreta. A tag <a> exige que o valor 
do atributo 'href' seja cotado entre aspas (preferencialmente duplas, mas as 
simples também funcionam). Elas não existem no seu código, pois as que estão lá 
estão sendo interpretadas pelo shell. 

2.b.a) O texto do seu link está vazio pois entre <a href> e </a>, não tem nada. 
Logo, como você espera ver o hiperlink se não informou texto algum para ser 
linkado.

3) Então, uma sugestão para resolver seu problema seria substituir a linha 17 
por algo assim:

echo '<a 
href="http://meusite.com.br/'${DIR##/*public_html*/}/${LS}'">'${LS}'</a><br />'

* tudo em uma linha (sim sou fã e complemente à favor do pastebin, mas não vou 
usá-lo apenas para uma linha de código).

Para se inteirar melhor sobre html, recomendo a leitura do seguinte documento, 
nada mais:

http://www.w3schools.com/Html/default.asp

Não quero dar uma de Felipe Melo, e espero que meu off topic fique apenas no 
cartão amarelo.

Abraços a todos e nos vemos em 2014.








reply via email to

[Prev in Thread] Current Thread [Next in Thread]