Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    funzione generatore alfanumerico con errore...

    ciao a tutti ho creato una semplice funzione che mi dovrebbe
    generare una stringa di lettere e numeri... e lo fa.. solo che a volte manca 1 carattere.

    Es. $keystring = strtoupper($mysqli->randomAlfanumerico(8));

    mi aspetta una stringa di 8 caratteri...

    MA mi sono ritrovato alcune volte stringhe di 7.... "XLE0GOD"

    codice:
    //Generazione stringa alfanumerica random
    	public function randomAlfanumerico($n)
    	{
    		$stringa = "";
    		
    		$chars = range("a", "z"); //$chars = array('a', 'b', 'c', .. 'z'); 
    		$nums = range(0, 9); 
    		$chars = array_merge($chars, $nums); //unisce i 2 array
    		shuffle($chars); //mescola l'array 
    		
    		for ($i = 1; $i <= $n; $i++) { 
    			$stringa .= $chars[rand(0, count($chars))]; 
    		}
    		
    		return $stringa;
    	}

    mi segnala

    Notice: Undefined offset
    su questa riga -> $stringa .= $chars[rand(0, count($chars))];


    Ringrazio in anticipo chiunque mi consigli...

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    $stringa .= $chars[rand(0, count($chars))];

    count($chars) è 36, quindi non va bene perché gli indici di $chars vanno da 0 a 35, il problema ti si pone quando rand pesca il valore più alto, devi mettere
    count($chars) - 1

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Perdonami, ti puo essere utile
    codice:
    chr(rand(0,25)+97)
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Originariamente inviato da linoma
    Perdonami, ti puo essere utile
    codice:
    chr(rand(0,25)+97)
    ehmm cosa farebbe?

  5. #5
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Ti restituisce un carattere causale tra 'a' e 'z'
    Per gli Spartani e Sparta usa spartan Il mio github

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da linoma
    Ti restituisce un carattere causale tra 'a' e 'z'
    Gli servono anche i numeri.

  7. #7
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    ah ecco l'uso degli arrays.
    Per gli Spartani e Sparta usa spartan Il mio github

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi anche fare...

    Codice PHP:
    ...
    shuffle($chars); //mescola l'array 
    $stringa implode(array_slice($chars0$n)); 
    ...una volta che mescoli l'array le posizioni sono "casuali", quindi basta prendere i primi $n e unirli in una stringa

  9. #9
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Allora puo usare

    codice:
    str_shuffle
    Per gli Spartani e Sparta usa spartan Il mio github

  10. #10
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    ma ma ma ma ma



    Codice PHP:


    function generaCodice($length)
    {
         
    $code "" ;
         for(
    i=$i<$length $i++)
         { 
    $code  chr(rand(0,25)+97) ;  } // Powered bi linoma


         
    return $code ;

    NN e' meglio ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.