Oppure

Loading
18/09/07 18:39
alek777
:-| devo effettuare un cast da int a char perchè voglio generare una stringa di lettere random da usare per verificare se il commento del mio post è veramente scritto da un umano e non da un bot o cose simili.

il problema è che non effettua il cast, restano i numeri.

ecco il codice

<?PHP
  $str="";
  for ($i=0;$i<=5;$i++){
      $n=rand (97, 122);
      $str=$str.(string)$n;
  }
  echo $str;
?>


cosa sbaglio?
aaa
18/09/07 19:07
alek777
ho pensato a questo ma evito il problema...


<?PHP
  $str="";
  $arr=array ("a","b","c","d","e","f","g","h",
"i","l","m","n","o","p","q","r","s","t","u","v",
"z","x","y","k","j","w","1","2","3","4","5","6","7","8","9","0");
  for ($i=0;$i<=5;$i++){
      $n=rand (0, 35);
      $str=$str.$arr[$n];
  }
  echo $str;
?>
Ultima modifica effettuata da alek777 24/09/07 0:02
aaa
18/09/07 21:14
Shutdown
<?PHP
$str = "";

for( $i=0; $i<=5; $i++ ) {
    $n = rand(97, 122);
    $str .= (char) $n;
}

echo $str;
?>


Non l'ho testato, quindi non so se funziona. :-|
Fammi sapere se è corretto, altrimenti ci do
un'occhiata con calma.
Ultima modifica effettuata da Shutdown 18/09/07 21:17
aaa
18/09/07 22:15
alek777
ho provato anche così ma non va
aaa
19/09/07 11:57
Shutdown
Okay...
Appena ho due secondi riscrivo / testo
il codice! :k:
aaa
21/09/07 20:03
radio
<?php
header("Content-type: text/plain");	// Non so se ti serve... Non credo
$n_char=15;		// Numero caratteri da generare

$str="";		// Così evito il Notice di variabile non definita su $str [ma basterebbe sopprimere la visualizzazione degli errori di livello notice ;) )
for ($i=0; $i<=$n_char; $i++)
	{
	$rnd_char= chr(rand(65, 122)); // Il carattere casuale è chr ovvero carattere da codice ascii e il codice asci è dato da rand, l'intervallo sceglilo tu, gaurda qui http://www.asciitable.com/
	
// 	echo "Carattere $i => $rnd_char [".gettype($rnd_char)."]\n"; // se proprio vuoi controllare decommenta :)
	$str .= $rnd_char;
	}

// scrive la stringa
print($str);
?>

O, più semplicemente
<?php
$str="";
for ($i=0; $i<=15; $i++)
	$str .= chr(rand(65, 122));
print($str);
?>


Il codice si spiega da se, comunque gli altri erano errati perchè nella conversione tra tipi il php, da numero a stringa fa corrispodnere la stringa che rappresenta quel numero, e non il codice ascii del carattere: tipo $int=022 $foo=(string)$int; print($foo); restituisce "022".

per il resto il mio codice "si commenta da sè" : basta usare chr() LOL
aaa
21/09/07 23:09
Shutdown
radio non so come farei senza di te! :rotfl:
Menomale che mi aiuti tu a rispondere, altrimenti... :D
Grande! :k:
aaa
22/09/07 0:18
alek777
WOW grande :D
aaa