【问题标题】:$array[] and array_push not working$array[] 和 array_push 不工作
【发布时间】: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


【解决方案1】:

我认为可能是您正在遍历的代码已经在数组中,我建议您将变量打印 $code

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多