验证码是一种用于计算的质询 - 响应测试,旨在确保响应由人类提供而不是由计算机生成。
我正在尝试使用 codeigniter 实现验证码功能。但它不显示验证码图像。 这是我的代码: //控制器文件:captcha.php 我正在尝试使用 codeigniter 实现验证码功能。但它不显示验证码图像。 这是我的代码: //控制器文件:captcha.php <?php class Captcha extends CI_Controller { var $controller = "captcha"; var $viewContent = array(); public function __construct() { parent::__construct(); $this->load->view('header'); } /* Function To load captcha view file */ function list_captcha() { // 加载验证码助手 $this->load->helper('captcha'); $data = array( 'img_path' => './captcha/', 'img_url' => 'localhost/demoProject/application/captcha/', 'img_width' => '150', 'img_height' => 24, 'border' => 0, 'expiration' => 7200 ); $captchaArr = create_captcha($data); $this->viewContent['captchaArr'] = $captchaArr; $this->viewContent['captchaWord'] = $captchaArr['word']; //echo"<pre>"; print_r($captchaArr);exit; $this->viewContent['refreshUrl'] = "localhost/ demoProject/" . $this->controller . "/list_" . $this->controller; $this->load->view($this->controller, $this->viewContent); $this->load->view('footer'); } } ?> //查看文件:captcha.php <script> $(document).ready(function(){ $("#captcha").blur(function(){ if($("#captcha").val()== '<?php echo $captchaWord; ?>'){ alert('Captcha match'); }else{ alert('Please enter same word like captcha image.'); } }); }); </script> <table> <tr> <td> Captcha Image </td> <td style="text-align: center"> <?php echo $captchaArr['image']; ?><br> </td> </tr> <tr> <td>Enter the same code here </td> <td style="text-align: center"> <?php $data = array('name' => 'captcha', 'id' => 'captcha'); echo form_input($data); ?> </td> </tr> <tr> <td>Can't read the image?</td> <td style="text-align: center"> <a href="<?php echo $refreshUrl; ?>">Refresh</a></td> </tr> </table> 我不明白这段代码有什么问题...... 我相信你的问题是这一行: img_url' => 'localhost/demoProject/application/captcha/', 您的 URL 缺少 http:// 协议标识符。 img_url 永远不会被验证码助手修改 - 它直接用于创建 <img> 标签,该标签会直接转储到您的 HTML 输出中。 当浏览器尝试加载图像时,它没有意识到这是一个网址,因此加载失败。 您应该修改这行代码以包含 http:// 部分。更好的是,您应该使用 CodeIgniter 的 base_url() 函数生成 URL,以便您的代码能够灵活应对未来的更改。 您可以像下面这样制作验证码。 $values = array( 'word' => '', //Generate alternate word by default. You can also set your word. 'word_length' => 6, // To set length of captcha word. 'img_path' => './images/', // Create folder "images" in root directory, and give path. 'img_url' => base_url() .'images/', // To store captcha images in "images" folder. 'font_path' => FCPATH.'system/fonts/texb.ttf', 'img_width' => '250', //Set image width. 'img_height' => 50, // Set image height. ); // "create_captcha" is function of "captcha helper", this will set array in helper library. $captcha = create_captcha($values); 注意:- font_path 应包含绝对路径。 Codeigniter 3 验证码使用 GD 库,因此必须在 php.ini 文件中启用它。 ;扩展名=gd2 => 扩展名=gd2 #删除;启用库 还要验证扩展目录 C:\xampp\php74 xt 中的库名称 如果 ext 是“php_gd2.dll”,则库将在 php.ini 中扩展=gd2 如果 ext 是“php_gd.dll”,那么库将在 php.ini 中扩展=gd
所以我想抓取一个网站,但是有一个问题,每当我尝试进入该网站时,都会出现“单击并按住”验证码,我无法解决。 我已经在 m...
我需要一些帮助将 Roblox CAPTCHA 验证集成到外部网站中,就像 2Captcha 等服务的运作方式一样。目的是由真人通过
我有一组从 Katalon 本地运行的自动化脚本(您可以将其视为 selenium webdriver 脚本)。 它会转到 yopMail(网络邮件客户端),在那里检查电子邮件。一旦运行,我...
我创建了一个Python代码来使用OCR读取验证码并进一步填写表格。我使用 pytesseract 库来识别验证码中的字符。我无法检索 c...
我正在尝试解决 hcaptcha 并且我能够获得密钥,但是我无法提交按钮,因为它是不可见的。我查看了该网站的 javascript,但它非常混乱,我无法...
我正在尝试通过Python创建一个discord注册系统。但 hCaptcha 给出了“无效响应”错误。 Discord 是这个问题的真正原因还是有其他因素? 来自
将 hcaptcha 验证码令牌提交到 Discord 以使用 selenium 创建帐户
我正在使用 python selenium 创建一个 Discord 帐户(https://discord.com/register),但它受到 hcaptcha 的保护。我有一个验证码 API (2captcha/capmonster) 来返回验证码令牌并且
目前我对图像处理和光学字符识别非常感兴趣。经过一些基本的认识和一些过滤后,我决定开始一些更困难的事情。 我正在努力
我正在开发一个项目,我想集成验证码绕过功能。我一直在为此使用 2captcha 服务,并且非常成功,直到我从 Windows 切换到 Linux(Ubu...
我有一个带有评论表单的app.vue模板: 我有一个带有评论表单的 app.vue 模板: <template> <div class="container mt-5"> <div class="card shadow"> <div class="card-header bg-primary text-white"> <h3>Contact Form</h3> </div> <div class="card-body"> <div v-if="replyingToComment" class="alert alert-secondary" role="alert"> Reply on: "{{ replyingToComment.text.substring(0, 20) }}..." </div> <form @submit.prevent="submitForm"> <!-- Other form fields --> <div class="mb-3"> <label for="username" class="form-label">UserName</label> <input type="text" v-model="comment.username" id="username" class="form-control" placeholder="Enter your username" required /> </div> <div class="mb-3"> <label for="email" class="form-label">E-mail</label> <input type="email" v-model="comment.email" id="email" class="form-control" placeholder="Enter your email" required /> </div> <div class="mb-3"> <label for="homepage" class="form-label">Home page</label> <input type="url" v-model="comment.homepage" id="homepage" class="form-control" placeholder="Enter your homepage (optional)" /> </div> <div class="mb-3"> <label for="text" class="form-label">Text</label> <textarea v-model="comment.text" id="text" class="form-control" rows="5" placeholder="Enter your message" required></textarea> </div> <div class="mb-3"> <label for="file" class="form-label">File (Max 10MB)</label> <input type="file" ref="file" id="file" class="form-control" /> </div> <!-- CAPTCHA --> <div class="mb-3"> <label for="captcha" class="form-label">Captcha</label> <img :src="captchaImage" alt="CAPTCHA Image" class="mb-2" @click="loadCaptcha" style="cursor: pointer;" /> <input type="text" v-model="captcha" id="captcha" class="form-control" placeholder="Enter CAPTCHA" required /> <input type="hidden" v-model="captchaKey" id="captchaKey" name="key" /> </div> <!-- Error message display --> <div v-if="errorMessage" class="alert alert-danger"> {{ errorMessage }} </div> <button type="submit" class="btn btn-primary">Submit</button> </form> </div> </div> </div> <div id="app"> <Comments @setParentId="setParentId" /> </div> </template> <script> import axios from 'axios'; import Comments from '../components/Comments.vue'; export default { name: 'App', components: { Comments, }, data() { return { comment: { username: '', email: '', homepage: '', text: '', parent_id: null }, captcha: '', captchaKey: '', captchaImage: '', errorMessage: '', replyingToComment: null, } }, computed: { isNewComment() { return !this.$route.path.includes('edit'); } }, async created() { await this.loadCaptcha(); if (!this.isNewComment) { const response = await axios.get(`/api/comments/${this.$route.params.id}`); this.comment = response.data; } }, methods: { async loadCaptcha() { try { const response = await axios.get('/captcha/api/math'); this.captchaImage = response.data.img; this.captchaKey = response.data.key; // Assuming the response includes the key } catch (error) { console.error('Error loading CAPTCHA:', error); } }, async submitForm() { try { const formData = new FormData(); formData.append('username', this.comment.username); formData.append('email', this.comment.email); formData.append('homepage', this.comment.homepage); formData.append('text', this.comment.text); formData.append('parent_id', this.comment.parent_id); formData.append('captcha', this.captcha); formData.append('key', this.captchaKey); // Pass the CAPTCHA key if (this.$refs.file.files[0]) { formData.append('file', this.$refs.file.files[0]); } console.log(formData); const response = await axios.post('/api/comments/validate', formData); this.$router.push('/'); } catch (error) { if (error.response && error.response.data.errors) { this.errorMessage = Object.values(error.response.data.errors).flat().join('\n'); } else { console.error(error); } } }, async setParentId(parentId) { this.comment.parent_id = parentId; try { const response = await axios.get(`/api/comments/${parentId}`); this.replyingToComment = response.data; } catch (error) { console.error('Error fetching parent comment:', error); } window.scrollTo(0, 0); } } }; </script> 提交表单后,请求将发送到 Laravel 后端,即 CommentController 验证器: public function validateComment(Request $request) { $rules = [ 'captcha' => 'required|captcha_api:' . request('key') . ',math', 'username' => 'required|string', 'email' => 'required|email', 'homepage' => 'nullable|url', 'text' => 'required|string', 'file' => 'nullable|file|max:10240', // 10MB max size ]; $validator = validator()->make(request()->all(), $rules); if ($validator->fails()) { return response()->json(['errors' => $validator->errors()], 422); } else { return $this->storeComment($request); } } 但是由于某种原因,当我提交带有正确输入的验证码的表单时,出现错误 POST localhost:9000/api/comments/validate 422 (Unprocessable Content) 和验证错误validation.captcha_api。问题是什么?我想我按照文档中的说明做了所有事情https://github.com/mewebstudio/captcha。不,我不想使用 reCaptcha,只想使用需要输入图片中的内容的验证码,或者带有数学问题的验证码,目前我只找到了 mewebstudio/captcha 所以,我明白了问题所在……重点是 vue.js 的绝对笨拙。问题在于,当 vue.js 向后端发送数据时,它会将数字转换为字符串。验证码的解法,例如数字21在后端变成了“21”,验证器说解法不正确。我将以下代码放在验证器前面: $request->captcha = intval($request->captcha);
我想从此图像中提取文本。我是opencv的新手。我已经针对各种问题尝试了各种 opencv 代码,但没有一个对我有用。 我怎样才能从中提取文本?或者也许...
在nodejs中发出POST请求将令牌放在discord服务器上
我有 2 验证码,但无法使用它,因为我不知道将验证码令牌放在哪里 我正在尝试向以下端点发出发布请求: https://discord.com/api/v9/invites/${link}\ 但是,我
有没有办法在wordpress中将验证码添加到表单中,我已经使用了一些插件,但它只允许在登录、评论表单等中添加验证码..
如何在 WordPress 网站上添加验证码,然后任何人都可以使用其上的任何页面
我们在页眉页脚中使用插件、html代码进行了很多尝试,但没有成功 我们正在努力做什么 它应该适用于 wordpress 尝试将代码放入页眉页脚脚本中 每个访客都必须...
(相关问题:Cloudflare Managed Challenge on API for SPA导致挑战不可见) 我们有一个在 Cloudflare Pages (ourapplication.com) 上运行的前端应用程序,然后是后端服务...
BigCommerce - 如何禁用/绕过 reCAPTCHA 以在测试环境中实现自动化?
我目前正在为 BigCommerce(使用 Google reCAPTCHA 的 Web 应用程序)进行自动化端到端 (E2E) 测试。 以下是我的设置的具体信息: Web应用程序:基于BigCommerce
如何禁用或绕过 Google reCAPTCHA 进行端到端测试?
我目前正在为使用 Google reCAPTCHA 的 Web 应用程序进行自动化端到端 (E2E) 测试。 Web 应用程序基于 BigCommerce。 reCAPTCHA 阻止我测试签名...
我正在实现一个在注册表单上带有验证码的网站;我的第一次。我读过几十篇关于支持和反对的论点以及所有各种实现的帖子。我很高兴...
我想做推特自动化或创建帐户,但我面临的问题是每时每刻都获得验证码。我如何在硒自动化中解决同样的问题,我尝试通过......旋转代理