[原创]高手帮忙,我的cookie无法传递! |
象做一个留言板,出现COOKIE无法传递现象!
程序包含login.php,show.php,word.php,write.php如下:
login.php//登陆
<form method="POST" action="show.php">
<p><input type="text" name="nick" size="20"><input type="submit" value="提交" name="B1"></p>
</form>
show.php//显示标题,作者,时间
<?
setcookie("nick",$_POST[nick]);
?>
<html>
<head>
</head>
<body>
<p align="right"><a href="write.php">发表新话题</a></p>
<?
if (!isset($_GET[page]))
$page=1;
else
$page=$_GET[page];
$link_ID=mysql_connect("localhost","root");
mysql_select_db("talk");
$str="select * from lyb ORDER BY chtime desc;" ;
$result=mysql_query($str, $link_ID);
$rows=mysql_num_rows($result);
$pa=ceil($rows/3);
$low=($page-1)*3;
if($page==$pa&&($rows%3)<>0){$x=($rows%3);} else {$x=3;}
if($rows==0){$x=0;}//
$str="select * from lyb ORDER BY chtime desc limit $low,$x;" ;
$result = mysql_query($str,$link_ID);
for ($n=1;$n<=$pa;$n++)
{
echo "第";
echo "<a href=show.php?page=$n>$n</a>";
echo "页 ";
}
echo "<table>";
for ($i=0;$i<$x;$i++)
{
$r=mysql_fetch_array($result);
$l=$low+$i;
echo "<tr><td><a href=word.php?page=$l>$r[title]</a></td>
<td>$r[name]</td>
<td>$r[chtime]</td></tr>";
}
echo "</table>";
mysql_close($link_ID);
?>
</body>
</html>
write.php//获取内容并存入数据库
<form method="POST" action="write.php">
<p align="center">请输入标题:<input type="text" name="title" size="48"></p>
<p align="center"> </p>
<p align="center"> <textarea rows="20" name="word" cols="100"></textarea></p>
<p align="center"> </p>
<p align="center"><input type="submit" value="提交" name="B1"> <input type="reset" value="全部重写" name="B2"></p>
</form>
<title>发表话题</title>
<body>
<?
if ($_POST[word])
{
$link_ID=mysql_connect("localhost","root");
mysql_select_db("talk");
$time=date("Y-n-j H:i:s");
$str="INSERT INTO lyb(word,name,chtime,title) values
('$_POST[word]','$_COOKIE[nick]','$time','$_POST[title]')" ;
mysql_query($str,$link_ID);
mysql_close($link_ID);
}
if ($_POST[B1])
echo "<meta http-equiv=refresh content='0; url=show.php'>";
?>
</body>
word.php//显示内容
<?php
$link_ID=mysql_connect("localhost","root");
mysql_select_db("talk");
$str="select * from lyb ORDER BY chtime desc;" ;
$result=mysql_query($str, $link_ID);
if (isset($_GET[page]))
{
mysql_data_seek($result,$_GET[page]);
$r=mysql_fetch_array($result);
echo $r[word];
}
mysql_close($link_ID);
?>
现在问题是:用户登陆并发表文章后,第一次可以正确显示,但继续发第二篇文章后却无法取得用户的名字,即无法从数据库里取得name的值,其他的正常显示,应是COOKIE的问题,请教高手其中怎么回事,应如何解决?多谢多谢
还有,用SESSION的话,也有两种情况:
如果用session start();$nick=$_POST[nick];session_register(nick);则可以显示用户名,不过要是在当前用户没关闭浏览器时,用另一用户登陆并发表文章,则显示出来的用户名仍为第一个用户名,其他正常;
如果直接用session start();$_SESSION[nick]=$_POST[nick];则结果跟COOKIE一样,请高手们指教啊!我郁闷了一晚上了
|
|
|