免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1430 | 回复: 4
打印 上一主题 下一主题

[十五拙作]PHP处理COOKIE [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-13 20:41 |只看该作者 |倒序浏览
第一个:带COOKIE登入


  1. <?php
  2. /********************************
  3. 文件:login.php
  4. 用途:用户带COOKIE登入
  5. 作者:七月十五
  6. 备注:注意cookie的使用及分支的选择
  7. 日期:2006-01-13
  8. ********************************/
  9. include("config.php");

  10. if($loginsubmit)        //如果提交表单
  11. {
  12.         if(!$name || !$pwd)        //判断用户输入
  13.         {
  14.                 printf("<br><a href=\"login.php\">返回</a>");
  15.                 die("<br><b>提示:</b>用户名和密码不能为空!");
  16.         }
  17.         $link=pg_connect($conn2pg) or die("<br>不能连接到PostgreSQL!");
  18.         $sql="SELECT * FROM reguser WHERE username='$name'";
  19.         $result=pg_query($sql);        //如果用户名为空,则出错,上面的if解决这个问题
  20.         if(!pg_num_rows($result))
  21.         {
  22.         printf("<br><b>提示:</b>用户 <b>%s</b> 尚未注册!<a href=\"userreg.php\">马上注册</a>",$name);
  23.         exit();
  24.         }

  25.         $row=pg_fetch_array($result) or die("<br><b>提示:</b>系统错误!");
  26.         //上面一行融合了两个SQL功能
  27.         if($pwd==$row["password"])        //如果用户输入正确
  28.         {
  29.                 if($enablecookie)        //如果用户使用了COOKIE功能则设置COOKIE为30天
  30.                 {
  31.                         setcookie("hentusercookie[0]",$name,time()+2592000);
  32.                         setcookie("hentusercookie[1]",$pwd,time()+2592000);
  33.                 }
  34.                 printf("欢迎您: <b>%s</b> !",$name);
  35.         }
  36.         else
  37.         {
  38.                 printf("<br><b>提示:</b>密码错误!请重新<a href=\"cookielogin.php\">登入</a>!");
  39.         }

  40. }
  41. else
  42. {
  43.         if(isset($_COOKIE["hentusercookie"]))        //如果有cookie
  44.         {
  45.                 $name=$hentusercookie[0];
  46.                 $pwd=$hentusercookie[1];

  47.                         if(!$name || !$pwd)        //判断用户输入
  48.                         {
  49.                                 printf("<br><a href=\"login.php\">返回</a>");
  50.                                 die("<br><b>提示:</b>用户名和密码不能为空!");
  51.                         }
  52.                         $link=pg_connect($conn2pg) or die("<br>不能连接到PostgreSQL!");
  53.                         $sql="SELECT * FROM reguser WHERE username='$name'";
  54.                         $result=pg_query($sql);        //如果用户名为空,则出错,上面的if解决这个问题
  55.                         if(!pg_num_rows($result))
  56.                         {
  57.                                 printf("<br><b>提示:</b>用户 <b>%s</b> 尚未注册!<a href=\"userreg.php\">马上注册</a>",$name);
  58.                                 exit();
  59.                         }

  60.                         $row=pg_fetch_array($result) or die("<br><b>提示:</b>系统错误!");

  61.                         if($pwd==$row["password"])        //如果用户输入正确
  62.                         {
  63.                                 printf("欢迎您: <b>%s</b> !",$name);
  64.                         }
  65.                         else
  66.                         {
  67.                                 printf("<br><b>提示:</b>密码错误!请重新<a href=\"relogin.htm\">登入</a>!");
  68.                         }
  69.         }
  70.         else        //构建表单
  71.         {
  72. ?>

  73. <table><caption>用户登入</caption><tr><td>
  74. <form action="<?php echo $PATH_INFO ?>" method="post">
  75. 用户: <input type="text" name="name"><br>
  76. 密码: <input type="password" name="pwd"><br>
  77. <input type="checkbox" name="enablecookie" checked> <a href="cookie.php" title="COOKIE隐私及安全说明">记住密码</a>&nbsp;
  78. <input type="submit" name="loginsubmit" value=" 登入 ">
  79. </form>
  80. <a href="userreg.php">注册新用户</a>&nbsp;&nbsp;<a href="forgetpwd.php">忘记密码</a>
  81. </td></tr></table>

  82. <?php

  83.         }
  84. }

  85. ?>
复制代码


第二个:COOKIE出错时重新登入

  1. <!--------------------------------------------
  2. 文件:relogin.htm
  3. 用途:COOKIE出错时重新登入,或是主页登入脚本
  4. 作者:七月十五
  5. 备注:不能用login.php,因为COOKIE的值一直带入这个脚本,出错后刷新还是提示重新登入
  6. 日期:2006-01-13
  7. ---------------------------------------------->
  8. <table><caption>用户登入</caption><tr><td>
  9. <form action="cookielogin.php" method="post">
  10. 用户: <input type="text" name="name"><br>
  11. 密码: <input type="password" name="pwd"><br>
  12. <input type="checkbox" name="enablecookie" checked> <a href="cookie.php" title="COOKIE隐私及安全说明">记住密码</a>&nbsp;
  13. <input type="submit" name="loginsubmit" value=" 登入 ">
  14. </form>
  15. <a href="userreg.php">注册新用户</a>&nbsp;&nbsp;<a href="forgetpwd.php">忘记密码</a>
  16. </td></tr></table>

复制代码

[ 本帖最后由 七月十五 于 2006-1-13 20:45 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-01-13 20:44 |只看该作者
十五是初学,大侠们有什么建议意见请提出来,十五感激不尽!

论坛徽章:
0
3 [报告]
发表于 2006-01-13 21:10 |只看该作者
用session吧:)

论坛徽章:
0
4 [报告]
发表于 2006-01-14 20:25 |只看该作者
很想用session
学习中
不过今天俺的PWD已MD5了,所以一般COOKIE先用着,学好了再用session

论坛徽章:
0
5 [报告]
发表于 2006-01-16 17:51 |只看该作者

用$_COOKIE

用$_COOKIE,要不然自己都乱套了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP