2009-05-19 9 views
26

Để gỡ lỗi, tôi muốn kết xuất một số biến nhất định vào trang web của mình. Làm thế nào tôi có thể làm điều đó từ bên trong một thẻ cfscript?Làm thế nào để làm một cfdump bên trong một thẻ cfscript?

Tôi đã thử các sau nhưng nó không làm việc:

<cfscript> 
    ... 
    <cfif cgi.REMOTE_ADDR eq "IP"> 
    <cfdump var="#var1#"><br/> 
    </cfif> 
    ... 
</cfscript> 

Bất kỳ manh mối về những gì có thể được thực hiện?

+0

liên quan mạnh mẽ: http://stackoverflow.com/questions/1917706/cfdump-cfcomponent-cfscript/1917756 – ale

Trả lời

39

Bạn không thể thực hiện trực tiếp như vậy trong các phiên bản trước CF 9. Tuy nhiên, bạn có thể sử dụng số dump() UDF có tại CFLib. Có một thư viện UDF toàn bộ ở đó bắt chước các thẻ CF không có tương đương CFSCRIPT trực tiếp.

ColdFusion 9 (và lên) cung cấp chức năng writeDump().

3

Sẽ khá dễ dàng để viết cho riêng bạn. Bạn chỉ cần định nghĩa một hàm trong cfml chứ không phải là cfscript. Bạn có thể sử dụng điều này để làm cfaborts và cfloops là tốt.

Một cái gì đó như thế này (Tắt đầu của tôi ... không được thi hành).

<CFFUNCTION NAME="MyDump"> 
    <CFARGUMENT NAME="OBJ" Required="TRUE"> 
    <CFDUMP VAR="#Obj#"> 
</CFFUNCTION> 
<CFSCRIPT> 
    if(cgi.REMOTE_ADDR eq "IP"){ 
    MyDump(Var1); 
    } 
</CFSCRIPT> 
2
<cffunction name="setAbort" access="private" returntype="void" output="false"> 
<cfdump var="#arguments#"/><cfabort> 
</cffunction> 
29

sử dụng writeDump() giống như cách bạn sử dụng writeOutput()

thấy writeDump trên CF 9 tham khảo

+0

này hoạt động hoàn hảo cho tôi trong mọi tình huống cho đến nay. – JimP

5

Không phải là những điều sau đây dễ dàng hơn và đơn giản?

oAdmin = createObject("component", "cfide.adminapi.base"); 
oAdmin.dump(myVar); 

Nó hoạt động trên CF7 và chuyển tiếp, có lẽ thậm chí sớm hơn.

-2

Đối với bãi chứa, chúng tôi sử dụng Writedump (myvar); thay vì trong cfscript và cùng chúng ta sử dụng hủy bỏ; thay vì để thoát khỏi việc thực hiện chương trình tại bất kỳ instance.we sử dụng writeoutput(); thay vì

<cfoutput>#myvar#</cfoutput> 

dưới đây là mã để hủy và hủy bỏ trong cfscript.

writedump(myvar); for dump 

abort; for stop execution of programm 

writeoutput(myvar); for output within cfscript 
2

tên thẻ Bây giờ đơn giản cho phép trong vòng cfscript bắt đầu ColdFusion 11

<cfscript> 
    cfdump (var=#myVar#); 
</cfscript>