php
  • session
  • 2011-08-26 79 views 1 likes 
    1

    我需要獲取會話變量值並將其與輸入進行比較。會話變量僅檢索以前的值

    這裏是代碼:

    <?php 
    echo "<img src='captchas.php'><br><center><input type='text' size='10' name='check' id='postcaptcha' onChange='validatecaptcha();'></center><div id='validationforcaptcha'></div>"; 
    
    $captchacode = $_SESSION['newcode']; 
    
    echo "<input type='text' name='sessioncaptcha' id='sessioncaptcha' value=$captchacode />"; 
    ?> 
    

    這裏是captcha.php

    <?php session_start(); ob_start(); 
    
    $img = imagecreatefrompng('IMAGES/black.png'); 
    $numero = rand(100000000, 999999999); 
    $_SESSION['check23'] = $numero; 
    $white = imagecolorallocate($img, 255, 255, 255); 
    imagestring($img, 10, 8, 3, $numero, $white); 
    
    header ("Content-type: image/png"); 
    imagepng($img); 
    
    ?> 
    

    我不知道爲什麼$ _SESSION [ 'check23']變量只檢索先前驗證碼已顯示的代碼(不是當前顯示的內容)

    回答

    2

    也許你正在假設你的第一個腳本被執行了之後captcha.php

    這是實際發生:

    1. 你的第一個腳本執行,該頁面提供給用戶。
    2. 用戶的瀏覽器請求captcha.php作爲圖像。
    3. captcha.php被執行並且圖像被髮送給用戶。

    嘗試在第一個腳本中生成CAPTCHA代碼並將其保存到$_SESSION['check23']。您可以稍後在captcha.php中檢索$_SESSION['check23']以呈現適當的圖像。

    相關問題