Pereiti prie turinio

Automatinis teksto sugeneratorius


Rekomenduojami pranešimai

Sveiki, iškilo klausimas, kaip padaryt, kad php kodas pats sugeneruotų tam tikrus simbolius.

Pvz, 5 simbolius sudėtus tik iš skaičių arba raidžių.

Kažkas panašaus būna kaip apsaugos prieš registruojantis (būna ir su paveiksliuku).

 

O gal čia visai ne php reik? o.O

Redagavo doncatas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

function random_gen($length)
{
 $random= "";
 srand((double)microtime()*1000000);
 $char_list = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 $char_list .= "abcdefghijklmnopqrstuvwxyz";
 $char_list .= "1234567890";
 // Add the special characters to $char_list if needed

 for($i = 0; $i < $length; $i++)
 {
   $random .= substr($strset,(rand()%(strlen($strset))), 1);
 }
 return $random;
}

 

 

function genRandomString() {
   $length = 10;
   $characters = ’0123456789abcdefghijklmnopqrstuvwxyz’;
   $string = ”;    

   for ($p = 0; $p < $length; $p++) {
       $string .= $characters[mt_rand(0, strlen($characters))];
   }

   return $string;
}

Redagavo Fantasya
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, iškilo klausimas, kaip padaryt, kad php kodas pats sugeneruotų tam tikrus simbolius.

Pvz, 5 simbolius sudėtus tik iš skaičių arba raidžių.

Kažkas panašaus būna kaip apsaugos prieš registruojantis (būna ir su paveiksliuku).

 

O gal čia visai ne php reik? o.O

 

http://php.net/manual/en/function.str-shuffle.php

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • Administratoriai

function genRandomString() {
   $length = 10;
   $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
   $string = '';    

   for ($p = 0; $p < $length; $p++) {
       $string .= $characters[mt_rand(0, strlen($characters))];
   }

   return $string;
}

šis kodas nėra teisingas... reiktų papildyti taip:

function genRandomString() {
   $length = 10;
   $characters = ’0123456789abcdefghijklmnopqrstuvwxyz’;
   $string = ”;    

   for ($p = 0; $p < $length; $p++) {
       $string .= $characters[mt_rand(0, (strlen($characters)-1))];
   }

   return $string;
}

 

 

O realiai, tai pakanka ir paprastos eilutės:

<?php
echo substr(md5(uniqid()),0,5);
?>

Redagavo Arius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

nu tai vėl grįžtu prie klausimo. tarkim aš pasidarau tą saugos kodą (imu lengviausią kodą: Ariaus).

Padarau <form> su kodo įvedimu ir button'u "įvesti".

Bet kai paspaudi "įvesti" perkrovus puslapį automatiškai pasikeičia kodas ir tada man nebeatitinka:

$saugos_kodas == $saugos_kodas_ivesti

, nes saugos kodas perkrovus web pasikeičia...

Kaip taisyt? atidarius puslapį įvest saugos kodą į *.txt ir paspaudus mygtuką, kad lygintų su *.txt faile esančiu įrašu? Siųlykit savo variantus :)

Redagavo doncatas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

nu tai vėl grįžtu prie klausimo. tarkim aš pasidarau tą saugos kodą (imu lengviausią kodą: Ariaus).

Padarau <form> su kodo įvedimu ir button'u "įvesti".

Bet kai paspaudi "įvesti" perkrovus puslapį automatiškai pasikeičia kodas ir tada man nebeatitinka:

$saugos_kodas == $saugos_kodas_ivesti

, nes saugos kodas perkrovus web pasikeičia...

Kaip taisyt? atidarius puslapį įvest saugos kodą į *.txt ir paspaudus mygtuką, kad lygintų su *.txt faile esančiu įrašu? Siųlykit savo variantus :)

cookis, sesija yra tam

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • Administratoriai

man kai tokiam protingam, tas nieko nepasako. be pavyzdžio nesuprasiu :D lauksiu kieno nors išsamesnio atsakymo :D

yra toks senas geras daiktas - php manualas, parsisiųsti gali iš čia http://www.php.net/download-docs.php siūlyčiau naudoti .chm plėtinį, man asmeniškai patogiau...

 

atsidarius pasirink INDEX tabą ir pačiame viršuje pamatysi "$_COOKIE" ... "$_SESSION", tas vietas gerai paskaitinėk ;) suprantu, kad fainiau, kai paduoda sukramtytą, bet pačiam bus geriau kai pasimokinsi ;)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

captcha.php failas:

Čia kur: $NewImage = imagecreatefromjpeg("captcha_bg.jpg");

Tai reikia pasikeisti į savo paveikslėlį, ta prasme backgroundą. Pvz 100px ant 30px ar pan.

 

<?php
session_start();

$RandomStr = md5(microtime());

$ResultStr = substr($RandomStr, 0, 5);

$NewImage = imagecreatefromjpeg("../images/captcha_bg.jpg");

$LineColor = imagecolorallocate($NewImage, 233, 239, 239);
$TextColor = imagecolorallocate($NewImage, 255, 255, 255);

imageline($NewImage, 1, 1, 40, 40, $LineColor);
imageline($NewImage, 1, 100, 60, 0, $LineColor); 

imagestring($NewImage, 5, 20, 10, $ResultStr, $TextColor);

$_SESSION['captcha-key'] = $ResultStr;

header("Content-type: image/jpeg");

imagejpeg($NewImage);
?>

 

index.php failas:

<?php
session_start();

$captchaKodas = $_SESSION['captcha-key'];

if(isset($_POST["submit"])){
$kodas = $_POST['captcha'];

if($kodas !== $captchaKodas){
	echo "<p>Neteisingas kodas</p>";
} else {
	echo "<p>Kodas teisingas</p>";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="lt" lang="lt">
<head>
	<title>Captcha testas</title>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="" method="post">
	<label>Saugos kodas:</label>
	<!-- Captcha.php -->
	<img src="captcha.php" /><br />
	<!-- /Captcha.php -->
	<label for="captcha">Įrašykite saugos kodą:</label>
	<input type="text" name="captcha" id="captcha" style="width: 150px; padding: 6px; font-size: 16px; font-weight: bold; border: 1px solid #CCC;" /><br />
	<input type="submit" name="submit" value="TIKRINTI !" />
</form>
</body>
</html>

 

Patikrinau, viskas ok

Redagavo Domus
Nuoroda į pranešimą
Dalintis kituose puslapiuose

na štai pasidariau su session. ačiū už patarimus :)

beje kai kūriau tą kodą, man session_start(); metė error(kažką su ...headers aleary sent...), tai aš į skliaustus įrašiau error_reporting(0), nes viskas veikė, tik tiek kad metė error.

Redagavo doncatas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...