compreender a ColdFusion FindNoCase

Estou a passar por um código de coldfusão e encontrei informações seguintes. Não percebi uma parte. As minhas perguntas são as seguintes:

Código:

<cfif FINDNOCASE( "xyz.seta", "#CGI.SERVER_NAME#") GT 0 >

   <cfset PublicPath = "abcxyz/NEW_abc/Public">
   <cfset SessionPath = "abcxyz/NEW_abc/Session">

eu entendo que a FINDNOCASE é usada para encontrar a primeira occurance de uma substring em uma string, a partir de uma posição de início especificada.

Function Syntax: FindNoCase(substring, string [, start ])

1) assim, no meu caso, xyz.seta substring é pesquisado a partir de " #CGI.SERVER_NAME#"? Estou confuso?

([4]) SessionPath definido:

Quando verifiquei o servidor (depois de o aceder usando o Visualizador de VNC), só as pastas que estão visíveis para mim são públicas e de sessão. Onde posso encontrar o caminho antes dele? Por favor, esclareça ou deixe-me saber se eu preciso estudar algo mais antes de fazer tal pergunta.

Obrigado.
Author: James A Mohler, 2013-09-24

4 answers

Tens razão quanto à tua primeira suposição. O FINDNOCASE irá devolver o índice do início da sub-cadeia. Eu acho que os índices CF são uma base (não com base em 0). Assim, se o texto "xyz.seta" existir na variável #CGI.SERVERNAME#, o valor devolvido será sempre maior que zero e o conteúdo do bloco CFIF será executado.

Sobre as variáveis PublicPath e SessionPath. Estas variáveis são variáveis de página, uma vez que não são definidas por qualquer outra designação de âmbito (por exemplo, sessão ou aplicacao). Eles só existem quando esta página está processando. Se isto estiver na sua candidatura.cfm, ele irá executar cada vez que esta aplicação.chama-se ficheiro cfm. Os valores das variáveis estão sendo configurados para caminhos relativos ao diretório atual. Se os quiser absolutos, adicione uma barra à frente dos literais de texto (por exemplo "/abcxyz/NEW_abc/Public"). Isso irá torná-los caminhos absolutos a partir do Diretório de documentos do servidor web. A localização do servidor web varia de SO a so.

 6
Author: Joseph Carrigan, 2013-09-24 19:27:50
Não faço ideia de qual é a sua segunda pergunta, quanto mais a resposta, mas posso responder à primeira.

Estás a interpretar mal os documentos (bastante claros, penso eu) para {[[0]}.

Sintaxe Da Função: FindNoCase(substring, string [, start ])

Código: FINDNOCASE( "xyz.seta", "#CGI.SERVER_NAME#")

Então xyz.seta é o substring, e CGI.SERVER_NAME é o texto. E o atributo opcional start não é especificado, por isso está implícito para ser 1, ou seja: o início do texto.

Então o código está à procura de xyz.seta dentro do valor de CGI.SERVER_NAME (e irá devolver a posição na qual é encontrado, ou zero se não for encontrado.

 5
Author: Adam Cameron, 2013-09-24 19:11:03

Esta é uma declaração de configuração muito simples.

Se o endereço que está a ser acedido (CGI.server_name) pelo menos contém o domínio xyx.seta, em seguida, definiu estas duas variáveis, PublicPath e SessionPath, para serem esses dois valores.

Eu imagino que há outro que diz definir os caminhos para serem dois valores diferentes.

Se procurares no servidor onde o xyz.seta está hospedado você deve encontrar esses caminhos de arquivo físico.

É isso mesmo. Nada mais nada menos. É melhor usares o cfdump e o cfabort para umm... Descarregue o conteúdo do escopo CGI e escopo das variáveis para ver o que está lá dentro e o que está sendo definido. Utilize o cfabort para parar o processamento imediatamente após o cfdump.

Isso deve ajudá-lo a entender que variáveis estão disponíveis para você e o que o código acima está fazendo.

 2
Author: Stephen Moretti, 2013-09-24 19:17:54
FindNoCase(substring, string [, start ])

É a sintaxe onde o "start " é um parâmetro opcional que não é passado aqui. The substring " xyz.o seta "é pesquisado no" CGI.SCRIPTNAME ". A função findnocase devolve 0 se não forem encontradas correspondências ou se for encontrado um número positivo(o valor devolvido é o índice inicial da sub-sequência no texto e o índice começa a partir de 1 e não de 0). Então a declaração pode ser como

<cfif FINDNOCASE( "xyz.seta", "#CGI.SERVER_NAME#")>

Dado que o valor de retorno será positivo se as correspondências forem encontrado

 1
Author: Marikkani Chelladurai, 2013-10-02 07:22:25