Autor Zpráva
tomas3333
Profil
Zdravím.
Napísal som si kod, ktory mi generuje captchu, a zaroven v nom nastavim session. Ked som zostavil formular pre registraiu, vsetko fungovalo, na reload captche som pouzil javascript. Zistil som, ze sa captcha v IE6 nechce reloadnut, sucasny obrazok zmizne a namiesto neho sa nahraje len prazdne miesto. Po skumani problemu som zistil, ze mi v IE6 nefunguje session ani cookie. ked som priamo v kode, ktory generuje captchu vymazal header pre zobrazeniei obrazka, a volal session priamo tam, normalne sa ukazala. ked som vsak na inej stranke volal tu istu session, tak v IE6 sa nechcela vypisat, akoby neexistovala. v ostatnych browseroch to funguje normalne.
Neviete kde by mohol byt v IE6 problem?
Dakujem.
Leo
Profil
Co treba misto povidani nejaky (podstatny) kus kodu? Leo
tomas3333
Profil
generovanie captche uz aj s tym session a cookie

<?php

error_reporting(E_ALL);

ob_start();
# image creat
$image = imagecreatetruecolor(200,50);

# background color
 $red = rand(200,255);
 $green = rand(200,255);
 $blue = rand(200,255);
 
 $bgcolor_allocate = imagecolorallocate($image,$red,$green,$blue);
 $background = imagefilledrectangle($image, 0,0,200,50, $bgcolor_allocate);

# antialiasing
 //$antialias = imageantialias($image, on);

# polygony
for($p=1;$p<=6;$p++) {

  $points = Array();
   $ptcount = rand(3,6);
  for($i=1;$i<=$ptcount;$i++) {
    $points[] = rand(-10,210);
    $points[] = rand(-5,55);
  }


 $red = rand(100,255);
 $green = rand(100,255);
 $blue = rand(100,255);
  
  $linecolor = imagecolorallocate($image,$red,$green,$blue);  
  
$polygon = imagepolygon($image, $points, $ptcount, $linecolor);
}

# text
$string = "";
$fonty = Array("ClinkOutlined", "Dominican", "FairyDust", "Pointy", "SubwayShadow");

for($i=1;$i<=5;$i++) {

  $red = rand(0,200);
  $green = rand(0,200);
  $blue = rand(0,90);

$sel_chars = Array(rand(65,90), rand(97,122), rand(48,57));
$char = chr($sel_chars[array_rand($sel_chars)]);

 $charcolor = imagecolorallocate($image,$red,$green,$blue);
$text = imagettftext($image, 30, rand(-15,15), (-15+$i*32), 35, $charcolor, "fonts/".$fonty[array_rand($fonty)].".ttf", $char);

$string .= $char;
}


# session
 session_register("captcha");
 $_SESSION['captcha'] = $string; 

# output
/*if ($image) {
 header("Content-type: image/jpeg");
 imagejpeg($image);
 imagedestroy($image);
}
*/
echo $_SESSION['captcha'];
setcookie("test", "fasfaw",  time()+3600);
echo $_COOKIE['test'];

ob_end_flush();
?>   


a volanie session v druhom subore

<?php
//session_start();

echo $_SESSION['captcha'];
echo $_COOKIE['test']; 
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: