<td width="21%" align="center"><a href="'admin_product_species.php?typeid'=<?php echo $array['type_id']?>&types=<?php echo $array['type_name']?>&a=xg">修改</a></td>
现在我想把admin_product_species.php?typeid'=<?php echo $array['type_id']?>&types=<?php echo $array['type_name']?>进行加密。请问如何解决。还有当我加密后如何把$typeid传递到  if($_POST['action']=="修改")
  {
     $typen=$_POST['typename2'];
 $typeid=$_POST['typeid'];
  if (mysql_query("update product_species set type_name='$typen' where type_id=$typeid"))
{
  echo "<script>alert('类别修改成功!');location.href='admin_product_species.php';</script>";
}
else{
              echo "<script>alert('类别修改失败!');history.go(-1)</script>";
        }
  }

解决方案 »

  1.   

    不知道楼主为什么非要把typeid进行加密,既然是很重要的东西,就不应该写成url?id=***这种,即使加密也不安全,直接post传就不会被看见了。要是非要加密,可以上网查一下php加密解密机制,以及例子,应该有很多。个人认为不应该这么传值(如果不想被看到的值)。
      

  2.   

    urlencode
    =====================urlencode -- 编码 URL 字符串
    描述
    string urlencode ( string str)
    返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页: 例子 1. urlencode() 示例<?php
    echo '<a href="mycgi?foo=', urlencode($userinput), '">';
    ?>  
     注意:小心与 HTML 实体相匹配的变量。像 &amp、&copy 和 &pound 都将被浏览器解析,并使用实际实体替代所期待的变量名。这是明显的混乱,W3C 已经告诫人们好几年了。参考地址:http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2 PHP 通过 arg_separator .ini 指令,支持将参数分割符变成 W3C 所建议的分号。不幸的是大多数用户代理并不发送分号分隔符格式的表单数据。较为简单的解决办法是使用 &amp; 代替 & 作为分隔符。你不需要为此修改 PHP 的 arg_separator。让它仍为 &,而仅使用 htmlentities(urlencode($data)) 对你的 URL 进行编码。 例子 2. urlencode() 与 htmlentities() 示例<?php
    echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">';
    ?>  
     
      

  3.   

    urlencode这种加密是起不到作用的,建议自己写一个简单的加密解密方法