2012-01-14 154 views
-3

我有就當餅乾中的cookie文本的一個問題,我得到一個錯誤:「解析錯誤:語法錯誤,意想不到的T_VARIABLE,期待」關於 if $_COOKIE['style'] == 'styles2'PHP:餅乾解析錯誤

<?php 
    if (!isset($_COOKIE['style'])) 
     echo "<option value='styles' selected>Style 1</option> 
       <option value='styles2'>Style 2</option>"; 
    else{ 
     if $_COOKIE['style'] == 'styles2' 
      echo "<option value='styles'>Style 1</option> 
        <option value='styles2' selected>Style 2</option>"; 
     else 
      echo "<option value='styles' selected>Style 1</option> 
        <option value='styles2'>Style 2</option>"; 
    } 
?> 
+1

您錯過了包含'if'內容的括號。 – 2012-01-14 11:40:43

+0

不具建設性。 – 2012-01-14 11:51:15

+0

是的,我用幾種語言編程,我沒有看到我的錯誤,但我知道我是白癡! – Guillaume 2012-01-14 13:59:25

回答

0

不要重複自己。

<?php 
$style = ''; 
if (isset($_COOKIE['style'])) $style = $_COOKIE['style']; 
?> 
<option value='styles'>Style 1</option> 
<option value='styles2'<?php if ($style == 'styles2') { ?> selected<?php } ?>>Style 2</option> 
+0

請不要這樣做,除非您在白名單中檢查$ _COOKIE ['style']'。 XSS等待發生。 – Wrikken 2012-01-14 15:07:02

+0

它已被選中 – 2012-01-14 18:12:20

+0

選中或取消選中並不重要。或者這個問題的要點。 – Wrikken 2012-01-14 18:13:38

1

你需要圍繞表達式的括號:

if ($_COOKIE['style'] == 'styles2')