放在第一行

<?php
session_start();

解决方案 »

  1.   

    在 session与cookie 前不可有输出
      

  2.   

    在根目录下建一个文件夹----tmp
      

  3.   

    我在PHP下面已经建TMP目录
    在session_start();前不能有输出? 是不是它把放在<body>下的第一行。等待!!
      

  4.   

    <?php
    session_start();
    在php程序中前面不能有输出
      

  5.   

    问题还是没有解决呀!我把代码拿出来给大家看看,
            1.php文件内容
    <?php
    session_start();
    if ($ok){
    echo "您已经登录了";
    echo $username;
    session_register(count1);
    $count1=$username;
    }
      if (session_is_registered(count1)==false)
      echo "您还没有登录!";  
    ?>     1.php  有个超级连接连到 2.php。
         2.php文件内容 <?php
     session_start();
     if (session_is_registered(count1)==false)
      echo "您还没有登录!";
      else
      echo "已经登录了$count1";
    ?>
    1。   1.php是完全正常的。2。   2.php有问题。会出现错误提示“Warning: Cannot send session 
          cache limiter - headers already sent (output started at G:\PhpWeb
          \2.php:1) in G:\PhpWeb\2.php on line 2”
          又是session_start搞的鬼。可是不加这行代码,2.php总是输出  您还没有登录!请赐教!等待!!
      

  6.   

    <?php 前面有没有空格或者别的html代码?
      

  7.   

    你的php.ini文件中
    session.save_path = [youpath];
    youpath 可能不存在.
    如果用WIN 将youpath 改为 %windir%\temp
    如果是linux 将youpaht 改为 /tmp
    也许可以.
      

  8.   

    可以看出您的服务器是WINDOWS系统你的 php.ini 文件中
    session.save_path = 你的session存放路径
    将此路径改为 C:\winnt\temp 或 c:\windows\temp
    然后重新启动httpd 服务器.
      

  9.   

    netvt(网路维他) : 您好!我的PHP.ini文件中
      .
      .
    session.save_path         = d:\php4\tmp    ; argument passed to save_handler
      .
      .
      .
    我的php4在d:\php4   而且有d:\php4\tmp    而且在d:\php4\tmp下已经产生很多的
    sess_c8ee8d2153020107a17ee19a55df03b0 相类似的文件。运行2.php时还是有上面那一段提示。继续讨论!(<?php 前面是没有代码的,不过1.php的?>后面有HTML)
      

  10.   

    不是在php目录下而是在操作系统跟目录下
      

  11.   

    我测试了你的代码,没有问题,应该是你的配置的问题,你可以升级到4.3.1
    我测试的代码如下:<?php
         
       //1.php session_start(); if ($_POST['ok']){ //echo "您已经登录了".$_POST['username'];
    $_SESSION['count1']= $_POST['username'];
    header("location:2.php"); }else{ $_SESSION['count1']= "false"; echo "您还没有登录!"; 
    }
    ?>
    <?php   //2.php session_start(); if ($_SESSION['count1']=="false"){ echo "您还没有登录!"; }else{     echo "已经登录了".$_SESSION['count1']; }
    ?>
      

  12.   

    你可以先把SESSION记录(即sess_c8ee8d2153020107a17ee19a55df03b0 相类似的文件)删除,
    再测试一下,看D:\PHP4\TMP下是否产生新的记录,如果产生,说明配置还可以通过.你也可以到 http://xingtai.51.net/download/php.ini 下载PHP 基本配置(不支持GD,BZ2等)
    修改加入你需要的dll我不知道你的 1.php 是如何链接到 2.php 的.
      

  13.   

    错啊兄弟,是在你装操作系统的那个盘的根目录下建立temp目录
      

  14.   

    哈哈,这位兄弟你没有理解session_start()的具体含义, 好好看看帮助,如果你想保存session值传到别的页面,那么在页面的开头不应该有这个函数,它相当于restart session,你保存的东西全部清空
      

  15.   

    寒一个..楼上的, 你全错了.. 如果不加session_start(), 那到下一页就真的是全空了.
      

  16.   

    以下代码已在我处测试通过, 可能是你的配置问题.
    环境:Windows2000 AD Server SP3 Apache 2.0 + PHP 4.3.0(CGI方式) +MySQL 4.0.10
    在IE 地址栏输入:
    1.  http://localhost/.../1.php?ok=mm    真
    2.  http://localhost/.../1.php?  假;;;;;;;;;;;;
    ;; 1.php  ;;
    ;;;;;;;;;;;;
     
    <?php
    session_start(); //这两行保证每次执行 1.php 
    session_destroy(); //都会产生新的SESSION
    session_start(); //开始新的SESSION
    if($ok){       //$ok 为用户信息合法性标志,为真时 ,可以注册用户登录信息了
    echo "您已经登录了";  
    echo $username;
    session_register(count1);  //建立SESSION变量
    $count1=$username; //将用户信息存入SESSION
    echo "<a href=2.php>链接到2.php</a>"; //下锚到2.php
    }
    else{ //$ok 为假 ,登录失败
    echo "您还没有登录!";  
    }?>
    ;;;;;;;;;;;;
    ;; 2.php  ;;
    ;;;;;;;;;;;;<?php
     session_start();
     if (session_is_registered(count1)) //检查用户是否登录
      echo "已经登录了$count1";
      else
      echo "您还没有登录!";
    ?>
      

  17.   

    这个问题我已经基本搞明白了。
        网路维他  谢谢了。
     
     可是我搞不懂为要先session_start();
            再session_destroy();session_start();
      

  18.   

    前面二行:session_start();
         session_destroy();
    是我在测试时用的,不这样,如果没有重新打开IE,原来的SESSION记录就会影响 1.php
    那么1.php在执行时,就不再是纯洁之身了.
    所以我加了这两句.正式做成后,去掉它们就行了.
      

  19.   

    请看帮助:
    http://www.csdn.net/help/help.asp?bigclass=论坛帮助&smallclass=快速入门#如何给分和结帖