werty37 Posted May 15, 2006 Share Posted May 15, 2006 [code]<?/* $Id: Guid.php,v 1.0 2004/07/08 05:50:17 binzy Exp $ */class System{ function currentTimeMillis() { list($usec, $sec) = explode(" ",microtime()); return $sec.substr($usec, 2, 3); }}class NetAddress{ var $Name = 'localhost'; var $IP = '127.0.0.1'; function getLocalHost() // static { $address = new NetAddress(); $address->Name = $_ENV["COMPUTERNAME"]; $address->IP = $_SERVER["SERVER_ADDR"]; return $address; } function toString() { return strtolower($this->Name.'/'.$this->IP); }}class Random{ function nextLong() { $tmp = rand(0,1)?'-':''; return $tmp.rand(1000, 9999).rand(1000, 9999).rand(1000, 9999).rand(100, 999).rand(100, 999); }}class Guid{ var $valueBeforeMD5; var $valueAfterMD5; function Guid() { $this->getGuid(); } function getGuid() { $address = NetAddress::getLocalHost(); $this->valueBeforeMD5 = $address->toString().':'.System::currentTimeMillis().':'.Random::nextLong(); $this->valueAfterMD5 = md5($this->valueBeforeMD5); } function newGuid() { $Guid = new Guid(); return $Guid; } function toString() { $raw = strtoupper($this->valueAfterMD5); return substr($raw,0,8).'-'.substr($raw,8,4).'-'.substr($raw,12,4).'-'.substr($raw,16,4).'-'.substr($raw,20); }}?><?php if (!isset($_COOKIE['SessionID'])): $Guid = new Guid(); setcookie('SessionID',$Guid->toString()); echo $_COOKIE['SessionID']; else: echo $_COOKIE['SessionID']; endif; ?>[/code]I get an error like this - [b]Warning: Cannot modify header information - headers already sent[/b]Anyone, help please..Thanks Quote Link to comment Share on other sites More sharing options...
AndyB Posted May 15, 2006 Share Posted May 15, 2006 Please review [a href=\"http://www.phpfreaks.com/forums/index.php?showtopic=63199\" target=\"_blank\"]http://www.phpfreaks.com/forums/index.php?showtopic=63199[/a] Quote Link to comment Share on other sites More sharing options...
werty37 Posted May 15, 2006 Author Share Posted May 15, 2006 Thanks for the quick reply...But the error seems to have tripled...[code]Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/test/guid.php:2) in /var/www/test/guid.php on line 3Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/test/guid.php:2) in /var/www/test/guid.php on line 3Warning: Cannot modify header information - headers already sent by (output started at /var/www/test/guid.php:2) in /var/www/test/guid.php on line 87[/code]I put "session_start()" at the start of the php file..[code]<?php session_start();/* $Id: Guid.php,v 1.0 2004/07/08 05:50:17 binzy Exp $ */class System{ function currentTimeMillis()....................?>[/code]Thanks Quote Link to comment Share on other sites More sharing options...
jeremywesselman Posted May 15, 2006 Share Posted May 15, 2006 You can fix this by buffering your output.[code]<?phpob_start();?>[/code]Put this at the very top line of your script.[!--coloro:#990000--][span style=\"color:#990000\"][!--/coloro--]Jeremy[!--colorc--][/span][!--/colorc--] Quote Link to comment Share on other sites More sharing options...
werty37 Posted May 15, 2006 Author Share Posted May 15, 2006 you mean like this, right[code]<?php ob_start(); session_start();/* $Id: Guid.php,v 1.0 2004/07/08 05:50:17 binzy Exp $ */class System{ function currentTimeMillis() {................................................................................................................................................?>[/code]When i run the page, i get error like this:[b]Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/test/guid.php:2) in /var/www/test/guid.php on line 4Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/test/guid.php:2) in /var/www/test/guid.php on line 4Warning: Cannot modify header information - headers already sent by (output started at /var/www/test/guid.php:2) in /var/www/test/guid.php on line 88[/b]Thanks Quote Link to comment Share on other sites More sharing options...
jeremywesselman Posted May 15, 2006 Share Posted May 15, 2006 [code] <?phpob_start();session_start();?><?php/* $Id: Guid.php,v 1.0 2004/07/08 05:50:17 binzy Exp $ */class System{ function currentTimeMillis() {................................................................................................................................................?>[/code]Try it like this.[!--coloro:#990000--][span style=\"color:#990000\"][!--/coloro--]Jeremy[!--colorc--][/span][!--/colorc--] Quote Link to comment Share on other sites More sharing options...
werty37 Posted May 15, 2006 Author Share Posted May 15, 2006 [b]Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/test/guid.php:2) in /var/www/test/guid.php on line 4Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/test/guid.php:2) in /var/www/test/guid.php on line 4Warning: Cannot modify header information - headers already sent by (output started at /var/www/test/guid.php:2) in /var/www/test/guid.php on line 92[/b]Sorry, It didnt help...Thanks Quote Link to comment Share on other sites More sharing options...
ryanlwh Posted May 15, 2006 Share Posted May 15, 2006 if you look closer to the error message, it mentions "output started at /var/www/test/guid.php:2". that suggest you might have blank lines before line 2. remove the blank lines and the session will work.FYI: anything involving headers (header,cookie,session, etc) needs to be sent BEFORE any output. Quote Link to comment Share on other sites More sharing options...
trq Posted May 15, 2006 Share Posted May 15, 2006 Read this [a href=\"http://www.phpfreaks.com/forums/index.php?showtopic=37442\" target=\"_blank\"]sticky[/a] in the newbies forum. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.