【发布时间】:2013-11-19 10:20:45
【问题描述】:
我正在测试一个简单的兑换系统,但它不起作用。 当用户输入有效代码时,它不会将其添加到“已使用”数组中。
这里是完整的代码:
<?php
$submit = $_POST['submit'];
$code = $_POST['code'];
$used = array(
"swig",
"sworgle"
);
$valid = array(
"swug",
"sweggle"
);
if($submit){
if(in_array($code, $valid)){
if(!in_array($code, $used)){
echo "Congratulations! That is a correct code. <a href='index.php'>Click here to go back</a>";
$used[] = $code;
} elseif(in_array($code, $used))
echo "This code has already been used. <a href='index.php'>Click here to go back</a>";
} elseif(!in_array($code, $valid))
echo "This code is invalid <a href='index.php'>Click here to go back</a>.";
}
else
echo "Nice try. <a href='index.php'>Go back</a>.";
?>
我试过 array_push($used, $code);但这也不起作用。
【问题讨论】:
-
您不需要将
$used保存在某处吗? -
什么? [这里是随机词,因为所有 cmets 必须有 15 个或更多字符]
-
在文件末尾添加
var_dump($used);后显示什么 -
您在代码中向
$used添加了一些内容。你说这是完整的代码;但是一旦代码完成,就没有什么可以保存数组的值了。所以下次运行代码时,$used中的两个代码将再次完全相同。 -
除了@andrewsi 指出的内容之外,我想说您通常还需要了解如何在 Web 应用程序中维护状态,因为这通常是您要尝试的做。如果不以某种方式维护状态,您的脚本将保持无状态,在这种情况下,针对脚本的每个请求重新定义
$used数组的值。
标签: php arrays array-push