Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在提交后输入keep值,php?_Php_Html_Reload - Fatal编程技术网

如何在提交后输入keep值,php?

如何在提交后输入keep值,php?,php,html,reload,Php,Html,Reload,我正在用php制作帐户注册页面。我的问题是taht,如果有人使用已经在使用的用户名,页面将重新加载,所有输入都将为空 我试过这个: <form action="register.php" method="post"> <input type="text" name="username" value="<?php if(isset($_POST['username'])) { echo

我正在用php制作帐户注册页面。我的问题是taht,如果有人使用已经在使用的用户名,页面将重新加载,所有输入都将为空

我试过这个:

<form action="register.php" method="post">
<input type="text" name="username" value="<?php if(isset($_POST['username'])) { echo $_POST['username']; } ?>" />
</br>


您已将表单的方法设置为POST,因此不能使用
$\u GET
,而必须使用
$\u 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']; } ?>

如果您的表单处理代码和表单标记位于同一个PHP文件中,那么您的代码可以工作,但您肯定没有违反这样的关注点分离,是吗?;)

使用会话或更有效的方式来使用AJAX和jQuery
$_SESSION['username'] = $_POST['username'];