<dfn id="aorh5"></dfn> style=\"background-color:#ddd; <\/span>\"<\/span><\/span>><\/span>\n<\/span>\n <\/span> create_image();\n<\/span><\/span> display();\n<\/span><\/span> \/***** definition of functions *****\/\n<\/span><\/span> function display()\n<\/span><\/span> {\n<\/span><\/span> ?><\/span>\n<\/span>\n style=\"text-align:center;<\/span>\"<\/span><\/span>><\/span>\n<\/span> ><\/span>TYPE THE TEXT YOU SEE IN THE IMAGE<\/h3<\/span>><\/span>\n<\/span> ><\/span>This is just to check if you are a robot<\/b<\/span>><\/span>\n<\/span>\n style=\"display:block;margin-bottom:20px;margin-top:20px;<\/span>\"<\/span><\/span>><\/span>\n<\/span> src=\"image.png\"<\/span>><\/span>\n<\/span> <\/div<\/span>><\/span>\n<\/span> \/\/div1 ends\n <\/div<\/span>><\/span> \/\/div2 ends\n<\/span>\n <\/span> }\n<\/span><\/span>\n<\/span> function create_image()\n<\/span><\/span> {\n<\/span><\/span> $image = imagecreatetruecolor(200, 50);\n<\/span><\/span> imagepng($image, \"image.png\");\n<\/span><\/span> }\n<\/span><\/span>\n<\/span> ?><\/span>\n<\/span> <\/body<\/span>><\/span>\n<\/span><\/span>?><\/span><\/span><\/pre>\n

    生成隨機線。 <\/p>\n

    現(xiàn)在,我們實際上是從使驗證碼的失真部分開始。在PHP中,線從起點(x1,y1)到終點(x2,y2)生成?,F(xiàn)在,當我們希望線條觸摸盒子的兩端時,我們將保持坐標為,即我們的盒子的完整寬度。 坐標將被隨機生成。這將僅創(chuàng)建一個隨機行。我們將通過將此功能放入for循環(huán)中來生成多行。 \"帶有PHP和GD的簡單驗驗\"\n<\/y1><\/x1><\/p>\n

    imageLine()函數(shù)將x1,x2,y1,y2坐在該順序中作為參數(shù),除了線的圖像參考和顏色。線色已被分配,就像在上一步中分配了背景顏色一樣。 <\/h3>\n

    > y坐標是rand()*p給出的,因為這是我們盒子的高度,並且始終將返回50以下的值。您可以使用rand(0,50)。它們將產(chǎn)生相同的輸出範圍。 <\/p>\n

    $background_color = imagecolorallocate($image, 255, 255, 255);  \n<\/span>imagefilledrectangle($image,0,0,200,50,$background_color);<\/span><\/pre>\n

    <\/p>\n\n

    生成隨機點。 <\/p>\n

    隨機點將以與隨機線相同的方式生成。使用的函數(shù)是ImagesetPixel()。此函數(shù)採用將點將點放在框中的坐標值的值。 \"帶有PHP和GD的簡單驗驗\">\n<\/p>\n

    >通過使用rand()* 0隨機生成X坐標,因為這是我們盒子的寬度,這將始終返回200歲以下的值。您可以使用RAND(0,200)。它們將產(chǎn)生相同的輸出範圍。 y坐標的生成如線步中。<\/h3>\n

    \"帶有PHP和GD的簡單驗驗\" <\/p>\n

    生成隨機文本<\/h3>\n

    >我們將隨機指向字符串中的一個位置(其中包含在下層和高層中的字母),並將其分配給變量$ letter<\/p>>\n

    <\/span>session_start();\n<\/span><\/span>?><\/span>\n<\/span>\n    ><\/span>demo.php<\/title<\/span>><\/span>\n<\/span>    
    

    国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

    style=\"background-color:#ddd; <\/span>\"<\/span><\/span>><\/span>\n<\/span>\n <\/span> create_image();\n<\/span><\/span> display();\n<\/span><\/span> \/***** definition of functions *****\/\n<\/span><\/span> function display()\n<\/span><\/span> {\n<\/span><\/span> ?><\/span>\n<\/span>\n style=\"text-align:center;<\/span>\"<\/span><\/span>><\/span>\n<\/span> ><\/span>TYPE THE TEXT YOU SEE IN THE IMAGE<\/h3<\/span>><\/span>\n<\/span> ><\/span>This is just to check if you are a robot<\/b<\/span>><\/span>\n<\/span>\n style=\"display:block;margin-bottom:20px;margin-top:20px;<\/span>\"<\/span><\/span>><\/span>\n<\/span> src=\"image.png\"<\/span>><\/span>\n<\/span> <\/div<\/span>><\/span>\n<\/span> \/\/div1 ends\n <\/div<\/span>><\/span> \/\/div2 ends\n<\/span>\n <\/span> }\n<\/span><\/span>\n<\/span> function create_image()\n<\/span><\/span> {\n<\/span><\/span> $image = imagecreatetruecolor(200, 50);\n<\/span><\/span> imagepng($image, \"image.png\");\n<\/span><\/span> }\n<\/span><\/span>\n<\/span> ?><\/span>\n<\/span> <\/body<\/span>><\/span>\n<\/span><\/span>?><\/span><\/span><\/pre>\n

    放入循環(huán)時,看起來像<\/p>\n

    $background_color = imagecolorallocate($image, 255, 255, 255);  \n<\/span>imagefilledrectangle($image,0,0,200,50,$background_color);<\/span><\/pre>\n

    我們將解釋行<\/p>>\n

    $line_color = imagecolorallocate($image, 64,64,64); \n<\/span>for($i=0;$i<10;$i++) {\n<\/span>    imageline($image,0,rand()%50,200,rand()%50,$line_color);\n<\/span>}<\/span><\/pre>\n

    在下一節(jié)中。 <\/p>\n

    函數(shù)Imagestring()在我們的圖像中寫入文本。它有6個參數(shù):<\/p>\n

      \n
    1. >圖像參考。 <\/li>\n文本的字體大?。ㄗ疃嗫梢允?)。
    2. \n<\/li> x坐標(每個字母比例更改)。
    3. \n<\/li>y坐標(保持相同,儘管我們也可以隨機更改此)。
    4. \n<\/li>>要編寫的實際字符串。
    5. \n文本的字體色。 <\/li>\n
    6. \n如果您希望具有更大的字體和不同的字體樣式,<\/li>>也可以使用函數(shù)imagettftext()。對於文本的角度和字體樣式,它還需要2個其他論點。 <\/ol>\n

      X坐標的計算是通過檢查完成的。大概,這些字母的間距約為35個像素(5($ i*30)),其中$ i = 0,1,2,3,4,5,6。這是因為如果我們將這個值保持在15-20px左右,則可能會有兩個字母重疊。如果該值超過40px,則完全不適合盒子。\n<\/p>這將生成6個字母驗證碼文本。我們始終可以通過更改由於簡單性(例如顏色,Y-Coordine等)來創(chuàng)造更多的隨機性,例如\n

      最終的驗證碼看起來像這樣<\/p>>\n

      <\/p>

      \n<\/p>每次您刷新頁面時,在驗證碼中寫的文本都會更改。

      \n可以通過使用像素或更改顏色或大小來創(chuàng)建設(shè)計來實現(xiàn)更多隨機性。 \"帶有PHP和GD的簡單驗驗\">\n<\/p>驗證

      \n
      >在這裡採取用戶的響應(yīng),然後在處理後,他\/她會收到答復(fù)。首先,使用輸入文本框和提交按鈕製作一個簡單的表單。根據(jù)複雜的Web應(yīng)用程序的要求,可以有許多方法來處理驗證碼。但是,出於此示例,請保持簡單,我們將在同一頁面上對其進行處理。 <\/p>\n

      >在上一個代碼段中未解釋的兩行現(xiàn)在開始發(fā)揮作用:>\n<\/ancy>\n<\/h2>\n

      $ word。 = $ letter; - 串聯(lián)操作員。用於一個接一個地附加所有單個字母,生成6個字母的單詞。 <\/p>\n

      $ _ session ['catcha_string'] = $ word;我們的驗證碼字符串存儲在會話變量中,該變量將用於驗證目的。 <\/p>>\n

        \n
      1. 我們將更改display()的定義以添加類似形式的結(jié)構(gòu)。 >\n<\/ancy>\n<\/li>將使用兩個提交按鈕,一個將字符串提交,另一個提交按鈕刷新頁面。
      2. \n<\/li>>將在兩個關(guān)閉的DIV標籤之間添加以下行(請參閱上一個display()函數(shù)中的註釋)<\/ol>>
        <\/span>session_start();\n<\/span><\/span>?><\/span>\n<\/span>\n    ><\/span>demo.php<\/title<\/span>><\/span>\n<\/span>     style=\"background-color:#ddd; <\/span>\"<\/span><\/span>><\/span>\n<\/span>\n    <\/span>    create_image();\n<\/span><\/span>    display();\n<\/span><\/span>    \/***** definition of functions *****\/\n<\/span><\/span>    function display()\n<\/span><\/span>    {\n<\/span><\/span>        ?><\/span>\n<\/span>\n         style=\"text-align:center;<\/span>\"<\/span><\/span>><\/span>\n<\/span>            ><\/span>TYPE THE TEXT YOU SEE IN THE IMAGE<\/h3<\/span>><\/span>\n<\/span>            ><\/span>This is just to check if you are a robot<\/b<\/span>><\/span>\n<\/span>\n             style=\"display:block;margin-bottom:20px;margin-top:20px;<\/span>\"<\/span><\/span>><\/span>\n<\/span>                 src=\"image.png\"<\/span>><\/span>\n<\/span>            <\/div<\/span>><\/span>\n<\/span>            \/\/div1 ends\n        <\/div<\/span>><\/span>                          \/\/div2 ends\n<\/span>\n    <\/span>    }\n<\/span><\/span>\n<\/span>    function  create_image()\n<\/span><\/span>    {\n<\/span><\/span>        $image = imagecreatetruecolor(200, 50);\n<\/span><\/span>        imagepng($image, \"image.png\");\n<\/span><\/span>    }\n<\/span><\/span>\n<\/span>    ?><\/span>\n<\/span>    <\/body<\/span>><\/span>\n<\/span><\/span>?><\/span><\/span><\/pre>\n

        >在進一步移動之前,我們必須知道何時顯示以及何時不顯示輸入框。它將僅顯示<\/p>>\n

          \n
        1. 如果頁面剛剛加載。 <\/li>\n
        2. 如果用戶的答案不正確。 <\/li>\n<\/ol>\n\n

          >每次單擊提交按鈕時,使用$標誌設(shè)置為“ 1”來滿足第一個條件。最初,它已設(shè)置為任何其他值。通過檢查我們的會話變量中存儲的值是否與用戶輸入相同(請參見下面的代碼)來實現(xiàn)第二個條件。 <\/p>\n為了實現(xiàn)這一目標,我們將在本文開頭替換開始步驟的以下幾行:>\n

          \n<\/p> with:

          $background_color = imagecolorallocate($image, 255, 255, 255);  \n<\/span>imagefilledrectangle($image,0,0,200,50,$background_color);<\/span><\/pre>\n

          \n<\/p>請注意,函數(shù)create_image()和display()僅按照上述2個條件來調(diào)用。

          $line_color = imagecolorallocate($image, 64,64,64); \n<\/span>for($i=0;$i<10;$i++) {\n<\/span>    imageline($image,0,rand()%50,200,rand()%50,$line_color);\n<\/span>}<\/span><\/pre>\n

          >我們需要上一頁的會話變量,因此會話不會在此處銷毀。關(guān)閉瀏覽器窗口後,會話將自動銷毀。 <\/p>>\n

          驗證碼看起來像<\/p>\n

          <\/p>

          \n\"帶有PHP和GD的簡單驗驗\"如果輸入不正確,則只有然後再次提示用戶。 <\/p>>\n

          <\/p>

          \n\"帶有PHP和GD的簡單驗驗\"如果輸入正確,則將向用戶顯示消息。 <\/p>>\n

          <\/p>

          \n\"帶有PHP和GD的簡單驗驗\">有一個小警告 - 當用戶按下返回按鈕時,瀏覽器緩存中的任何圖像都不會重新加載,而頁面則可以。在發(fā)布請求中,瀏覽器返回按鈕將顯示一個“過期的文檔”頁面,但是當請求獲取時,圖像不會再生。 <\/p>>\n

          解決方案很簡單 - 每次創(chuàng)建圖像的唯一名稱,以便瀏覽器在緩存中找不到它們。我們將在創(chuàng)建和顯示在瀏覽器中時,將一個唯一的字符串通過內(nèi)置時間()函數(shù)返回給我們。 <\/p>。\n

          >在您開始會話的位置下方添加此行:<\/p>\n

          \n<\/p>>用

          $pixel_color = imagecolorallocate($image, 0,0,255);\n<\/span>for($i=0;$i<1000;$i++) {\n<\/span>    imagesetpixel($image,rand()%200,rand()%50,$pixel_color);\n<\/span>}  <\/span><\/pre>>替換顯示()函數(shù)中的img src標籤\n

          \n<\/p>以及我們在create_image()函數(shù)中創(chuàng)建png映像的部分也將被

          $letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n<\/span>$len = strlen($letters);\n<\/span>$letter = $letters[rand(0, $len-1)];\n<\/span>\n$text_color = imagecolorallocate($image, 0,0,0);<\/span><\/pre>替換\n

          \n<\/p>現(xiàn)在,圖像將被稱為Image39342015.png。此過程將隨著頁面的刷新而創(chuàng)建的圖像多次,這可能會浪費大量的磁盤空間,因此,我們將確保在創(chuàng)建圖像之前,刪除了PNG擴展名的所有其他圖像。在調(diào)用ImagePNG()函數(shù)之前添加以下內(nèi)容。

          for ($i = 0; $i< 6;$i++) {\n<\/span>    $letter = $letters[rand(0, $len-1)];\n<\/span>    imagestring($image, 5,  5+($i*30), 20, $letter, $text_color);\n<\/span>    $word.=$letter;\n<\/span>}\n<\/span>$_SESSION['captcha_string'] = $word;<\/span><\/pre>\n

          \n在生產(chǎn)應(yīng)用程序中,只需確保您隔離存儲驗證碼圖像的文件夾,其他有用的圖像也可能會被刪除。 <\/p>\n

          $word.=$letter;\n<\/span>$_SESSION['captcha_string'] = $word;   <\/span><\/pre>>在此處下載完整的代碼。  

          <\/p>\n

          結(jié)論<\/h2>\n在PHP中製作各種類型的驗證碼非常容易。本文介紹了用於創(chuàng)建標準驗證碼的三個基本內(nèi)容 - 形狀,失真和文本。本文是概念證明,本文介紹的代碼不應(yīng)在生產(chǎn)中使用,尤其是因為存在諸如recaptcha之類的優(yōu)秀替代方案,這也支持聲音輸出以幫助有聽力障礙的人。我們希望您發(fā)現(xiàn)這篇文章很有趣。在下面留下您的評論和反饋!

          >\n\n\n\n<\/p>經(jīng)常詢問的問題(常見問題解答)關(guān)於帶有PHP GD

          的簡單驗證\n\n\n\n<\/h2>>如何自定義驗證碼的外觀?

          <\/h3>>可以通過修改PHP代碼來自定義驗證碼的外觀。您可以更改字體,顏色,尺寸,甚至可以更改驗證碼的背景。例如,要更改字體,您可以使用imagettftext()函數(shù)並在參數(shù)中指定字體文件。要更改顏色,您可以使用ImageColorallocate()函數(shù)並指定所需顏色的RGB值。請記住,自定義不僅使您的驗證碼更加美觀,而且更加安全地抵抗機器人。

          ><\/p>>如何使我的驗證碼更安全?

          >有幾種使驗證碼更安全的方法。一種方法是使用上和下情況的字母數(shù)字字符的混合。這增加了可能的組合數(shù)量,因此機器人更難猜測。您還可以增加驗證碼的長度。另一種方法是將噪聲(例如線或點)添加到驗證碼圖像中??梢允褂肐mageLine()和ImageLeLipse()函數(shù)在php。 <\/h3>>

          中完成此操作?幾個原因。一個常見的原因是,在PHP安裝中未安裝或啟用GD庫。您可以使用function_Exists('gd_info')函數(shù)檢查此功能。如果返回false,則未啟用GD。另一個原因可能是您的PHP代碼中的錯誤。確保檢查您的錯誤日誌是否有任何線索。 <\/p>\n

          如何實現(xiàn)刷新驗證驗證功能? <\/h3>\n

          可以使用AJAX實現(xiàn)刷新驗證驗證功能。您需要創(chuàng)建一個JavaScript函數(shù),該功能將請求發(fā)送到服務(wù)器以生成新的驗證碼。然後,該服務(wù)器使用新的驗證碼映像進行響應(yīng),然後在沒有完整頁面的網(wǎng)頁上更新網(wǎng)頁上。 <\/p>

          我可以在沒有GD庫的情況下使用CACTCHA嗎? <\/ante>\n<\/h3>\n

          <\/p>\n

          ,而GD庫通常用於用於在PHP中創(chuàng)建驗證碼,這不是唯一的方法。您也可以使用其他庫,例如ImageMagick,甚至可以創(chuàng)建基於文本的驗證碼。但是,這些方法可能無法提供與GD庫相同的安全性和自定義。

          >如何將CAPTCHA添加到我的觸點表格? <\/h3>\n<\/h3>\n

          >向您的聯(lián)繫表中添加驗證碼涉及修改表單的HTML和PHP代碼。在HTML中,您需要為驗證碼添加一個圖像標籤和一個輸入字段,以便用戶輸入驗證碼。在PHP中,您需要生成驗證碼並驗證用戶的輸入。 <\/p>>

          >為什麼我的驗證驗證驗證不起作用? <\/h3>>

          如果您的驗證碼驗證不起作用,則可以到期有幾個原因。一個常見的原因是,會話變量未正確設(shè)置或檢索。在將任何輸出發(fā)送到瀏覽器之前,請確保調(diào)用Session_Start(),並且會話變量正在正確使用。另一個原因可能是用戶的輸入未與驗證碼正確進行比較。如果您的驗證碼包含上部和下案例字符,請確保使用不敏感的比較。 <\/p>>

          >如何使我的驗證碼可訪問視覺受損的用戶? <\/ancy>\n<\/h3>>使您的驗證碼可訪問以視覺上的鍵盤訪問受損的用戶可能具有挑戰(zhàn)性,但是有幾種方法。一種方法是提供音頻驗證碼選項。這涉及生成帶有驗證碼字符大聲說出來的音頻文件。另一種方法是使用一個基於問題的驗證碼,在其中詢問用戶一個簡單的問題,即一個機器人很難回答。

          > <\/p> bot仍然可以繞過我的驗證碼嗎?為防止機器人而設(shè)計,它們不是萬無一失的。高級機器人可以使用OCR(光學字符識別)讀取CAPTCHA字符。但是,通過使您的驗證碼更加複雜,例如使用字符的混合,添加噪音並定期更改驗證碼,您可以使bot更難繞過。

          <\/h3>是CAPTCHA,是防止垃圾郵件的唯一方法?

          <\/p> CAPTCHA是防止垃圾郵件的常見方法,但這不是唯一的方法。其他方法包括使用Honeypot,這是一個隱藏的表單字段,該字段將填寫,但人類不會檢查用戶的行為,例如填寫表單所花費的時間,並使用諸如Akismet之類的服務(wù),該服務(wù)已過濾出來垃圾郵件基於已知垃圾郵件的數(shù)據(jù)庫。

          <\/h3><\/ancy><\/ancy><\/ancy>"}
          目錄
          >在瀏覽器上顯示一個空圖像。
          將顏色分配給變量,因為它將顏色的RGB組合作為參數(shù)。以下代碼將附加在create()函數(shù)中。
          imageLine()函數(shù)將x1,x2,y1,y2坐在該順序中作為參數(shù),除了線的圖像參考和顏色。線色已被分配,就像在上一步中分配了背景顏色一樣。
          >通過使用rand()* 0隨機生成X坐標,因為這是我們盒子的寬度,這將始終返回200歲以下的值。您可以使用RAND(0,200)。它們將產(chǎn)生相同的輸出範圍。 y坐標的生成如線步中。
          生成隨機文本
          結(jié)論
          >有幾種使驗證碼更安全的方法。一種方法是使用上和下情況的字母數(shù)字字符的混合。這增加了可能的組合數(shù)量,因此機器人更難猜測。您還可以增加驗證碼的長度。另一種方法是將噪聲(例如線或點)添加到驗證碼圖像中??梢允褂肐mageLine()和ImageLeLipse()函數(shù)在php。
          如何實現(xiàn)刷新驗證驗證功能?
          ,而GD庫通常用於用於在PHP中創(chuàng)建驗證碼,這不是唯一的方法。您也可以使用其他庫,例如ImageMagick,甚至可以創(chuàng)建基於文本的驗證碼。但是,這些方法可能無法提供與GD庫相同的安全性和自定義。

          >如何將CAPTCHA添加到我的觸點表格?

          >為什麼我的驗證驗證驗證不起作用?
          首頁 後端開發(fā) php教程 帶有PHP和GD的簡單驗驗

          帶有PHP和GD的簡單驗驗

          Feb 22, 2025 am 09:13 AM

          帶有PHP和GD的簡單驗驗

          帶有PHP和GD的簡單驗驗

          到目前為止,我們都以在線表格遇到了Captcha圖像。驗證碼是必不可少的邪惡,本文將教您如何製作它們。

          >請注意,儘管有更好的自動第三方解決方案,例如Recaptcha,但該教程旨在僅解釋和證明此類技術(shù)的實際運行方式。我們不會解釋什麼驗證碼實際上是什麼,因為它被認為是常識,並且已經(jīng)在其他地方進行了更詳細的範圍。

          鑰匙要點

          PHP中的GD(圖形繪製)庫可用於創(chuàng)建驗證碼圖像,該圖像通常由形狀,失真和文本組成。

          驗證碼創(chuàng)建過程涉及顯示一個空圖像,創(chuàng)建形狀,生成隨機線和點以及生成隨機文本。
          • 碼驗證驗證過程涉及將用戶的輸入與會話變量中存儲的驗證碼字符串進行比較。如果輸入與驗證碼字符串匹配,則將用戶的響應(yīng)視為正確。
          • > 為了確保始終刷新驗證碼圖像,並且不會從瀏覽器緩存中檢索,可以使用php。
          • 本教程演示瞭如何創(chuàng)建簡單的驗證碼,建議使用更安全,更可訪問的第三方解決方案(例如recaptcha)進行生產(chǎn)應(yīng)用程序。
          • 繪製驗證碼
          • >您必須在繼續(xù)之前安裝GD(圖形繪製)庫。該庫可以通過內(nèi)置的PHP功能繪製圖形和圖像。要安裝它,請運行sudo apt-get安裝php5-gd或在基於非Ubuntu的操作系統(tǒng)上,請按照說明進行操作。
          • 驗證碼通常由三件事組成 - 形狀,失真和文本。
          • 我們將遵循下面提到的步驟:

          >在瀏覽器上顯示一個空圖像。

          >創(chuàng)建一個形狀。

          生成隨機線。

          生成隨機點。
          1. 生成隨機文本。
          2. 本文中使用的過程樣式僅出現(xiàn)僅是因為這是概念的證明,並且使最終文件盡可能簡單。在一個真實的項目中,您會oop。
          3. >
          4. 顯示一個空圖像
          5. >圖像將由HTML處理,就好像使用“ IMG”標籤顯示外部圖像一樣。使用了兩個功能 - 一個用於創(chuàng)建圖像,另一個用於顯示。
          6. >
          第一行指示在我們頁面上用戶會話的開始。

          display()函數(shù)除了在瀏覽器中顯示圖像的普通HTML代碼外,沒有其他內(nèi)容。除此之外,只能進行樣式以使輸出看起來可顯示。

          >在Create_image()函數(shù)中,使用一個變量來引用ImageCreateTureColor()函數(shù)返回的圖像,該函數(shù)以圖像的寬度和長度作為其參數(shù)。 ImagePng()創(chuàng)建指定名稱和路徑的PNG圖像(在同一目錄中)。

          黑色圖像將是我們的第一步之後的輸出。

          請注意,功能imagepng()將是我們函數(shù)的最後一行,以下所有步驟將僅在此函數(shù)調(diào)用之前插入create_image()函數(shù)中,否則它們不會生效。 帶有PHP和GD的簡單驗驗

          創(chuàng)建一個形狀

          可以為驗證碼選擇任何形狀。我們將使用函數(shù)ImageFilledRectangle()選擇矩形。它需要五個參數(shù) - 圖像參考,啟動X-POS,啟動Y-POS,結(jié)束X-POS,結(jié)束Y-POS和背景顏色。您可以使用相應(yīng)的函數(shù)作為橢圓驗驗。 ImageColaralocate()函數(shù)

          將顏色分配給變量,因為它將顏色的RGB組合作為參數(shù)。以下代碼將附加在create()函數(shù)中。

          在此步驟之後,上圖將是白色的。

          <span><span><?php
          </span></span><span><span>session_start();
          </span></span><span><span>?></span>
          </span>
              <span><span><span><title</span>></span>demo.php<span><span></title</span>></span>
          </span>    <span><span><span><body</span> <span>style<span>="<span>background-color:#ddd; </span>"</span></span>></span>
          </span>
              <span><span><?php
          </span></span><span>    <span>create_image();
          </span></span><span>    <span>display();
          </span></span><span>    <span>/***** definition of functions *****/
          </span></span><span>    <span>function display()
          </span></span><span>    <span>{
          </span></span><span>        <span>?></span>
          </span>
                  <span><span><span><div</span> <span>style<span>="<span>text-align:center;</span>"</span></span>></span>
          </span>            <span><span><span><h3</span>></span>TYPE THE TEXT YOU SEE IN THE IMAGE<span><span></h3</span>></span>
          </span>            <span><span><span><b</span>></span>This is just to check if you are a robot<span><span></b</span>></span>
          </span>
                      <span><span><span><div</span> <span>style<span>="<span>display:block;margin-bottom:20px;margin-top:20px;</span>"</span></span>></span>
          </span>                <span><span><span><img</span> src<span>="image.png"</span>></span>
          </span>            <span><span><span></div</span>></span>
          </span>            //div1 ends
                  <span><span><span></div</span>></span>                          //div2 ends
          </span>
              <span><span><?php
          </span></span><span>    <span>}
          </span></span><span>
          </span><span>    <span>function  create_image()
          </span></span><span>    <span>{
          </span></span><span>        <span>$image = imagecreatetruecolor(200, 50);
          </span></span><span>        <span>imagepng($image, "image.png");
          </span></span><span>    <span>}
          </span></span><span>
          </span><span>    <span>?></span>
          </span>    <span><span><span></body</span>></span>
          </span><span><span><?php
          </span></span><span><span>?></span></span>

          生成隨機線。

          現(xiàn)在,我們實際上是從使驗證碼的失真部分開始。在PHP中,線從起點(x1,y1)到終點(x2,y2)生成?,F(xiàn)在,當我們希望線條觸摸盒子的兩端時,我們將保持坐標為,即我們的盒子的完整寬度。 坐標將被隨機生成。這將僅創(chuàng)建一個隨機行。我們將通過將此功能放入for循環(huán)中來生成多行。 帶有PHP和GD的簡單驗驗

          imageLine()函數(shù)將x1,x2,y1,y2坐在該順序中作為參數(shù),除了線的圖像參考和顏色。線色已被分配,就像在上一步中分配了背景顏色一樣。

          > y坐標是rand()*p給出的,因為這是我們盒子的高度,並且始終將返回50以下的值。您可以使用rand(0,50)。它們將產(chǎn)生相同的輸出範圍。

          <span>$background_color = imagecolorallocate($image, 255, 255, 255);  
          </span><span>imagefilledrectangle($image,0,0,200,50,$background_color);</span>

          生成隨機點。

          隨機點將以與隨機線相同的方式生成。使用的函數(shù)是ImagesetPixel()。此函數(shù)採用將點將點放在框中的坐標值的值。 帶有PHP和GD的簡單驗驗>

          >通過使用rand()* 0隨機生成X坐標,因為這是我們盒子的寬度,這將始終返回200歲以下的值。您可以使用RAND(0,200)。它們將產(chǎn)生相同的輸出範圍。 y坐標的生成如線步中。

          帶有PHP和GD的簡單驗驗

          生成隨機文本

          >我們將隨機指向字符串中的一個位置(其中包含在下層和高層中的字母),並將其分配給變量$ letter

          >
          <span><span><?php
          </span></span><span><span>session_start();
          </span></span><span><span>?></span>
          </span>
              <span><span><span><title</span>></span>demo.php<span><span></title</span>></span>
          </span>    <span><span><span><body</span> <span>style<span>="<span>background-color:#ddd; </span>"</span></span>></span>
          </span>
              <span><span><?php
          </span></span><span>    <span>create_image();
          </span></span><span>    <span>display();
          </span></span><span>    <span>/***** definition of functions *****/
          </span></span><span>    <span>function display()
          </span></span><span>    <span>{
          </span></span><span>        <span>?></span>
          </span>
                  <span><span><span><div</span> <span>style<span>="<span>text-align:center;</span>"</span></span>></span>
          </span>            <span><span><span><h3</span>></span>TYPE THE TEXT YOU SEE IN THE IMAGE<span><span></h3</span>></span>
          </span>            <span><span><span><b</span>></span>This is just to check if you are a robot<span><span></b</span>></span>
          </span>
                      <span><span><span><div</span> <span>style<span>="<span>display:block;margin-bottom:20px;margin-top:20px;</span>"</span></span>></span>
          </span>                <span><span><span><img</span> src<span>="image.png"</span>></span>
          </span>            <span><span><span></div</span>></span>
          </span>            //div1 ends
                  <span><span><span></div</span>></span>                          //div2 ends
          </span>
              <span><span><?php
          </span></span><span>    <span>}
          </span></span><span>
          </span><span>    <span>function  create_image()
          </span></span><span>    <span>{
          </span></span><span>        <span>$image = imagecreatetruecolor(200, 50);
          </span></span><span>        <span>imagepng($image, "image.png");
          </span></span><span>    <span>}
          </span></span><span>
          </span><span>    <span>?></span>
          </span>    <span><span><span></body</span>></span>
          </span><span><span><?php
          </span></span><span><span>?></span></span>

          放入循環(huán)時,看起來像

          <span>$background_color = imagecolorallocate($image, 255, 255, 255);  
          </span><span>imagefilledrectangle($image,0,0,200,50,$background_color);</span>

          我們將解釋行

          >
          <span>$line_color = imagecolorallocate($image, 64,64,64); 
          </span><span>for($i=0;$i<10;$i++) {
          </span>    <span>imageline($image,0,rand()%50,200,rand()%50,$line_color);
          </span><span>}</span>

          在下一節(jié)中。

          函數(shù)Imagestring()在我們的圖像中寫入文本。它有6個參數(shù):

          1. >圖像參考。
          2. 文本的字體大小(最多可以是5)。
          3. x坐標(每個字母比例更改)。
          4. y坐標(保持相同,儘管我們也可以隨機更改此)。
          5. >要編寫的實際字符串。
          6. 文本的字體色。
          7. 如果您希望具有更大的字體和不同的字體樣式,
          8. >也可以使用函數(shù)imagettftext()。對於文本的角度和字體樣式,它還需要2個其他論點。

          X坐標的計算是通過檢查完成的。大概,這些字母的間距約為35個像素(5($ i*30)),其中$ i = 0,1,2,3,4,5,6。這是因為如果我們將這個值保持在15-20px左右,則可能會有兩個字母重疊。如果該值超過40px,則完全不適合盒子。

          這將生成6個字母驗證碼文本。我們始終可以通過更改由於簡單性(例如顏色,Y-Coordine等)來創(chuàng)造更多的隨機性,例如

          最終的驗證碼看起來像這樣

          >

          每次您刷新頁面時,在驗證碼中寫的文本都會更改。

          可以通過使用像素或更改顏色或大小來創(chuàng)建設(shè)計來實現(xiàn)更多隨機性。 帶有PHP和GD的簡單驗驗>

          驗證


          >在這裡採取用戶的響應(yīng),然後在處理後,他/她會收到答復(fù)。首先,使用輸入文本框和提交按鈕製作一個簡單的表單。根據(jù)複雜的Web應(yīng)用程序的要求,可以有許多方法來處理驗證碼。但是,出於此示例,請保持簡單,我們將在同一頁面上對其進行處理。

          >在上一個代碼段中未解釋的兩行現(xiàn)在開始發(fā)揮作用:>

          $ word。 = $ letter; - 串聯(lián)操作員。用於一個接一個地附加所有單個字母,生成6個字母的單詞。

          $ _ session ['catcha_string'] = $ word;我們的驗證碼字符串存儲在會話變量中,該變量將用於驗證目的。

          >
          1. 我們將更改display()的定義以添加類似形式的結(jié)構(gòu)。 >
          2. 將使用兩個提交按鈕,一個將字符串提交,另一個提交按鈕刷新頁面。
          3. >將在兩個關(guān)閉的DIV標籤之間添加以下行(請參閱上一個display()函數(shù)中的註釋)
          >
          <span><span><?php
          </span></span><span><span>session_start();
          </span></span><span><span>?></span>
          </span>
              <span><span><span><title</span>></span>demo.php<span><span></title</span>></span>
          </span>    <span><span><span><body</span> <span>style<span>="<span>background-color:#ddd; </span>"</span></span>></span>
          </span>
              <span><span><?php
          </span></span><span>    <span>create_image();
          </span></span><span>    <span>display();
          </span></span><span>    <span>/***** definition of functions *****/
          </span></span><span>    <span>function display()
          </span></span><span>    <span>{
          </span></span><span>        <span>?></span>
          </span>
                  <span><span><span><div</span> <span>style<span>="<span>text-align:center;</span>"</span></span>></span>
          </span>            <span><span><span><h3</span>></span>TYPE THE TEXT YOU SEE IN THE IMAGE<span><span></h3</span>></span>
          </span>            <span><span><span><b</span>></span>This is just to check if you are a robot<span><span></b</span>></span>
          </span>
                      <span><span><span><div</span> <span>style<span>="<span>display:block;margin-bottom:20px;margin-top:20px;</span>"</span></span>></span>
          </span>                <span><span><span><img</span> src<span>="image.png"</span>></span>
          </span>            <span><span><span></div</span>></span>
          </span>            //div1 ends
                  <span><span><span></div</span>></span>                          //div2 ends
          </span>
              <span><span><?php
          </span></span><span>    <span>}
          </span></span><span>
          </span><span>    <span>function  create_image()
          </span></span><span>    <span>{
          </span></span><span>        <span>$image = imagecreatetruecolor(200, 50);
          </span></span><span>        <span>imagepng($image, "image.png");
          </span></span><span>    <span>}
          </span></span><span>
          </span><span>    <span>?></span>
          </span>    <span><span><span></body</span>></span>
          </span><span><span><?php
          </span></span><span><span>?></span></span>

          >在進一步移動之前,我們必須知道何時顯示以及何時不顯示輸入框。它將僅顯示

          >
          1. 如果頁面剛剛加載。
          2. 如果用戶的答案不正確。

          >每次單擊提交按鈕時,使用$標誌設(shè)置為“ 1”來滿足第一個條件。最初,它已設(shè)置為任何其他值。通過檢查我們的會話變量中存儲的值是否與用戶輸入相同(請參見下面的代碼)來實現(xiàn)第二個條件。

          為了實現(xiàn)這一目標,我們將在本文開頭替換開始步驟的以下幾行:>

          with:
          <span>$background_color = imagecolorallocate($image, 255, 255, 255);  
          </span><span>imagefilledrectangle($image,0,0,200,50,$background_color);</span>

          請注意,函數(shù)create_image()和display()僅按照上述2個條件來調(diào)用。
          <span>$line_color = imagecolorallocate($image, 64,64,64); 
          </span><span>for($i=0;$i<10;$i++) {
          </span>    <span>imageline($image,0,rand()%50,200,rand()%50,$line_color);
          </span><span>}</span>

          >我們需要上一頁的會話變量,因此會話不會在此處銷毀。關(guān)閉瀏覽器窗口後,會話將自動銷毀。

          >

          驗證碼看起來像

          帶有PHP和GD的簡單驗驗如果輸入不正確,則只有然後再次提示用戶。

          >

          帶有PHP和GD的簡單驗驗如果輸入正確,則將向用戶顯示消息。

          >

          帶有PHP和GD的簡單驗驗>有一個小警告 - 當用戶按下返回按鈕時,瀏覽器緩存中的任何圖像都不會重新加載,而頁面則可以。在發(fā)布請求中,瀏覽器返回按鈕將顯示一個“過期的文檔”頁面,但是當請求獲取時,圖像不會再生。

          >

          解決方案很簡單 - 每次創(chuàng)建圖像的唯一名稱,以便瀏覽器在緩存中找不到它們。我們將在創(chuàng)建和顯示在瀏覽器中時,將一個唯一的字符串通過內(nèi)置時間()函數(shù)返回給我們。

          >在您開始會話的位置下方添加此行:

          >用
          <span>$pixel_color = imagecolorallocate($image, 0,0,255);
          </span><span>for($i=0;$i<1000;$i++) {
          </span>    <span>imagesetpixel($image,rand()%200,rand()%50,$pixel_color);
          </span><span>}  </span>
          >替換顯示()函數(shù)中的img src標籤

          以及我們在create_image()函數(shù)中創(chuàng)建png映像的部分也將被
          <span>$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
          </span><span>$len = strlen($letters);
          </span><span>$letter = $letters[rand(0, $len-1)];
          </span>
          <span>$text_color = imagecolorallocate($image, 0,0,0);</span>
          替換

          現(xiàn)在,圖像將被稱為Image39342015.png。此過程將隨著頁面的刷新而創(chuàng)建的圖像多次,這可能會浪費大量的磁盤空間,因此,我們將確保在創(chuàng)建圖像之前,刪除了PNG擴展名的所有其他圖像。在調(diào)用ImagePNG()函數(shù)之前添加以下內(nèi)容。
          <span>for ($i = 0; $i< 6;$i++) {
          </span>    <span>$letter = $letters[rand(0, $len-1)];
          </span>    <span>imagestring($image, 5,  5+($i*30), 20, $letter, $text_color);
          </span>    <span>$word.=$letter;
          </span><span>}
          </span><span>$_SESSION['captcha_string'] = $word;</span>

          在生產(chǎn)應(yīng)用程序中,只需確保您隔離存儲驗證碼圖像的文件夾,其他有用的圖像也可能會被刪除。

          <span>$word.=$letter;
          </span><span>$_SESSION['captcha_string'] = $word;   </span>
          >在此處下載完整的代碼。

          結(jié)論

          在PHP中製作各種類型的驗證碼非常容易。本文介紹了用於創(chuàng)建標準驗證碼的三個基本內(nèi)容 - 形狀,失真和文本。本文是概念證明,本文介紹的代碼不應(yīng)在生產(chǎn)中使用,尤其是因為存在諸如recaptcha之類的優(yōu)秀替代方案,這也支持聲音輸出以幫助有聽力障礙的人。我們希望您發(fā)現(xiàn)這篇文章很有趣。在下面留下您的評論和反饋!

          >

          經(jīng)常詢問的問題(常見問題解答)關(guān)於帶有PHP GD

          的簡單驗證

          >如何自定義驗證碼的外觀?

          >可以通過修改PHP代碼來自定義驗證碼的外觀。您可以更改字體,顏色,尺寸,甚至可以更改驗證碼的背景。例如,要更改字體,您可以使用imagettftext()函數(shù)並在參數(shù)中指定字體文件。要更改顏色,您可以使用ImageColorallocate()函數(shù)並指定所需顏色的RGB值。請記住,自定義不僅使您的驗證碼更加美觀,而且更加安全地抵抗機器人。

          >

          >如何使我的驗證碼更安全?

          >有幾種使驗證碼更安全的方法。一種方法是使用上和下情況的字母數(shù)字字符的混合。這增加了可能的組合數(shù)量,因此機器人更難猜測。您還可以增加驗證碼的長度。另一種方法是將噪聲(例如線或點)添加到驗證碼圖像中??梢允褂肐mageLine()和ImageLeLipse()函數(shù)在php。

          >

          中完成此操作?幾個原因。一個常見的原因是,在PHP安裝中未安裝或啟用GD庫。您可以使用function_Exists('gd_info')函數(shù)檢查此功能。如果返回false,則未啟用GD。另一個原因可能是您的PHP代碼中的錯誤。確保檢查您的錯誤日誌是否有任何線索。

          如何實現(xiàn)刷新驗證驗證功能?

          可以使用AJAX實現(xiàn)刷新驗證驗證功能。您需要創(chuàng)建一個JavaScript函數(shù),該功能將請求發(fā)送到服務(wù)器以生成新的驗證碼。然後,該服務(wù)器使用新的驗證碼映像進行響應(yīng),然後在沒有完整頁面的網(wǎng)頁上更新網(wǎng)頁上。

          我可以在沒有GD庫的情況下使用CACTCHA嗎?

          ,而GD庫通常用於用於在PHP中創(chuàng)建驗證碼,這不是唯一的方法。您也可以使用其他庫,例如ImageMagick,甚至可以創(chuàng)建基於文本的驗證碼。但是,這些方法可能無法提供與GD庫相同的安全性和自定義。

          >如何將CAPTCHA添加到我的觸點表格?

          >向您的聯(lián)繫表中添加驗證碼涉及修改表單的HTML和PHP代碼。在HTML中,您需要為驗證碼添加一個圖像標籤和一個輸入字段,以便用戶輸入驗證碼。在PHP中,您需要生成驗證碼並驗證用戶的輸入。

          >

          >為什麼我的驗證驗證驗證不起作用?

          >

          如果您的驗證碼驗證不起作用,則可以到期有幾個原因。一個常見的原因是,會話變量未正確設(shè)置或檢索。在將任何輸出發(fā)送到瀏覽器之前,請確保調(diào)用Session_Start(),並且會話變量正在正確使用。另一個原因可能是用戶的輸入未與驗證碼正確進行比較。如果您的驗證碼包含上部和下案例字符,請確保使用不敏感的比較。

          >

          >如何使我的驗證碼可訪問視覺受損的用戶?

          >使您的驗證碼可訪問以視覺上的鍵盤訪問受損的用戶可能具有挑戰(zhàn)性,但是有幾種方法。一種方法是提供音頻驗證碼選項。這涉及生成帶有驗證碼字符大聲說出來的音頻文件。另一種方法是使用一個基於問題的驗證碼,在其中詢問用戶一個簡單的問題,即一個機器人很難回答。

          >

          bot仍然可以繞過我的驗證碼嗎?為防止機器人而設(shè)計,它們不是萬無一失的。高級機器人可以使用OCR(光學字符識別)讀取CAPTCHA字符。但是,通過使您的驗證碼更加複雜,例如使用字符的混合,添加噪音並定期更改驗證碼,您可以使bot更難繞過。

          是CAPTCHA,是防止垃圾郵件的唯一方法?

          CAPTCHA是防止垃圾郵件的常見方法,但這不是唯一的方法。其他方法包括使用Honeypot,這是一個隱藏的表單字段,該字段將填寫,但人類不會檢查用戶的行為,例如填寫表單所花費的時間,並使用諸如Akismet之類的服務(wù),該服務(wù)已過濾出來垃圾郵件基於已知垃圾郵件的數(shù)據(jù)庫。

          以上是帶有PHP和GD的簡單驗驗的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

          本網(wǎng)站聲明
          本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應(yīng)的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

          熱AI工具

          Undress AI Tool

          Undress AI Tool

          免費脫衣圖片

          Undresser.AI Undress

          Undresser.AI Undress

          人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

          AI Clothes Remover

          AI Clothes Remover

          用於從照片中去除衣服的線上人工智慧工具。

          Clothoff.io

          Clothoff.io

          AI脫衣器

          Video Face Swap

          Video Face Swap

          使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

          熱工具

          記事本++7.3.1

          記事本++7.3.1

          好用且免費的程式碼編輯器

          SublimeText3漢化版

          SublimeText3漢化版

          中文版,非常好用

          禪工作室 13.0.1

          禪工作室 13.0.1

          強大的PHP整合開發(fā)環(huán)境

          Dreamweaver CS6

          Dreamweaver CS6

          視覺化網(wǎng)頁開發(fā)工具

          SublimeText3 Mac版

          SublimeText3 Mac版

          神級程式碼編輯軟體(SublimeText3)

          如何在PHP中實施身份驗證和授權(quán)? 如何在PHP中實施身份驗證和授權(quán)? Jun 20, 2025 am 01:03 AM

          tosecurelyhandleauthenticationandationallizationInphp,lofterTheSesteps:1.AlwaysHashPasswordSwithPassword_hash()andverifyusingspasspassword_verify(),usepreparedStatatementStopreventsqlineptions,andStoreSeruserDatain usseruserDatain $ _sessiveferterlogin.2.implementrole-2.imaccessccsccccccccccccccccccccccccc.

          如何在PHP中安全地處理文件上傳? 如何在PHP中安全地處理文件上傳? Jun 19, 2025 am 01:05 AM

          要安全處理PHP中的文件上傳,核心在於驗證文件類型、重命名文件並限制權(quán)限。 1.使用finfo_file()檢查真實MIME類型,僅允許特定類型如image/jpeg;2.用uniqid()生成隨機文件名,存儲至非Web根目錄;3.通過php.ini和HTML表單限製文件大小,設(shè)置目錄權(quán)限為0755;4.使用ClamAV掃描惡意軟件,增強安全性。這些步驟有效防止安全漏洞,確保文件上傳過程安全可靠。

          PHP中==(鬆散比較)和===(嚴格的比較)之間有什麼區(qū)別? PHP中==(鬆散比較)和===(嚴格的比較)之間有什麼區(qū)別? Jun 19, 2025 am 01:07 AM

          在PHP中,==與===的主要區(qū)別在於類型檢查的嚴格程度。 ==在比較前會進行類型轉(zhuǎn)換,例如5=="5"返回true,而===要求值和類型都相同才會返回true,例如5==="5"返回false。使用場景上,===更安全應(yīng)優(yōu)先使用,==僅在需要類型轉(zhuǎn)換時使用。

          如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? 如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? Jun 19, 2025 pm 05:13 PM

          PHP中使用基本數(shù)學運算的方法如下:1.加法用 號,支持整數(shù)和浮點數(shù),也可用於變量,字符串數(shù)字會自動轉(zhuǎn)換但不推薦依賴;2.減法用-號,變量同理,類型轉(zhuǎn)換同樣適用;3.乘法用*號,適用於數(shù)字及類似字符串;4.除法用/號,需避免除以零,並註意結(jié)果可能是浮點數(shù);5.取模用%號,可用於判斷奇偶數(shù),處理負數(shù)時餘數(shù)符號與被除數(shù)一致。正確使用這些運算符的關(guān)鍵在於確保數(shù)據(jù)類型清晰並處理好邊界情況。

          如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進行交互? 如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進行交互? Jun 19, 2025 am 01:07 AM

          是的,PHP可以通過特定擴展或庫與MongoDB和Redis等NoSQL數(shù)據(jù)庫交互。首先,使用MongoDBPHP驅(qū)動(通過PECL或Composer安裝)創(chuàng)建客戶端實例並操作數(shù)據(jù)庫及集合,支持插入、查詢、聚合等操作;其次,使用Predis庫或phpredis擴展連接Redis,執(zhí)行鍵值設(shè)置與獲取,推薦phpredis用於高性能場景,Predis則便於快速部署;兩者均適用於生產(chǎn)環(huán)境且文檔完善。

          我如何了解最新的PHP開發(fā)和最佳實踐? 我如何了解最新的PHP開發(fā)和最佳實踐? Jun 23, 2025 am 12:56 AM

          TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

          什麼是PHP,為什麼它用於Web開發(fā)? 什麼是PHP,為什麼它用於Web開發(fā)? Jun 23, 2025 am 12:55 AM

          PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

          如何設(shè)置PHP時區(qū)? 如何設(shè)置PHP時區(qū)? Jun 25, 2025 am 01:00 AM

          tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

          See all articles