javascript - 通过session会话,php生成的验证码点击就可以刷新,为什么?
PHP中文网
PHP中文网 2017-05-16 12:59:41
0
3
436

通过php生成验证码,然后用img标签输出。

请问,为什么有session_start()的话,onclick事件这样写,点击就会有刷新验证码的效果?(会出现新的验证码)
没有session会话,点击无效。

html代码

<img src="verifyCode.php" onclick="this.src='verifyCode.php'"/>

php

//省略验证码生成代码...

imagepng($image);//输出图片

session_start();//开始会话
PHP中文网
PHP中文网

认证0级讲师

모든 응답(3)
某草草

onclick="this.src='verifyCode.php?id='+Math_random()"/>
이것으로 충분합니다. 이미지에 임의의 숫자를 추가하면 매번 달라지며 새로 고칠 수 있습니다

曾经蜡笔没有小新

이 코드는 이미지가 생성되기 전의 session_start()인가요?
이전이라면 일반적으로 캔버스 제작 시 $_SESSION에 인증 정보를 주입해야 하는데, 세션이 열리지 않아 주입에 실패할 수 있으며, 인증코드 이미지 생성도 종료됩니다.

给我你的怀抱

세션을 사용하여 그래픽 인증 코드를 확인하는 것이 일반적인 원칙은 먼저 현재 인증 코드 a를 세션에 저장한 다음 a를 사용하여 그래픽 인증 코드를 생성하고 클라이언트에 반환하는 것입니다. 클라이언트는 서버에 인증코드 a를 입력하고, 서버는 현재 세션에 저장된 데이터를 기반으로 이를 인증한다.

이 방법을 사용하고 세션이 활성화되지 않은 경우 해당 세션에서 인증코드a를 저장 및 교체할 수 없으며 당연히 오류가 발생하게 됩니다.
(참고: 이미지 출력은 세션 활성화와 아무런 관련이 없습니다)

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿