This version of the page http://ua.php.net/manual/da/faq.php (0.0.0.0) stored by archive.org.ua. It represents a snapshot of the page as of 2008-06-13. The original page over time could change.
PHP: OSS - Manual
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

  • PHP Manual
  • Copyright
  • Forord
  • Kom igang
  • Installation og konfiguration
  • Sprogreferencer
  • Sikkerhed
  • Features
  • Funktionsreferencer
  • PHP at the Core: A Hacker's Guide to the Zend Engine
  • OSS
  • Appendices
General Information The future: PHP 6 and Zend Engine 3
Last updated: Sun, 25 Nov 2007

view this page in

OSS: Ofte stillede Spørgsmål

Table of Contents

  • General Information
  • Mailing lists
  • Obtaining PHP
  • Database issues
  • Installation
  • Build Problems
  • Using PHP
  • PHP and HTML
  • PHP and COM
  • PHP and other languages
  • Migrating from PHP 2 to PHP 3
  • Migrating from PHP 3 to PHP 4
  • Migrating from PHP 4 to PHP 5
  • Miscellaneous Questions


General Information The future: PHP 6 and Zend Engine 3
Last updated: Sun, 25 Nov 2007
 
add a note User Contributed Notes
OSS
vlad-45 at voliacable dot com
15-Jan-2008 12:42
I spend too much time with session_set_save_handler() but could not use it.
I work with Apache/1.3.12 (Win32) PHP/5.1.2 in local mode, if it matters. I want to use handler destroy() but it does not
work. If I need to determine all handlers, then I have a problem with write().
Function write() does not want to create and open storage file. If file created outside the
function, it still would not be opened. Actually, write() refuses to create any file. But debug output shows
that write() was called and had all the necessary data.
This problem can be solved by removing of function write(). Session will create storage file and write
data in it. But function destroy() refuses to work in any case. (It's the only function I need.)
After closing of browser the storage file remains and file
temp (debug output) is absent.
Maybe closing of browser does not mean end of session (although next time the session id will be different),
but let's see how function write() works:

<?php
function open($save_path, $session_name)
{
  global
$sess_save_path;

 
$sess_save_path = $save_path;
  echo
"$session_name successfully opened<br>"; ////debug
 
 
return(true);
}

function
close()
{
  return(
true);
}

function
read($id)
{
  global
$sess_save_path;

 
$sess_file = "$sess_save_path/sess_$id";
  return (string) @
file_get_contents($sess_file);
}

function
write($id, $sess_data)
{ echo
"write begin<br>"; //////debug
global $sess_save_path;

$sess_file = "$sess_save_path/sess_$id";
 
echo
"$sess_file<br>"; ////debug
echo "$sess_data<br>"; /////debug
 
if ($fp = @fopen($sess_file, "w"))
  {
     
$return = fwrite($fp, $sess_data);
     
fclose($fp);
      return
$return;
  }
 else
   { echo
"did not open file for writing<br>"//////debug
     
return(false);
   }
}

function
destroy($id// works in no case
{
  global
$sess_save_path;
 
$f = @fopen("./tmp/temp", "w"); /////debug
 
$sess_file = "$sess_save_path/sess_$id";

  return(@
unlink($sess_file));
}

function
gc($maxlifetime)
{
  global
$sess_save_path;

  foreach (
glob("$sess_save_path/sess_*") as $filename) {
    if (
filemtime($filename) + $maxlifetime < time()) {
      @
unlink($filename);
    }
  }
  return
true;
}

session_set_save_handler("open", "close", "read", "write", "destroy", "gc");

session_save_path("./tmp"); // temporary storage
session_name("counter");

session_start();

//$id = session_id(); //If I use these 3 strings, file will be created,
//$sess_file = "$sess_save_path/sess_$id"; // but would not be opened by write() all the same.
//$fp = @fopen($sess_file, "w");  // file will be empty

if (!(session_is_registered("someVar"))) // new session
{ echo "someVar not registered<br>"; ////debug
session_register("someVar"); // session variable
$_SESSION["someVar"] = "someValue";
}
echo
"it still works<br>"; ////debug

?>

File temp was not created.
A storage file was not created and output in browser was as follows:

counter successfully opened
someVar not registered
it still works
write begin
./tmp/sess_a4bc6c82ab15635de77bd0c9c74b13d4
someVar|s:9:"someValue";
did not open file for writing

Who could explain this phenomenom?
langjairich at yahoo dot com
17-Dec-2006 11:41
Here's how I successfully installed PHP 5.2 with my IIS 5.1:

1) Install with the option: "IIS 4+ / ISAPI"
2) Install under folder "C:\PHP\"
3) Edit the file: "C:\WINDOWS\php.ini"
   Change "doc_root = " to "doc_root = c:\inetpub\"
4) Open IIS, right click on home page, properties.
   Click "home directory" tab.
   Click Configuration, look for the extension ".php".
   The executable path should be "C:\PHP\php5isapi.dll"
5) Restart IIS.

Enjoy. I had to learn the hard way. Took me 2 days.
adriaan at vannatijne dot nl
29-Jul-2005 06:48
A dutch FAQ;
www.yapf.net
A dutch site about PHP;
www.phpfreakz.nl
dennis1989 at web dot de
28-Sep-2004 05:56
A German FAQ: http://www.php-faq.de
philip at cornado dot com
31-Dec-2002 01:07
A lot of faqts here:
http://php.faqts.com/
add a note

General Information The future: PHP 6 and Zend Engine 3
Last updated: Sun, 25 Nov 2007
 
 
show source | credits | sitemap | contact | advertising | mirror sites