Значения формы Coldfusion для php setcookie () - PullRequest
0 голосов
/ 21 марта 2012

У меня есть страница Coldfusion с опубликованными значениями формы, которые я передаю на страницу php (через cfhttp).Пример кода Coldfusion:

<cfhttp method="Post" url="https://www.test.com/ssl/get_cookies.php" result="cookieResponse">
        <cfoutput>
            <cfif isdefined( "ppcid" )><cfhttpparam name="PPCID" type="formField" value="#session.ppcid#"></cfif>
            <cfif isdefined( "cid" )><cfhttpparam name="CID" type="formField" value="#session.cid#"></cfif>
            <cfif isdefined( "leadcomm" )><cfhttpparam name="LEADCOMM" type="formField" value="#LEADCOMM#"></cfif>
            <cfif isdefined( "clk" )><cfhttpparam name="CLK" type="formField" value="#CLK#"></cfif>
            <cfif isdefined( "dck" )><cfhttpparam name="DCK" type="formField" value="#DCK#"></cfif>
            <cfif isdefined( "ccid" )><cfhttpparam name="CCID" type="formField" value="#CCID#"></cfif>

        </cfoutput>
</cfhttp>

После публикации этих значений в get_cookie.php я хочу установить эти значения в виде файлов cookie.Вот пример моего кода get_cookies.php:

    setcookie("LEADCOM", getVariable('LEADCOMM'), time()+604800, "/", ".fha.com", 0);
setcookie("CCID", getVariable('CCID'), time()+604800, "/", ".fha.com", 0);
setcookie("QTR", getVariable('QTR'), time()+604800, "/", ".fha.com", 0);
setcookie("CLK", getVariable('CLK'), time()+604800, "/", ".fha.com", 0);
setcookie("DCK", getVariable('DCK'), time()+604800, "/", ".fha.com", 0);

FYI - getVariable является функцией для $ _REQUEST переменной CF в PHP.Я проверяю свой браузер и не вижу эти куки, даже когда пытаюсь вернуться на страницу.Есть предложения?

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

В приведенном выше примере вы можете рассматривать ваш запрос CFHTTP как «браузер», который отправляет запрос на страницу PHP. Файлы cookie, которые вы устанавливаете в PHP, возвращаются в результате CFHTTP «cookieResponse». На тот момент они все еще находятся на сервере, ничего не было возвращено первоначальному клиенту (тот, который вызвал страницу CF для начала). Если вы хотите, чтобы эти файлы были установлены в качестве файлов cookie на этом этапе в браузере конечного пользователя, вам необходимо установить их заново с помощью ColdFusion. Это означает, что вам нужно будет проанализировать результат cookieResponse.header, найти файлы cookie, Вы можете получить файлы cookie с помощью cookieResponse.responseHeader ["SET-COOKIE"] и установить их в браузере конечного пользователя с помощью cfheader

Как это

<cfset cookies = cookieResponse.responseHeader["set-cookie"] />
<cfloop from="1" to="#structCount(cookies)#" index="i">
    <cfheader name="SET-COOKIE" value="#cookies[i]#" />
</cfloop>
0 голосов
/ 21 марта 2012

Вы устанавливаете куки в браузере. В этом случае «браузер» - это тег CFHTTP, который не поддерживает файлы cookie. Вы можете прочитать файлы cookie, которые были установлены, они возвращаются в ответе cfhttp, но на самом деле они нигде не будут записаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...