Heim >Backend-Entwicklung >PHP-Tutorial >Firefox-PHP-Bestätigungscode-Bild, mehrere Anfragen, Problem, das gelöst werden muss

Firefox-PHP-Bestätigungscode-Bild, mehrere Anfragen, Problem, das gelöst werden muss

WBOY
WBOYOriginal
2016-07-29 09:11:031226Durchsuche

?? Zusammenfassung: Bei der Verwendung der GD-Bibliothek zur Erstellung des Bestätigungscodes und der Verwendung von Firefox zum Debuggen habe ich festgestellt, dass sich das vom Browser angezeigte Bestätigungscodebild von dem von Firebug beantworteten Bestätigungscodebild unterscheidet . Die Zeichen des von Firebug beantworteten Bestätigungscodes sind die gleichen wie die in der Sitzung gespeicherten Zeichen. Es ist möglich, dass die vom Firefox-Browser angezeigte Zeichenkette die gleiche ist von Firebug sind nicht die gleichen Anfragen, daher habe ich die folgende Überprüfung durchgeführt und dieses Problem aufgezeichnet.

??Um dieses Problem besser zu überprüfen, wurde der Originalcode optimiert und geändert, was besser zur Überprüfung dieses Problems geeignet ist. Okay, beginnen wir mit dem Code.

<code><span><span><?php</span>
header(<span>"content-type:image/png"</span>);
session_start();
<span>if</span> (<span>isset</span>(<span>$_SESSION</span>[<span>'index'</span>])) {
    <span>$_SESSION</span>[<span>'index'</span>] += <span>1</span>;
}<span>else</span>{
    <span>$_SESSION</span>[<span>'index'</span>] = <span>1</span>;
}

<span>$width</span> = <span>80</span>;
<span>$height</span> = <span>20</span>;
<span>$vCodeString</span> = <span>""</span>;

<span>$vCodeString</span> = <span>"{$_SESSION['index']}"</span>;
<span>$_SESSION</span>[<span>'vcode'</span>] = <span>$vCodeString</span>;

<span>$image</span> = imagecreate(<span>$width</span>,<span>$height</span>);
<span>$background</span> = imagecolorallocate(<span>$image</span>,<span>255</span>,<span>255</span>,<span>255</span>);
<span>$fontcolor</span> = imagecolorallocate(<span>$image</span>, <span>0</span>, <span>0</span>, <span>0</span>);
imagestring(<span>$image</span>, <span>5</span>, <span>0</span>, <span>0</span>, <span>$vCodeString</span>, <span>$fontcolor</span>);
imagepng(<span>$image</span>);
imagedestroy(<span>$image</span>);

<span>?></span></span></code>

??Der Code ist sehr einfach, daher werde ich ihn hier nicht erklären.
Veröffentlichen Sie die Ergebnisse nach dem ersten Besuch und aktualisieren Sie sie auf Firefox (ohne aktivierten Firebug):

Erster Besuch: firefox php 验证码图片 多次请求问题 待解决
Klicken Sie mit der rechten Maustaste auf das Bild des Bestätigungscodes und speichern Sie es unter lokal speichern: firefox php 验证码图片 多次请求问题 待解决
Dann enthält die SESSION auch 2

nach dem Aktualisieren: firefox php 验证码图片 多次请求问题 待解决

?? Das Folgende ist das Ergebnis nach dem ersten Zugriff und der Aktualisierung auf Firefox (Firebug ist aktiviert) (es werden keine Bilder gepostet , Zu mühsam):
Erster Besuch: 1
Klicken Sie mit der rechten Maustaste auf das Bild und speichern Sie es unter: 3
Die Antwort in Firebug lautet: 3
SITZUNG enthält: 3

Zusammenfassung: Wenn das Firebug-Plug-in nicht aktiviert ist, wird die Firefox-Seite einmal angefordert (das erste von zwei Malen) und die PHP-Datei auf der Serverseite tatsächlich zweimal angefordert. Wenn das Firebug-Plug-In aktiviert ist, wird die Firefox-Seite zum ersten Mal angefordert, ich weiß nicht, wo sie zum zweiten Mal angefordert wird und Firebug zum dritten Mal angefordert wird.

Ich habe es einmal im Chrome-Browser besucht. Die Zeichen auf dem auf der Seite angezeigten Bild sind die in der SESSION gespeicherten Zeichen und der Vorgang ist normal

Abschließende Zusammenfassung: Laut Online-Recherche handelt es sich bei diesem Problem möglicherweise um einen Fehler in Firefox. Ich hoffe, dass ich den Grund dafür herausfinden kann Zukunft! ! !

End

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

Das Obige stellt das zu lösende Problem mit dem Firefox-PHP-Bestätigungscode für mehrere Anfragen vor, einschließlich des Inhalts. Ich hoffe, es wird für Freunde hilfreich sein, die an PHP-Tutorials interessiert sind.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn