2011-09-05 50 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