2013-04-10 2 views
0

URL을 통해 사용자 이름의 ID를 전달하려고합니다 (이 부분 작동). 그런 다음 사용자 정보를 표시하는 다음 페이지로 이동하십시오. 그러나 나는 후자가 제대로 작동하도록 할 수 없습니다.URL을 통해 변수를 전달하는 Coldfusion

<a href="memberdetails.cfm?id='#custlist.customerID#'">#custlist.userName#<br /> 

이외의 작업 부분 :이 문제에 어떤 도움을 환영 할 것

<cfquery name="custlist" datasource="homesource"> 
     id = $_GET['customerID'] ; 
    SELECT * FROM customers WHERE customerID = id 
</cfquery> 

아래

작업 URL 코드 내 코드입니다. 저는 ColdFusion을 배우기 시작했습니다 (오늘처럼). 이 응용 프로그램은 날 놀고, 물을 테스트하기위한 것입니다. 그래서 가능하다면, URL을 통해 ID를 전달하는 논쟁은 없습니다.

답변

7

URL 변수를 참조하려면 간단히 접두어 인 url을 참조하십시오. 고객 ID를 id 매개 변수로 전달하므로 url.id을 지정합니다. 문자열 내에서 파운드 기호를 둘러싸고해야합니다 : "#url.id#" 여기

당신이 당신의 샘플에서 URL 변수를 사용하는 쿼리 변경 얼마나입니다 : 여분의 안전을 위해

<cfquery name="custlist" datasource="homesource"> 
    SELECT * 
    FROM customers 
    WHERE customerID = <cfqueryparam value="#url.id#" cfsqltype="cf_sql_integer"> 
</cfquery> 

을해야합니다 cfqueryparam을 사용하여 SQL에 변수를 바인드하십시오.

+0

대답 해 주셔서 감사합니다. 다음 오류가 발생합니다. CFSQLTYPE CF_SQL_INTEGER에 잘못된 데이터 '1'이 있습니다. ID가 주어진 사용자의 '1'로 변경됩니다. 빠른 Google을 수행하고 int가되어야한다고하는 방법을 알 수 있습니까?하지만 그것은 int입니다 :/ – jphillip724

+0

숫자 1은 확실히 int입니다. 앞이나 뒤에 공백이나 다른 공백 문자가 있습니까? – imthepitts

-1

나는 이것을 위해 coldfusion에 대한 책을 구입하는 것이 가장 좋습니다.

<cfquery name="custlist" datasource="homesource"> 
    SELECT * FROM customers WHERE customerID = <Cfqueryparam cfsqltype="cf_sql_integer" value="#url.id#"> 
</cfquery> 
+0

대부분의 책은 사물이 작동하고 당신에게 복사 할 코드 블록을 제공하는 방법이나 이유를 설명하지 않는 쓰레기,하지만 난 아마존 당신이있는 경우 구입하는 책을 찾고 오전과 좋은 책을 당신에게 제발 권 해드립니다. :) – jphillip724

+0

온라인 자습서도 있습니다. easycfm.com이 떠오른다. 책에 관한 한, Ben Forta의 CF 웹 응용 프로그램 구축 키트는 꽤 좋았습니다. –

+0

예 저는 온라인 자습서와 서적이 아닌 것을 선호합니다. 그 easycfm 한 감사를 체크 아웃합니다. – jphillip724

0
<cfquery name="custlist" datasource="homesource"> 
    SELECT * FROM customers WHERE customerID = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.customer_id#"> 
</cfquery> 

직접 쿼리에서,이 경우 URL을 클라이언트 데이터를 사용하지 마십시오. 정수 매개 변수는 모든 SQL 주입 해킹 시도를 방지합니다. 또한 데이터베이스 통신 방식 (SQL prepared statements) 때문에 성능이 향상됩니다.

1

기타 답변을 통해 문제의 해결 방법을 알려 주셨습니다. 이것은 뭔가 여분의 것입니다. 당신은 이것을 가졌습니다 :

<cfquery name="custlist" datasource="homesource"> 
id = $_GET['customerID'] ; 
SELECT * FROM customers WHERE customerID = id 
</cfquery> 

실수는 ColdFusion 응용 프로그램에서 PHP 코드를 사용하는 것이 었습니다. 그것은 물론 바보가 될 것입니다,하지만 당신은이 작업을 수행 할 수 :

<cfquery name="custlist" datasource="homesource"> 
<cfset id = url.customerID> 
SELECT * FROM customers WHERE customerID = id 
</cfquery> 

요점은 당신이 cfquery 등 블록 내부에 다른 ColdFusion 태그를 넣을 수 있다는 것입니다. 여기에 더 실제적인 예가 있습니다. 경험에서

<cfquery name="custlist" datasource="homesource"> 
SELECT * 
FROM customers 
<cfif StructKeyExists(url,"customerid")> 
WHERE customerID = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.customer_id#"> 
</cfif> 
</cfquery> 
+0

내 예제에서 볼 수 있듯이 여러 PHP 메소드가 실패한 후에 생각할 수있는 PHP 코드를 편집하려고했습니다. 이 대답은 나를 약간 도와줬고, 심지어 그걸 배웠습니다! 정말 고마워요. – jphillip724

관련 문제