簡體   English   中英

如何在HTML標記中使用php參數?

[英]How can I use a php parameter in HTML markup?

因此,在嘗試提出這個問題之前,我已經嘗試過對此進行研究。 鑒於我有一個index.php和一個存儲用戶名的cookie(另存為$ name),大多數答案告訴我這樣做很簡單:

echo '<h3>'.$name.'</h3>'

但這對我不起作用,我認為這是因為我先對if語句執行了奇怪的語法,並且我想在此if語句中使用參數。 我的確切代碼看起來像這樣:

<?php 
  //store the cookie
  $name=$_COOKIE['user'];
  //check that it is set
  if(isset($_COOKIE['user'])): 
    <section id="login">
      <h1> Welcome</h1>
      echo '<h3>'.$name.'</h3>';
    </section>
  else: //prompt to login
  endif;
?>

它旨在向登錄的用戶顯示歡迎消息,並按名稱對他們進行處理,否則提示用戶登錄。

所以我的問題是: 為什么參數根本不反映? (在加載頁面時不顯示任何內容),如何使它按預期工作?

ps。 請不要擔心使用cookies來做到這一點等,這是故意脆弱的安全風險。

pps。 我100%確信已設置cookie,因此我使用cookie瀏覽器對其進行了查看。

它不起作用,因為前兩行是無效的PHP,因此它將引發錯誤並停止工作。

如果要使用echo方法,則正確的語法為:

  echo '<section id="login">';
  echo '<h1> Welcome</h1>';
  echo '<h3>'.$name.'</h3>';

重要的是永遠不要像插入原始HTML那樣插入外部數據 這會使您容易受到XSS攻擊。 將輸入視為純文本並將其轉換為HTML,然后再將其輸出為HTML文檔。

$name_html = htmlspecialchars($name);
echo '<section id="login">';
echo '<h1> Welcome</h1>';
echo '<h3>'.$name_html.'</h3>';

您可以使用變量插值使代碼更易於閱讀:

$name_html = htmlspecialchars($name);
echo '<section id="login">';
echo '<h1> Welcome</h1>';
echo "<h3>$name_html</h3>";

而且,當輸出大塊HTML時,完全退出PHP模式更容易:

$name_html = htmlspecialchars($name);
?>
<section id="login">
<h1> Welcome</h1>
<h3><?=$name_html?></h3>
<?php

在旁邊

嘗試使用cookie 之前 (而非之后),請檢查cookie是否已設置!

if(isset($_COOKIE['user'])): 
  $name=$_COOKIE['user'];

您應該這樣使用php + html:

<?php $var = 'my string'; ?>

<?php if ($var == 'my string') : ?>
    <h1><?php echo $var; ?></h1>
<?php endif;?>

這會破壞if語句,使您可以在條件語句之間添加html,而不必從php回顯和html

您應該發布遇到的任何錯誤-但是您不能只在php內編寫html,而不能將其回顯或暫時終止php。

<?php 
//store the cookie
$name=$_COOKIE['user'];
//check that it is set
  if(isset($_COOKIE['user'])):?> 
    <section id="login">
      <h1> Welcome</h1>
     <?php echo '<h3>'.$name.'</h3>'; ?>
    </section>
 <?php else: //prompt to login
endif;
?>

要僅在php語句為true時顯示HTML代碼,只需在打開if語句后立即關閉php標記,然后將HTML代碼放在其中。

<?php 
    //store the cookie
    $name=$_COOKIE['user'];
    //check that it is set
    if(isset($_COOKIE['user'])) {
?>
<section id="login">
  <h1> Welcome</h1>
  <h3><?php echo $name; ?></h3>
</section>
<?php
   } else {
       echo 'Please login';
   }
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM