提交后如何输入保留值,php?
How i can input keep value after submit, php?
我正在使用 php 制作帐户注册页面。我的问题是,如果有人使用已经在使用的用户名,页面将重新加载并且所有输入都将清空。
我试过这个:
<form action="register.php" method="post">
<input type="text" name="username" value="<?php if(isset($_POST['username'])) { echo $_POST['username']; } ?>" />
</br>
您已将表单的方法设置为POST,因此您不能使用$_GET
,而必须使用$_POST
。
<form action="register.php" method="post">
<input type="text" name="username" value="<?php echo htmlspecialchars($_POST['username']); ?>" />
</br>
在我看来,最好的方法是通过 AJAX 发送重复用户名的检查。使用 JavaScript 在用户完成输入后一两秒发送请求。
如果您不想使用 AJAX,请将字段值存储在会话中,并在页面重新加载时将它们吐出。这是您的页面:
<?php if(isset($_SESSION['username'])) { echo $_POST['username']; } ?>
然后,在表单中提交代码:
$_SESSION['username'] = $_POST['username'];
如果您的表单处理代码和您的表单标记位于同一个 PHP 文件中,您的代码就可以工作,但您肯定不会像那样违反关注点分离,是吗? ;)
我正在使用 php 制作帐户注册页面。我的问题是,如果有人使用已经在使用的用户名,页面将重新加载并且所有输入都将清空。
我试过这个:
<form action="register.php" method="post">
<input type="text" name="username" value="<?php if(isset($_POST['username'])) { echo $_POST['username']; } ?>" />
</br>
您已将表单的方法设置为POST,因此您不能使用$_GET
,而必须使用$_POST
。
<form action="register.php" method="post">
<input type="text" name="username" value="<?php echo htmlspecialchars($_POST['username']); ?>" />
</br>
在我看来,最好的方法是通过 AJAX 发送重复用户名的检查。使用 JavaScript 在用户完成输入后一两秒发送请求。
如果您不想使用 AJAX,请将字段值存储在会话中,并在页面重新加载时将它们吐出。这是您的页面:
<?php if(isset($_SESSION['username'])) { echo $_POST['username']; } ?>
然后,在表单中提交代码:
$_SESSION['username'] = $_POST['username'];
如果您的表单处理代码和您的表单标记位于同一个 PHP 文件中,您的代码就可以工作,但您肯定不会像那样违反关注点分离,是吗? ;)