2012-05-25 72 views
1

我想從URL #var值就像我的網址是mydomain.com/index.php#1,所以我想從網址其中一些研究,我得到了這個文章後1有(#)值從以下網址獲得#var http://www.stoimen.com/blog/2009/04/15/read-the-anchor-part-of-the-url-with-php/在PHP代碼錯誤

我用獲取此代碼有(#)值,這是JavaScript做工精細,但在此不php工作,我的代碼是:

<script language="javascript"> 
var query = location.href.split('#'); 
document.cookies = 'anchor=' + query[1]; 
alert(query[1]); 
</script> 
<?php 
echo $_COOKIE['anchor']; 
?> 

這個代碼給我alertJavaScript但不echo值。任何解決方案?

+0

可能重複[燦PHP讀取URL的哈希部分?](http://stackoverflow.com/questions/940905/can-php-read-the- hash-portion-of-the-url) – ManseUK

+0

@ManseUK:不是一個愚蠢的(至少)。您是否點擊了提供的鏈接? – Jon

+0

@Jon對不起 - 我點擊錯誤的複製鏈接....無法撤消投票關閉!假設我可以刪除評論 – ManseUK

回答

1

此外,你似乎設置錯誤的財產JS(這是.cookie,不.cookies):

document.cookie = 'anchor' + query[1]; 
0

您正在設置一個cookie,在下一次重新載入前不會傳遞給php。我錯了嗎?

客戶端動態是鏈條的終點。

1

您正在設置的cookie將不會被PHP看到,直到下一個頁請求。您鏈接到的文章明確聲明:

當然,是的。這工作不正常。事實上,它正在從第二次加載中正確地工作 ,但在頁面的初始加載 $ _COOKIE數組中沒有任何錨鍵。這是因爲 這部分代碼是在瀏覽器在客戶端上設置Cookie 之前執行的。

有一個「解決辦法」在那篇文章中提出的,但坦率地說:這樣的事情是垃圾,如果你想PHP讀取它,你應該根本就沒有把這個信息(只)查詢片段。

1

通過本文,你送,你必須做一個重定向,如:

<?php if (!$_COOKIE['anchor']){ ?> 
<script language="javascript"> 
    var query = location.href.split('#'); 
    document.cookie = 'anchor=' + query[1]; 
    window.location.reload(); 
</script> 
<?php } ?> 

<?php 
echo $_COOKIE['anchor']; 
?> 
+0

它不工作'window.location.reload();'我的頁面不斷重新加載,沒有任何工作 –

+0

如何修復「bjauy」後?我修復了這段代碼。現在就試試。 – Anton

0

使用這種方法來防止錯誤:

<script> 
query=location.hash; 
document.cookie= 'anchor'+query; 
</script> 

而且當然在PHP中,爆炸臨時牛逼的小狗,並得到一個值

$split = explode('/', $_COOKIE['anchor']); 
print_r($split[1]); //to test it, use print_r. this line will print the value after the anchortag