2013-04-16 44 views
-1

我是一名PHP初学者。在我的代码中,我希望PHP脚本只有在点击提交按钮(set)时才能执行。所以当页面刷新时,isset()函数应该返回false。下面是test.php的isset()如何工作?

<html> 
<head> 
<title>A BASIC HTML FORM</title> 
<?PHP 
if (isset($_POST['Submit1'])) { 
    $username = $_POST['username']; 

    if ($username == "letmein") { 
     print ("Welcome back, friend!"); 
    } 
    else { 
     print ("You're not a member of this site"); 
    } 
} 

else{ 
$username = ""; 
} 
?> 
</head> 
<body> 
<Form name ="form1" Method ="POST" Action ="test.php"> 
    <Input Type = "text" Value ="<?php print $username?>" Name ="username"> 
    <Input Type = "Submit" Name = "Submit1" Value = "Login"> 
</form> 
</body> 
</html> 

代码点击执行脚本的登录按钮后,输出为“你是不是会员”,但是当我刷新页面,从剧本的消息仍然屏幕上。我相信isset()应该返回false,直到我再次点击按钮?代码有什么问题。 谢谢。

+0

isset()用于检查是否定义了一个变量,而不是检查按钮按下。 –

+1

如果刷新发布的表单,通常会再次发布表单数据...在当前地址之后的地址字段中按回车键,然后重新加载页面而不使用表单数据。 – jtheman

+1

当您“刷新”时,刷新页面包括POST数据(因为这是最后一次“请求”)。你将不得不重新输入页面的地址来清除它。有时候你会看到“你真的想再次发送这个表单吗?”当你刷新时提示 - 这就是为什么... – Floris

回答

2

意识到,我的意见是一个真正的答案...

当你“刷新”,刷新包括POST数据(因为这是最后的“请求”制造)的页面。你将不得不重新输入页面的地址来清除它。有时候你会看到“你真的想再次发送这个表单吗?”提示当你刷新 - 这就是为什么...

+0

好吧,谢谢..但重新输入地址是清除的唯一方法它? – mac007

+0

原则上,如果您只点击“提交”一次,后退按钮应该让您回到原始页面。尝试一下?如果这不起作用,“返回”然后是“重新加载”? – Floris

0

刷新页面将张贴已发布的表单变量,所以每次刷新页面时,你都要重新提交表单,通过这个,你总会有isset条件真正的:)

I F你需要更多的解释告诉我:)

1

isset()函数来检查,如果一个变量例子:$变量实际上是“set”和不为空。此外,在执行刷新时,还会刷新已提交的操作和已传递的表单数据。你可以这样想:

如果你去购物网站,他们告诉你不刷新,而你的订单正在处理,这意味着如果你刷新你的文章数据再次提交意味着你购买2微波,而不是1 :)

所以在编码它看起来就像这样:

if (isset('$_POST['username']')) { 
    $username = $_POST['username']; 

    if($username == 'letmein') { 
     echo ("welcome back, friend!"); 
    } 
} 

希望这有助于一点。祝你好运!此外,如果你曾经在“约翰”,并需要阅读材料看一下php manual page!