2012-12-01 36 views
1

请注意,我不是很好用PHP,我也浏览网页找到我的答案,我无法找到它,所以我决定在这里问吧!PHP风格转换不工作

我有两个CSS文件:black.css和white.css;默认的是black.css,并且我希望能够在需要时更改为白色和背面。 这是我的链接样式表:

<link rel="stylesheet" type="text/css" media="screen" title="User Defined Style" `href="<?php echo (!$sitestyle)?'black':$sitestyle ?>.css" />` 

这是我的HTML代码:(中发现的index.php)

<a href="switcher.php?set=white"> 
click here to change to WHITE style!</a> 

这是我的PHP代码:(在switcher.php实测),

<?php 
setcookie ('sitestyle', $set, time()+31536000, '/', 'mydomain.com/', '0'); 
header("Location: $HTTP_REFERER"); 
?> 

当试图切换样式时,它给了我一个错误,说'该页面没有正确重定向'。

+0

什么是'$ HTTP_REFERER'?你如何设置该变量?它如何获得它的价值?注 - 这是一个提示。 –

+0

$ _GET ['set']而不是$ set? – Vultour

回答

0

尝试:

<?php 
setcookie ('sitestyle', $_GET['set'], time()+31536000, '/', 'mydomain.com[Censored :P]/', '0'); 
header("Location: $_SERVER[HTTP_REFERER]"); 
?> 
+0

这并没有工作:( 它只是刷新我的网页没有任何结果 – Tom

+0

标题(“位置:{$ _ SERVER [HTTP_REFERER]}”); – wormhit

+1

@wormhit不需要这种情况下大括号如果你这样做使用大括号,那么你就需要引用''HTTP_REFERER'' – Barmar

0

我建议你不要引用其他页面,但在同一页上做的一切:

//index.php 

<? 
    if(isset($_GET['set'])) 
     setcookie ('sitestyle', $_GET['set'], time()+31536000, '/', 'mydomain.com[Censored :P]/', '0'); 
?> 

<link rel="stylesheet" type="text/css" media="screen" title="User Defined Style" href="<?php echo (!$sitestyle)?'black':$sitestyle ?>.css" /> 

点击这里变为白色风格!

并使用更好的$ _SESSION [ ''],而不是饼干。)