当用户向表单输入名称时。如何将名称显示到另一个网页? 所以我在这里有2个网页
网页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>
</html>
网页2:
<html>
<body>
<p> echo 'welcome! $_POST
</html>
胡胡湖接下来怎么样? :(我有点新的PHP请温柔的家伙tnx
答案 0 :(得分:2)
作为现有答案的补充:要记住的一件非常重要的事情是防范Cross Site Scripting attacks。你必须假设“所有输入都是邪恶的!”。用户不仅可以输入他们的名字或类似名称,还可以输入JavaScripts(XSS甚至是持久性XSS,如果您保存输入)或部分SQL查询来执行SQL注入。
假设您的脚本接受来自GET或POST的名为txtname
的变量(这是$_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特殊字符如&lt;和&gt;不再工作了! php为转义这些危险字符提供了函数htmlspecialchars。然后它们就像文本一样显示,不能用作HTML / JavaScript。
顺便说一下,这不是针对SQL注入的保护。如果您打算稍后使用数据库,则还必须查找该数据库。此区域还有一些功能可以在将用户输入传递到数据库之前对其进行“除”。
答案 1 :(得分:1)
您缺少关闭<form>
代码,缺少添加submit
按钮,我修复了您的表单,它应该像...
<强> webpage.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>
<强> lol.php 强>
<?php echo "Welcome!" .$_POST['txtname']; ?>
的注意
您也可以使用$_REQUEST
打印姓名..
<?php echo "Welcome!" .$_REQUEST['txtname']; ?>
答案 2 :(得分: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'];
?>
答案 3 :(得分:0)
您缺少关闭<form>
代码,缺少添加submit button
<强> webpage.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>
<强> lol.php 强>
<?php
if((isset($_REQUEST['submit']) && trim($_REQUEST['submit']) =='Submit'))
{
$txtname = addslashes(trim($_REQUEST['txtname']));
echo "Welcome ".$txtname;
}
?>