2012-02-07 63 views
0

我想添加一個php會話到內容中,如下所示,但它只是顯示一個空白頁面。我敢肯定逃跑是不正確的。逃離PHP字符串

echo "<meta http-equiv=\"refresh\" content=\"0;URL=$_SESSION['name'];\">"; 

這是我想要實現的。

$_SESSION['name'] = 'somepage.php' 

而且我想在會話中添加到URL中,以便其重定向到「SomePage的」。

回答

6

爲HTML報價和變量相結合的最好的辦法是做在下列方式:

echo '<meta http-equiv="refresh" content="0;URL=' . $_SESSION['name'] . ';">'; 
+0

+1本稿也將在'ヶ輛()'或'用htmlspecialchars()'來停止打破HTML輸出的意外值。 – Treffynnon 2012-02-07 13:41:05

+0

謝謝你們,幫了我很多:) – 2012-02-07 13:43:00

0

在雙引號「智能」字符串的內部,您不能僅在單個變量內部存在引用數組。

試試這個:

echo "<meta http-equiv=\"refresh\" content=\"0;URL=".$_SESSION['name'].";\">"; 
0

試試這個

echo '<meta http-equiv="refresh" content="0;URL=' . $_SESSION['name'] . ';">'; 

或使用

header("Location: http://www.example.com/" . $_SESSION['name']); 
0
echo "<meta http-equiv=\"refresh\" content=\"0;URL=".$_SESSION['name'].";\">"; 

應該正常工作。

0

也許是這樣的:

echo "<meta http-equiv=\"refresh\" content=\"0;URL=" . $_SESSION['name'] . ";\">"; 
0

我不知道爲什麼沒有人提到(s)printf

printf('<meta http-equiv="refresh" content="0;URL=%s;">', $_SESSION['name']); 

一旦你需要在文本中輸出許多變量,這會非常有用。請參閱manual

1

您可能希望瞭解如何variables are parsed inside PHP strings

// do not use single quotes 
echo "<meta http-equiv=\"refresh\" content=\"0;URL=$_SESSION[name]\">"; 

// curly brackets syntax works too but requires quotes; useful in cases when 
// variable name is immediately followed by alpha-numeric/underscore character(s) 
echo "<meta http-equiv=\"refresh\" content=\"0;URL={$_SESSION['name']}\">"; 

// curly brackets alternate syntax 
echo "<meta http-equiv=\"refresh\" content=\"0;URL=${_SESSION['name']}\">"; 

就個人而言,我喜歡使用sprintf()

echo sprintf("<meta http-equiv=\"refresh\" content=\"0;URL=%s\">", $_SESSION['name']);