ugrás a tartalomhoz

php ellenorzo kod segitseg

lacaaa · 2010. Nov. 20. (Szo), 09.20
Sziasztok lenne egy olyan kerdesem hogy szeretnek egy weboldalra kitenni egy ellenorzo kodot amikor regisztral a felhasznalo akkor beirja a kodot es csak ugy tud regisztralni. En megirtam a kodot ami egy kepre kitesz veletlen szamokat csak az a gondom hogy amikor bepitem a weboldalra akkor vagy a php kod jelenik meg vagy a kep jelenik meg de nem kerul a kep a helyere es van olyan amikor hibaval ter vissza a php hogy a php kod hibat tartalmaz es megall.

Gondolom a hiba a header hivas miatt van amikor kepet talal akkor kiteszi es megjelenik a kep es megall de ezt a problemat hogy lehetne kikuszobolni esetleg ha nem az a gond akkor mi lehet a baj.
mellekelem a kodot is hatha igy konnyeben kaphatnek valaszt a kerdesemre.

$img=imagecreate(120,40);
$hatter=imagecolorallocate($img,200,200,200);
$szoveg=imagecolorallocate($img,255,255,255);

$szoveg2=imagecolorallocate($img,0,0,0);

$val=rand(100000,999999);
$leptek=8;
$t=str_split($val);

imagettftext($img,20,29,10,30,$szoveg2,"BaroqueScript.ttf",$t[0]);
imagettftext($img,20,12,25,30,$szoveg2,"BaroqueScript.ttf",$t[1]);
imagettftext($img,20,-12,35,30,$szoveg2,"BaroqueScript.ttf",$t[2]);
imagettftext($img,20,-10,46,30,$szoveg2,"BaroqueScript.ttf",$t[3]);
imagettftext($img,20,-20,56,30,$szoveg2,"BaroqueScript.ttf",$t[4]);
imagettftext($img,20,-36,66,30,$szoveg2,"BaroqueScript.ttf",$t[5]);

for($i=0;$i<imagesx($img);$i=$i+$leptek)
imageline($img,$i,0,$i,imagesy($img),$szoveg);
for($j=0;$j<imagesy($img);$j=$j+$leptek)
imageline($img,0,$j,imagesx($img),$j,$szoveg);

header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
 
1

A font-ot nem mindegy hogyan

Tanul0 · 2010. Nov. 20. (Szo), 11.36
A font-ot nem mindegy hogyan adod meg neki.

$font="./BaroqueScript.ttf";

imagettftext($img,20,29,10,30,$szoveg2,$font,$t[0]);
imagettftext($img,20,12,25,30,$szoveg2,$font,$t[1]);
imagettftext($img,20,-12,35,30,$szoveg2,$font,$t[2]);
imagettftext($img,20,-10,46,30,$szoveg2,$font,$t[3]);
imagettftext($img,20,-20,56,30,$szoveg2,$font,$t[4]);
imagettftext($img,20,-36,66,30,$szoveg2,$font,$t[5]);
Nálam így működik a scripted.

A kód generálást én nem így oldanám meg. Indíts egy session-t a kódodba, amely megegyezik az oldaladon használt session nevével, és a $_SESSION['captcha'] nevű tömben tárold a kódodat valamilyen encode-olással.
2

hello

lacaaa · 2010. Nov. 20. (Szo), 12.29
Koszi hogy valaszoltal arra tudnal e nekem peldat mutatni hogy azt hogyan lehet megoldani hogyha randommal csinalok egy 6 jegyu szamot es rateszem a kepre megjelenitem a kepet es eltarolom a random aszam erteket akkor a kepen nem az az ertek lesz amit en eltarolok hanem mas es minden egyes frissitesnel az eltarolt adat mindig a kepen levo elozo adattal egyezik meg soha nem egyeik a kepen levo ertek es a randommal tombben eltarolt ertek .


pl : kepen levo ertek mondjuk 123456
a tombe ebben az esetben megegyezik szoval ott is 123456
kov frissites

kepen:654398

tombben:123456

aztab kepen 908765
tombben:654398

es igy soha se talal mindig az elozo erteket tarolja a tomb. hogy lehet hogy az aktualisat tarolja el ne az elozot?
3

session_name("weboldalad_sess

Tanul0 · 2010. Nov. 20. (Szo), 13.01

session_name("weboldalad_sessionje");
session_start();
ezt a legelejére
Majd tárolod a kódot valamilyen encodeolt formában

$_SESSION['captcha']=md5($t[0].$t[1].$t[2].$t[3].$t[4].$t[5]);
majd az ellenőrzésnél pedig

if(isset($_POST['captcha'])){
     if($_SESSION['captcha']==md5($_POST['captcha'])){
         //amit védtél a biztonsági kóddal
     }
}
4

hello

lacaaa · 2010. Nov. 20. (Szo), 13.12
ez ok de igy nem general veletlen szamokat az a baj vele olyanra gondoltam hogy veletlen szamokat general minden weboldal ujratoltsesnel.
5

function

Tanul0 · 2010. Nov. 20. (Szo), 13.47

function random_string($len=5, $str='')
  {
	for($i=1; $i<=$len; $i++)
        {


	 $ord=rand(48, 90);
	 if((($ord >= 48) && ($ord <= 57)) || (($ord >= 65) && ($ord<= 90)))
	$str.=chr($ord);


	else
		$str.=random_string(1);
	}
	return $str;

}

$rand_str=random_string(6);

$letter1=substr($rand_str,0,1);
$letter2=substr($rand_str,1,1);
$letter3=substr($rand_str,2,1);
$letter4=substr($rand_str,3,1);
$letter5=substr($rand_str,4,1);
$letter6=substr($rand_str,5,1);
És akkor a $t tömböd helyett a $letter1, $letter2 ..... lesz a karaktered
6

Rejtett input

deejayy · 2010. Dec. 7. (K), 12.17
Ez nem jó megoldás?

<div style='display:none'><input type='text' name='e-mail'/></div>

if (array_key_exists('e-mail', $_POST) && $_POST['e-mail']) {
    print("Te egy bot vagy. Hess");
}