Autor Zpráva
For
Profil *
Zdravím, nevíte, oc bych mohl mít na tomto špatně? pokud je $cislo 1, tak je vše správně, ale pokud je $cislo 2 a vyšší, tak mi to píše Cannot redeclare random_password() (previously declared in ...

Díky



for ($counter=1; $counter<=$_POST["cislo"]; $counter++) {
function Random_Password($length) {
...
Joker
Profil
For
Jednu konkrétní funkci lze pochopitelně definovat jenom jednou, takže logicky je nesmysl to dělat v cyklu.
For
Profil *
To mně taky došlo, ale chtěl jsem vědět, jak to vyřešit :) Ale teď mě napadlo, že bych to mohl dát jako function Random_password$cislo :) A tak by to už šlo :)
Jan Tvrdík
Profil
For
Čeho chceč docílit? Nepleteš si deklaraci funkce s jejím voláním?
lamka2
Profil
For
mozno by sa to dalo docielit nejako inak
Joker
Profil
For
To mně taky došlo, ale chtěl jsem vědět, jak to vyřešit
No... třeba nedávat deklaraci té funkce dovnitř cyklu? :-)
nightfish
Profil
To mně taky došlo, ale chtěl jsem vědět, jak to vyřešit :)
dát deklaraci funkce před funkci a případné měnící se hodnoty předávat jako parametr

EDIT: pozděěěěěěěě
lamka2
Profil
nightfish
presne tak som to myslel

co keby si tu hodil ten kod funkcie random_password()
For
Profil *
Jan Tvrdík
Mám obrazovku, kde napíšu číslo a podle tohoto čísla by mi to mělo vypsat počet hesel na následující stránce

Joker
Obávám se, že tak by to asi nešlo, protože potřebuju, aby ta hesla byla různá


A teď jsem zjistil, že za function random_password nemůžu používat proměnné - nevíte, jak bych to mohl udělat, aby to šlo?? :)

Díky
For
Profil *
lamka2
co keby si tu hodil ten kod funkcie random_password()


for ($counter=1; $counter<=$_POST["cislo"]; $counter++) {
function Random_Password"$_POST['bot']"($length) {
srand((double)microtime()*1000000);
$possible_charactors = "rtzplkjhdscvbnm";
$string = "";
while(strlen($string)<$length) {
$string .= substr($possible_charactors, rand()%(strlen($possible_charactors)),1);
}
return($string);
}
$heslo1 = Random_Password(2);


Jak bych to měl teda napsat? Díky
Jan Tvrdík
Profil
function Random_Password($length)
{ 
	srand((double)microtime()*1000000); 
	$possible_charactors = "rtzplkjhdscvbnm"; 
	$string = ""; 
	while(strlen($string)<$length) { 
		$string .= substr($possible_charactors, rand()%(strlen($possible_charactors)),1); 
	} 
	return($string); 
} 
$heslo1 = Random_Password(2);
aneb význam toho cyklu jsem skutečně nepochopil.
nightfish
Profil
function Random_Password($length) {
  srand((double)microtime()*1000000);
  $possible_charactors = "rtzplkjhdscvbnm";
  $string = "";
  while(strlen($string)<$length) {
    $string .= substr($possible_charactors, rand()%(strlen($possible_charactors)),1);
  }
  return $string;
}

for ($counter=1; $counter<=$_POST["cislo"]; $counter++) {
  $heslo1 = Random_Password(2); 
  echo "heslo: $heslo1<br>";
}


EDIT: zase pozděěě
btw možná bych trochu zvětšil délku generovaných hesel, 2 znaky je poměrně málo...
Jan Tvrdík
Profil
nightfish
Nemáš to pozdě, máš to jinak :)

For
Ten kód bych asi napsal úplně jinak:
function randomPassword($delka = 12)
{
    $znaky = "abcdefghijklmnopqrstuvwxz0123456789"; //seznam znaků, ze kterých bude sestaven výsledný řetězec
    $retezec = "";  //počáteční inicializace
    $max = strlen($znaky) - 1;
    for($i = 0; $i < $delka; $i++)
        $retezec .= $znaky[rand(0, $max)];
    return $retezec;
}
For
Profil *
nightfish
Pozdě to opravdu nemáš a opravdu díky za tento kód :) Už to funguje tak, jak má :)

btw možná bych trochu zvětšil délku generovaných hesel, 2 znaky je poměrně málo...
Ono to není úplně tak heslo, ale něco podobného, tak jsem to označil za heslo :)



Ale všem děkuji za rychlou pomoc, díííky!! :)

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: