2011-09-05 51 views
0

我有一个表格,当我将它张贴我创建了一个cookie,那么我读取cookie,如果isset然后做一些事情:PHP,回声不显示后的形式发布?

read.php

<?php if (isset($_COOKIE['voteforme'])) { 
echo 'You voted this profile'; 
} else {?> 
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<input type="hidden" name="vote_points" id="vote_points" value="1000" /> 
<input type="submit" name="votes_send" id="votes_send" value="Vote for me" /> 
</form> 
<?php } ?> 

然后我里面做一些cookie创建“创建.PHP“:

if (isset($_POST['votes_send'])){ 
$get_vote_for_me = $_POST['vote_points']; 
$get_talent_id = $_POST['talent_id']; 
$value1 = "voteforme"; 
$value2 = "voteforme_points"; 
setcookie($value1,$value2, time()+3600*24*7); 
} 

此脚本创建的cookie,我需要。基本上如果cookie设置为$_COOKIE['voteforme']则显示一条消息,否则显示该表单。

我的问题是我需要刷新页面第二次页面读取cookie并查看是否存在与否。

文件结构是index.php其中i包括read.php和 'create.php'

任何想法?

感谢

编辑: 即使我设置表单动作为所有这些文件的结果是一样的

编辑,index.php结构:

<?php 
require_once("read.php"); 
include 'create.php'; 
?> 
<!doctype html> 
<head>... 
<body>... 
<div id="tab5" class="tab_content"> 
<?php read();?> // the read.php it's a function 
</div> 
... 

read.php我很需要它它在顶部,但我实际上并没有调用git,直到在身体内部作为函数

横坑: 我也尝试添加setcookieelse语句中的“read.php”里面,但是它并没有生成

回答

0

你为什么不检查设置cookie你设置cookie后?然后继续更新您的页面。在做饼干工作之前,您无法打印任何内容。

另一种解决方案是使用JavaScript来减少重新加载的次数。

第三个想法是使用一个全局变量,除了cookie之外,您还可以检查这个全局变量 - 这样,如果您设置cookie,您将根据全局变量执行适当的代码。

+0

这是我设置它的方式。 'create.php'文件是第一个内联 – Patrioticcow

+0

你可以建立你的index.php文件的准系统结构,然后我可以更清楚地看到发生了什么。 –

+0

请看我编辑的帖子 – Patrioticcow

0

我建议你分开的文件。 POST数据到create.php并在create.php中添加一个重定向到index.php。这种方式页面将加载,它将能够读取您的cookie。

,或者你可以试试这个,如果不这样做已经:

首先包括create.php然后read.php

+0

nope,仍然没有变化 – Patrioticcow

0

setcookie()不会立即在$ _COOKIE中设置值,它只会在客户端向cookie发送另一个请求之后才存在。你可以手动设置它,如果你想。

+0

好吧,首先我检查一个不存在的cookie,然后,我提交表单(页面刷新)并创建一个cookie。如果我检查cookie,我可以看到它。但表单看不到它。 – Patrioticcow