0

当用户在表单中输入名称时。如何将名称显示到另一个网页?所以我这里有 2 个网页

网页一:

 <html>
<body>   
  <form action="lol.php" method="post"  <div id="name">
      <label for="txtname">name: </label>  <br/>
      <input type="text" name="txtname" value="" />  </div>
</html>

网页二:

    <html>
    <body>
    <p> echo 'welcome! $_POST 
</html>

huhuhu 那么接下来呢?:( 我对 php 有点陌生,请温柔的家伙 tnx

4

4 回答 4

2

作为现有答案的补充:要记住的一件非常重要的事情是防止跨站点脚本攻击。您必须假设“所有输入都是邪恶的!” . 用户不仅可以输入他们的名字或类似的东西,还可以输入 JavaScript(XSS 甚至持久性 XSS,如果您保存输入)或部分 SQL 查询来执行 SQL 注入。

假设您的脚本接受txtname从 GET 或 POST 调用的变量(这就是$_REQUEST意思)。你有这个代码:

<?php echo "Welcome!" .$_REQUEST['txtname']; ?>

可以建立这样的链接:

http://yourhost/yourscript.php?txtname=<script%20type="text/javascript">alert("This%20might%20also%20be%20an%20evil%20script!");</script>

然后使用 URL 缩短服务来构建一个看起来无害的链接,重定向到上述攻击者的 URL,例如

http://short.xy/dfudf7

这会将用户重定向到上面的恶意 JavaScript 链接。然后您的网站将执行任何 JavaScript 或嵌入邪恶iframes或攻击者想要的任何内容。您的用户/客户只会在地址栏中看到您的网站,并且会认为所有来自您的内容,尽管黑客在他们查看的网站中添加了恶意部分。

因此,无论何时您输出直接或间接来自用户输入的内容(无论是从数据库读取$_REQUEST还是从数据库中获取),您都必须确保 HTML 特殊字符(如 < 和 >)不再起作用!php 提供函数htmlspecialchars转义这些危险字符。然后它们会像文本一样显示,而不像 HTML/JavaScript 那样起作用。

顺便说一句,这不是针对 SQL 注入的保护措施。如果您打算稍后使用数据库,则还必须寻找它。同样在这个领域,有一些功能可以在将用户输入传递到数据库之前“确定”用户输入。

于 2013-10-06T11:36:20.973 回答
1

您缺少关闭<form>标签,缺少添加submit按钮,我已经修复了您的表单,它应该像......

网页.html

<form action="lol.php" method="post">
<div id="name">
      <label for="txtname">name: </label>  <br/>
      <input type="text" name="txtname" value="" />
      <input type="submit">
</div>
</form>

大声笑.php

<?php echo "Welcome!" .$_POST['txtname']; ?>


笔记

您也可以使用$_REQUEST打印名称..

<?php echo "Welcome!" .$_REQUEST['txtname']; ?>
于 2013-10-06T05:15:36.053 回答
0

您缺少关闭<form>标签,缺少添加submit button

网页.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>webpage</title>
</head>
<body>
    <form action="lol.php" method="post" name="form" id="form">
        <div id="name">
          <label for="txtname">name: </label>
          <br/>
          <input type="text" name="txtname" id="txtname" />
          <input type="submit" name="submit" id="submit" value="Submit">
        </div>
    </form>
</body>
</html>

大声笑.php

<?php
if((isset($_REQUEST['submit']) && trim($_REQUEST['submit']) =='Submit'))
{
    $txtname = addslashes(trim($_REQUEST['txtname']));

    echo "Welcome ".$txtname;
}
?>
于 2013-10-06T06:43:15.230 回答
0

页 : 1

<html>
<body>   
  <form action="lol.php" method="post"  <div id="name">
      <label for="txtname">name: </label>  <br/>
      <input type="text" name="txtname" value="" />  </div></form>
</html>

第2页

<?php
echo "Welcome ".$_POST['txtname'];
?>
于 2013-10-06T05:15:37.150 回答