如何制作一个非常基本的php验证码

如何制作一个非常基本的php验证码,php,random,numbers,captcha,Php,Random,Numbers,Captcha,所以,我基本上是做一个忘记密码页面的网站。我想添加一个验证码系统。现在,我不想要任何不能在5分钟内完成的东西,只要保持简短。我想核实一下我的表格。我想要的是一个随机数,在没有图像的情况下生成和显示。那么,我该怎么做呢?我以前尝试过制作验证码系统,但是每当我在表单中提交内容时,随机数就会改变。您可以让用户做一个简单的加法问题。它将阻止大多数自动提交 它的基本原理如下: $a = rand(1,10); $b = rand(1,10); $c = $a + $b; //throw this into

所以,我基本上是做一个忘记密码页面的网站。我想添加一个验证码系统。现在,我不想要任何不能在5分钟内完成的东西,只要保持简短。我想核实一下我的表格。我想要的是一个随机数,在没有图像的情况下生成和显示。那么,我该怎么做呢?我以前尝试过制作验证码系统,但是每当我在表单中提交内容时,随机数就会改变。

您可以让用户做一个简单的加法问题。它将阻止大多数自动提交

它的基本原理如下:

$a = rand(1,10);
$b = rand(1,10);
$c = $a + $b; //throw this into a session var and check submission against it
echo "<p>$a + $b = <input type='text'/></p>";
$a=rand(1,10);
$b=兰特(1,10);
$c=$a+$b//将其放入会话变量并对照它检查提交
回声“$a+b=

”;
超级简单的答案:

  • 加载表单页面时,创建会话(
    session\u start()
  • 生成一个随机数并将其保存到会话变量:
    $\u会话['captcha']=[random\u number]

  • 基于会话字符串创建图像(您需要
    GD
    或类似的库)。只要让它创建一个图像并根据
    $\u会话['captcha']
    的值在上面打印一个文本字符串即可。如果你想变得有趣,试着切换字体、颜色和旋转字母。记住,会话变量存储在服务器上的临时文件(或DBs)中,因此它们在包含会话的每个文件中都可用)
  • 有一个captcha字段供用户填写
  • 提交时,将
    $\u POST['captcha\u field']与$\u会话['captcha']
    进行比较。如果它们相同,则继续,否则强制它们重新填写验证码字段

  • 您可以将您的随机数存储在会话变量中,即
    $\u会话['captcha\u code']
    ,并对照此值进行检查。
    此值是特定于用户的,不会在多个请求中更改。有关更多信息,请参见。

    请向我们展示您可以尝试的方法:。
    $\u会话['captcha']
    需要是一个数组,因为如果用户打开多个页面并提交以前的任何页面(而不是最后一页),则该页面将无效。我已经用令牌尝试过了,它只接受最后打开的页面,因为它替换了旧值并创建了一个数组。我解决了我的问题。@Class-这主意不错