浏览器刷新后尝试保留在PHP表单文本字段中输入的值时出错
我正在尝试运行一个小的PHP脚本。当我尝试运行这个小PHP行时,我遇到了一个错误: 在html代码中。根据我的教程指南,value元素中的这一行应该可以确保即使在刷新浏览器后,我也会保留输入到文本字段中的任何输入文本,但事实并非如此!出现以下错误消息: 注意:未定义变量:C:\wamp\www\pages\basicForm.php中的姓氏 第27行调用堆栈#TimeMemoryFunctionLocation 10.0007366504{main}( )..\basicForm.php:0“NAME=”姓氏“> 为什么? 以及守则:浏览器刷新后尝试保留在PHP表单文本字段中输入的值时出错,php,forms,submit,Php,Forms,Submit,我正在尝试运行一个小的PHP脚本。当我尝试运行这个小PHP行时,我遇到了一个错误: 在html代码中。根据我的教程指南,value元素中的这一行应该可以确保即使在刷新浏览器后,我也会保留输入到文本字段中的任何输入文本,但事实并非如此!出现以下错误消息: 注意:未定义变量:C:\wamp\www\pages\basicForm.php中的姓氏 第27行调用堆栈#TimeMemoryFunctionLocation 10.0007366504{main}( )..\basicForm.php:0“N
<!DOCTYPE html>
<html>
<head>
<title></title>
<?PHP
if (!empty($_POST)) {
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
print($firstname);
print($surname);
}
else {
} print( 'welcomes');
?>
</head>
<body>
<Form name ="form1" Method ="POST" Action ="basicForm.php">
<label>
<INPUT TYPE = 'TEXT' Name ='firstname' VALUE="<?PHP print $firstname ; ?>">
</label>
<p>
<label>
<INPUT TYPE="TEXT" VALUE="<?PHP print($surname); ?>" NAME="surname">
</label>
<p>
<Input Type = "Submit" Name = "Submit1" Value = "Login">
</FORM>
</body>
</html>
所有您需要分配的初始值如下
$firstname = '';
$surname = '';
依赖未初始化变量的默认值是
在将一个文件包含到另一个使用
相同的变量名。这也是
寄存器\u全局已打开。如果出现错误,将发出E\u通知级别错误
使用未初始化的变量,但在
将元素追加到未初始化的array.isset()语言
构造可用于检测变量是否已被删除
初始化
阅读更多详细信息:$namel
最初未设置:
<INPUT TYPE="TEXT" VALUE="<?PHP print($surname);
如果$\u POST
变量为空,则不会创建$姓氏
1、预定义变量:
$firstname = '';
$surname = '';
if (!empty($_POST)) {
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
}else {
}
2、使用三元语法:
$firstname = isset($_POST['firstname']) ? $_POST['firstname'] : '';
$surname = isset($_POST['surname']) ? $_POST['surname'] : '';
两者都将确保在打印变量之前创建变量
根据我的教程指南,value元素中的这一行应确保即使在刷新浏览器后,仍保留输入到文本字段中的任何输入文本
您似乎误解了您的教程。
服务器端技术在您实际向服务器发送某些内容之前无法提供帮助。
所以,看起来您只是在输入值并在提交之前刷新页面。虽然一些浏览器可能会根据自己的意愿保留输入的值,但服务器端PHP与此无关
另一个故事是,如果你用服务器上已有的值填充表单,这种填充表单将持续存在,甚至刷新。是的,这是有效的-在html代码执行之前,我只是在顶部的PHP代码中声明了变量。谢谢.p.s我希望我的教程指南能更好地通知我。我能找到你我猜是我的错误。是的,很好的一点,我将在脚本顶部PHP代码的开头声明变量