我是HTML和PHP的新手,在处理一些简单项目时遇到了一个问题。假设我的网页上有一个文本栏,我想在用户输入一些文本并按下提交按钮后,在网页上显示文本栏中写的文本。我的问题是网页在第一次加载时显示输出。有没有一种方法可以防止php代码在按下提交键之前执行?
这是一个示例代码,表明我所指的问题
<html>
<body>
<form action="./index.php" method="GET">
First Name: <input type="text" name="first" maxlength="50"><br/>
<input type="submit" value="GO"/>
</form>
</body>
</html>
<?php
$text_var = $_GET[first];
echo "This was typed into text bar" . $text_var;
?>
因此,当网站加载时,"这是在文本栏中键入的"会立即输出。我希望它只有在按下提交按钮后才能输出。
谢谢。
您需要将其拆分,如果没有提交任何内容,则应显示表单,因此请检查值或提交按钮请确保保留html格式。查看标签标签来描述表单输入
<html>
<body>
<form action="./index.php" method="GET">
<label for="first">First:</label>
<input id="first" type="text" name="first" maxlength="50"><br/>
<input type="submit" value="GO"/>
</form>
<?php
if (!empty($_GET['first'])) {
//take care you escape things never output user input (XSS)
$op = htmlspecialchars($_GET['first']);
echo "This was typed into text bar" . $op;
}
?>
</body>
</html>
检查$_GET['first']
是否存在。这通常如下所示:
查看
<form action="index.php" method="post">
<!-- input fields here -->
<input type="submit" name="submit" value="GO"/>
</form>
控制器
<?php
if (isset($_POST['submit'])) {
// process post
} else {
// display the form
}
<?php
if(isset($_GET['submit'])){
$text_var = $_GET[first];
echo "This was typed into text bar" . $text_var;
}
?>