簡體   English   中英

htmlentities()無法以php形式工作

[英]htmlentities() is not working in php form

htmlentities並沒有崩潰,它應該轉義引號,但事實並非如此。

<?php
session_start();
session_regenerate_id( true );
if(isset($_REQUEST['sub'])){
    echo $name = htmlspecialchars($_REQUEST['email'] );
    echo $pswd = $_REQUEST['pswd'];
    echo $abc = htmlentities($pswd ,ENT_QUOTES, "UTF-8");
    //echo $pswd = htmlentities("hello" ,ENT_QUOTES);   
}
?>


<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Login form</h2>
  <form action="" method="POST">
    <div class="form-group">
      <label for="email">Email:</label>
      <input type="email" class="form-control" id="email" placeholder="Enter email" name="email" required>
    </div>
    <div class="form-group">
      <label for="pwd">Password:</label>
      <input type="password" class="form-control" id="pwd" placeholder="Enter password" name="pswd" required>
    </div>    
    <button type="submit" class="btn btn-primary" name="sub">Submit</button>
  </form>
</div>

</body>
</html>

您可以看到1行是注釋,如果我在htmlentites()中傳遞帶引號的值,則輸出不帶引號的值,但是如果我從表單傳遞值,則假設我傳遞了“ hello”。 “ “ 被包含在內。 並將此值存儲在php變量中,然后在htmlentites()中傳遞此變量。 它以“”顯示輸出,但應忽略引號。

兩種htmlentities函數的使用方式有所不同。 如果您想模仿第一個的工作方式,則被注釋掉的應該看起來像這樣:

htmlentities('"hello"' ,ENT_QUOTES);

在注釋掉的函數調用的示例中,引號用作函數的一部分,您傳遞了這樣的參數,因此它們甚至都不會被函數解析。

htmlentities的目的不是剝離字符,而是將字符轉義,因此您將永遠不會看到缺少符號的情況。 例如,使用html實體可以在html中打印<p>類的字符串。 如果不通過htmlentities傳遞,它將呈現一個html p標簽,如果通過htmlentities('<p>')之類的htmlentities('<p>')傳遞,它將顯示該字符串。

暫無
暫無

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

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