1)cookie的路径问题
今天用php写了一个登陆的时候,登陆界面位于index.php中,提交表单至与index.php同级文件夹userManage中的u_login.php中,cookie的设置位于u_login.php中,设置如下:
setcookie("user_cookie","$username");
结果该目录下设置的cookie在index.php的页面中无法显示。
查了下资料发现cookie是面向路径的。在一个目录下的页面里设的cookie在另一个目录的页面里是看不到的。若没指定路径,默认为当前的路径。
setcookie("user_cookie","$username",time()_3600,"/");
设置cookie的时候需要加上路径。第四个参数为cookie在服务器端的有效路径,参数设置为"/",cookie在整个domain内有效,若为"/userManage/",则cookie只在domain下的/userManage/目录及其子目录内有效,默认值为设定cookie的当前目录。
2)php获取mysql数据,中文乱码
php中访问mysql,获取的中文数据结果显示为“?”。
$username = $_GET["username"];
$sql ="select * from user_info where username = '$username' ";
$result = mysql_db_query("forum","$sql");
$row = mysql_fetch_array($result);
数据库采用UTF8编码,在PHP脚本里面直接SELECT数据出来的是乱码,需要在mysql_db_query()查询前先使用:
mysql_query("SET NAMES 'utf8' ");
这样可以解决问题,但每次都需要在mysql_db_query()前面加这句话,期望找到更好的解决方法。(*^__^*)
刚找了些资料,可以使用下面的方法(参考:点击打开链接 点击打开链接 点击打开链接)
<?php
$connid=@mysql_connect("localhost","root","123") or die("Unable to connect database server" .mysql_error());
mysql_set_charset("utf8",$connid);
?>
不懂PHP,不知道为啥这种方法比上面的好
