Reply to Re: PHP + cURL + session id

Your name:

Reply:


Posted by Jiri Fogl on 04/22/06 01:28

Problem is in session identification.
When you start a session, it gets unique identifier, which is passed to
your browser (in cookie or, if cookies are off, in GET parameter). Value
stored in the session is saved on the server and next time you call
session_start, PHP finds it on the server according to this identifier.

For the third script the calling client is not your browser, but cURL
client on the server. However, it doesn't know the session identifier,
so the session is empty.

What you need is to pass session identifier to the URL called by cURL in
second script as a GET parameter.

lookee wrote:
> Hello all,
> I have simple PHP application that on one page strarts session and
> write some information to it. On another page program tryes to fetch
> information from a third page using cURL. On that third page program
> needs to retrive information that were written to the session and use
> them. Problem is that when I call the third page and call
> session_start() it starts a new session where there are no infromation
> I need. Code below.
>
> <code>
> <?
> /**
> * file: t1.php
> */
> session_start();
> $_SESSION['user'] = 'lukas';
> echo '<html>
> <body>
> <a href="t2.php">'.$_SESSION['user'].' 2 >> </a>
> </body>
> </html>';
> ?>
>
> <?
> /**
> * file: t2.php
> */
> session_start();
> $_SESSION['user'].=" add some info.";
> $url="http://www.myserver.com/t3.php"
> $ch = curl_init();
> curl_setopt($ch, CURLOPT_URL, $url);
> curl_setopt($ch, CURLOPT_TIMEOUT, 2);
> //curl_setopt($ch, CURLOPT_COOKIE,
> session_name()."=".session_id().";"); //when I uncomment that line
> operation times out
> $output = curl_exec($ch);
> echo "output: ".$output."<br/>";
> echo "error no: ".curl_errno($ch)."<br/>";
> echo "error: ".curl_error($ch)."<br/>";
> curl_close($ch);
> ?>
>
> <?
> /**
> * file: t3.php
> */
> session_start();
> if(isset($_SESSION['user']))
> echo "yeah<br/>";
> else
> echo "nope<br/>";
> ?>
> </code>
>
> My PHP Version 4.4.2-1
>
> My php.ini session settings:
> Session Support enabled
> Registered save handlers files user
> session.auto_start Off Off
> session.bug_compat_42 On On
> session.bug_compat_warn On On
> session.cache_expire 180 180
> session.cache_limiter nocache nocache
> session.cookie_domain no value no value
> session.cookie_lifetime 0 0
> session.cookie_path / /
> session.cookie_secure Off Off
> session.entropy_file no value no value
> session.entropy_length 0 0
> session.gc_divisor 100 100
> session.gc_maxlifetime 1440 1440
> session.gc_probability 0 0
> session.name PHPSESSID PHPSESSID
> session.referer_check no value no value
> session.save_handler files files
> session.save_path /var/lib/php4 /var/lib/php4
> session.serialize_handler php php
> session.use_cookies On On
> session.use_only_cookies Off Off
> session.use_trans_sid Off Off
>
> My php.ini cURL settings
> CURL support enabled
> CURL Information libcurl/7.15.3 OpenSSL/0.9.8a zlib/1.2.1.1
> libidn/0.5.18
>
> Any help would be appreciated.
>
> Kind regards,
> Luke
>

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация