- Home
- Categorie
- Coding e Sistemistica
- PHP
- funzione hash() non funziona
-
funzione hash() non funziona
Ciao a tutti.
Oggi imparando la funzione hash() volevo fare un piccolo script:[php]<form method="POST" action="3.php">
Testo da criptare: <input type="testo" name="testo"> <br />
Algoritmo: <SELECT NAME="algoritmo">
<OPTION VALUE="md4" NAME="md4">md4</OPTION>
<OPTION VALUE="md5" NAME="md5">md5</OPTION>
<OPTION VALUE="sha1" NAME="sha1">sha1</OPTION>
<OPTION VALUE="sha256" NAME="sha256">sha256</OPTION>
<OPTION VALUE="sha384" NAME="sha384">sha384</OPTION>
<OPTION VALUE="sha512" NAME="sha512">sha512</OPTION>
<OPTION VALUE="ripemd128" NAME="ripemd128">ripemd128</OPTION>
<OPTION VALUE="ripemd160" NAME="ripemd160">ripemd160</OPTION>
<OPTION VALUE="whirlpool" NAME="whirlpool">whirlpool</OPTION>
<OPTION VALUE="snefru" NAME="snefru">snefru</OPTION>
<OPTION VALUE="gost" NAME="gost">gost</OPTION>
<OPTION VALUE="adler32" NAME="adler32">adler32</OPTION>
<OPTION VALUE="crc32" NAME="crc32">crc32</OPTION>
<OPTION VALUE="crc32b" NAME="crc32b">crc32b</OPTION>
</SELECT>
<input type="submit" value="cripta">
</form><?php
$testo = $_POST['testo'];
$algoritmo = $_POST['algoritmo'];
$criptato = hash($algoritmo, $testo);echo $criptato;
?>[/php] Pero non mi da nessun output...
Qualcuno sa cos'ho sbagliato?
-
Ciao jkkl,
scusa la domanda forse troppo banale ma, le due parti di codice che hai postato stanno in due file diversi vero? In particolare quella in php, sta nel file "3.php" che viene chiamato dal form, giusto?
Altro domandina: versione di php che utilizzi? Perchè la funzione hash è prevista solo dal php versione >= 5.1.2
-
Sono in un file unico...
Utilizzo altervista....quindi non so che versione di php utilizza...
-
Prova così:
[PHP]
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Testo da criptare: <input type="testo" name="testo"> <br />
Algoritmo: <SELECT NAME="algoritmo">
<OPTION VALUE="md4" NAME="md4">md4</OPTION>
<OPTION VALUE="md5" NAME="md5">md5</OPTION>
<OPTION VALUE="sha1" NAME="sha1">sha1</OPTION>
<OPTION VALUE="sha256" NAME="sha256">sha256</OPTION>
<OPTION VALUE="sha384" NAME="sha384">sha384</OPTION>
<OPTION VALUE="sha512" NAME="sha512">sha512</OPTION>
<OPTION VALUE="ripemd128" NAME="ripemd128">ripemd128</OPTION>
<OPTION VALUE="ripemd160" NAME="ripemd160">ripemd160</OPTION>
<OPTION VALUE="whirlpool" NAME="whirlpool">whirlpool</OPTION>
<OPTION VALUE="snefru" NAME="snefru">snefru</OPTION>
<OPTION VALUE="gost" NAME="gost">gost</OPTION>
<OPTION VALUE="adler32" NAME="adler32">adler32</OPTION>
<OPTION VALUE="crc32" NAME="crc32">crc32</OPTION>
<OPTION VALUE="crc32b" NAME="crc32b">crc32b</OPTION>
</SELECT>
<input type="submit" value="cripta" name ="send">
</form><?php
if(isset($_POST['send'])){
$testo = $_POST['testo'];
$algoritmo = $_POST['algoritmo'];
$criptato = hash($algoritmo, $testo);echo $criptato;
}else{
}?>[/PHP]
-
@jkkl said:
sono in un file unico...
utilizzo altervista....quindi non so che versione di php utilizza...Puoi usare:
[php] <?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();// prints e.g. '2.0' or nothing if the extension isn't enabled
echo phpversion('tidy');
?>[/php]
-
[....]
Current PHP version: 5.2.6
-
Ciao jkkl
Prova a togliere i vari name dalle option, essendo una select deve comandare il name del <select>
-
Non funziona.
Ed è logico che non funziona senza i name.
-
Beh, veramente l'attributo name deve stare nella select e non nelle option, se usi un editor ti segnala anche l'errore.
Se anche togliendo i vari name dalle option (e solo dalle option) non ti funziona fai una prova mettendo degli echo ai valori $_POST, vediamo se il problema sta nell'invio
-
Ragazzi, io ho provato modificando il codice in queesto modo:
[php]
<?php
$array = hash_algos();
?>
<?php
if(isset($_GET['send'])){
$testo = $_GET['testo'];
$h = $_GET['algoritmo'];
$criptato = hash($array, $testo);}else{
}
?>
<form method="GET" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Testo da criptare: <input type="testo" name="testo" value = "<?php echo $testo; ?>"> <br />
Algoritmo: <SELECT NAME="algoritmo">
<?phpfor($i = 0; $i < count($array); $i++){
echo "<OPTION VALUE="$i" NAME="$array*">$array*</OPTION>";
}
echo "</select>";?>
<input type="submit" value="cripta" name ="send">
</form>
<?php
echo $criptato;
?>
[/php]e mi funziona ottimamente...
Crea una lista di circa 40 forme di cryptaggio...