Olá, é o seguinte, eu fiz um formulário em HTML que passa os dados pra um CGI no servidor, este CGI salva as informações num arquivo e as esvia por email, porém:
"Quando o seu servidor web envia os dados do FORM para o seu CGI, ele faz um encode dos dados recebidos. Caracteres alfanumérico são enviados normalmente, espaços são convertidos para o sinal de mais (+), outros caracteres como tab, aspas são convertidos para %HH, onde HH são dois dígitos hexadecimais representando o código ASCII do caractere."
E não sei como fazer esse "URL DECODE", encontrei o codigo abaixo, porém não tenho ideia de como se fazer.
http://www.shelldorado.com/scripts/cmds/urldecode
Meu CGI:
Como exemplo um email enviado por este formulário:Código :#!/bin/sh #daniel.uramg #20/10/2009 #Formail #Prepara arquivo para exibição echo "content-type: text/html" echo echo "<html> <head> <title> Formulário Enviado </title> </head>" echo "<body>" VAR=$(sed -n '1p') # echo "$VAR" echo "<br><b>Os dados abaixo foram enviados com sucesso!</b>" nome=$(echo $VAR | sed 's/\(name=\)\(.*\)\(\&mail=.*\)/\2/;s/+/ /g') mail=$(echo $VAR | sed 's/\(.*&mail=\)\(.*\)\(\&tel=.*\)/\2/;s/%40/@/') tel=$(echo $VAR | sed 's/\(.*&tel=\)\(.*\)\(\&endereco=.*\)/\2/') end=$(echo $VAR | sed 's/\(.*&endereco=\)\(.*\)\(\&message=.*\)/\2/') text=$(echo $VAR | sed 's/\(.*&message=\)\(.*\)\(\¶=.*\)/\2/') TO=$(echo $VAR | sed 's/\(.*¶=\)\(.*\)\(\&btnOK=.*\)/\2/;s/%40/@/') OK=$(echo $VAR | sed 's/.*\&btnOK=//') #Dados exibidos no navegador echo "<br> <br><b>Nome:</b> $nome <br><b>Email:</b> $mail <br><b>Telefone:</b> $tel <br><b>Endereço:</b> $end <br><b>Mensagem:</b> $text <br>" echo "<br><b><i>Aguarde que em breve entraremos em contato.</i></b>" echo "</body>" echo "</html>" #Envia as informações para o arquivo para serem enviados por email echo < $(echo -e >/partition/formsend/$nome.txt "Subject: Contato através do site To: $TO From:"$nome" Formulário de contato enviado pelo site: Nome: $nome Email: $mail Telefone: $tel Endereço: $end Mensagem: $text ") #Envia arquivo por email cat "/partition/formsend/$nome.txt" | /usr/sbin/msmtp -t -C /etc/.msmtprc
Grato!Formulário enviado pelo site:
Nome: Daniel Placido
Email: [email protected]
Telefone: 3351-5555
Endereço: QNB+09+LOTE+02+LOJA+01
Mensagem: Mensagem+de+teste+na+primeira+linha.%0D%0ASegunda+linha%2C+esta+ferrando+com+os+espa%E7os+e+acentos%21%0D%0AN%E3o+consigui+mesmo+arrumar%21%0D%0A%0D%0AAlguem%3F%3F