我有连个问题,求教诸位。谢先!问题一:
我想使我的网站在同一时间只允许一个会话。例如,用户已从Firefox登录到我的网站,如果该用户想同时在同一台计算机的不同浏览器,或不同计算机上再次登录,新session将被吊销。而最初的在Firefox打开的那个session保持,如果它仍然是一个会话。
问题二:在Apache+MySQL 环境下,想让php程序运行时,从浏览器上,看不到其参数,且扩展名不是.php 而是.html,不知应如何设置环境参数/变量PHPsessionapache

解决方案 »

  1.   

    一个账户只能有一个session被保存到数据表中。用户发送过来的session值不在表中就清掉所有cookie让他去填表登录。
      

  2.   

    1、不同的浏览器进程,必然产生新的会话,更不要说不同的机器了
    你的问题应该是:如何使一个用户只登录一次
    这个问题已讨论多次了,你搜索一下就可以了。但还有一个伴随问题:如果用户没有注销该如何处理?这始终没有满意的答案2、你可以启用 urlrewrite 重写.html为.php
    也可以给apache添加一个类型
    addtype application/x-httpd-php .html
    让 php 去处理 html 文件(实际是php程序)
      

  3.   


    thank you so much!!
    不好意思,第一个问题,我在本版没有搜到相关讨论贴;
    第二个问题,如果我用的是wampServer,如何启用urlrewrite 重写.html; addtype 应该加到哪个配置文件中呢?
      

  4.   

    关于rewrite,在网站根目录建一个.htaccess文件,写入以下保存即可。<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)\.html$ $1.php [NC]
    </IfModule>
      

  5.   


    楼上会不会写错了?
    用这段代码,扩展名.php没变成.html不说,扩展名是.html的文件却全以.php来调用,报错:index.php was not found on this server
      

  6.   

    convert .php extension to .html extension in subdirectory using .htaccess file (convert .php extension to .html extension for all files in particular folder using .htaccess file)RewriteEngine on
    RewriteBase /subdirectory nameExampleRewriteEngine on
    RewriteBase /galleryRewriteCond %{THE_REQUEST} (.).php
    RewriteRule ^(.).php $1.html [R=301,L]RewriteCond %{THE_REQUEST} (.).html
    RewriteRule ^(.).html $1.php [L]
      

  7.   

    url用.php 实际文件是.html?
    这样除了rewrite,还要在httpd.conf加入addtype application/x-httpd-php .html
    不然解释不了。
      

  8.   


    实际文件是.php, url用.html
      

  9.   


    实际文件是.php, url用.html
    那這樣可以啊
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)\.html$ $1.php [NC]
    </IfModule>
    http://domain/1.html 實際是 http://domain/1.php
      

  10.   


    实际文件是.php, url用.html
    那這樣可以啊
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)\.html$ $1.php [NC]
    </IfModule>
    http://domain/1.html 實際是 http://domain/1.php
    那怎么在我这儿就是不行呢?我的所有程序在folder里都是.php, 比如默认实际调用了index.php, 而用户在浏览器里看到的却是index.html
      

  11.   

    你是把.htaccess文件放在根目录还是应用目录里
      

  12.   

    起個demo測試下
    .htaccess
    test.php
    訪問
    http://domain/test.html 看看能不能正常輸出。
      

  13.   

    起個demo測試下
    .htaccess
    test.php
    訪問
    http://domain/test.html 看看能不能正常輸出。能正常輸出, 但由test.html 出发再调用其它php程序, 浏览器里看到的依然是.php,我是要让所有的.php文件看起来都是.html
      

  14.   

    那你需要在html輸出時寫成 test.html 而非test.php,因為你寫了test.php就不受上面rewrite處理。
    例如:<a href="a.php">test</a> 要改成 <a href="a.html">test</a>
      

  15.   

    你需要寫個url_reponse()的方法包住。然後在url_response里面转。这样方便修改。
    简单例子。
    function url_response($url){
    return str_replace('.php','.test',$url);
    }<a href="<?=url_reponse('a.php')?>">test</a>