[Duda] array mal hecho

Iniciado por DaXGoN, 25 Septiembre 2009, 17:37 PM

0 Miembros y 2 Visitantes están viendo este tema.

DaXGoN

Bueno el codigo no funciona bien
EJ:
Escriban esto :WXYZABCDEFGHIJKLMNOPQRSTUV
les deberia salir: ABCDEFGHIJKLMNOPQRSTUVWXYZ
PEro no lo que imprime es: STUVSTUVABCDEFGHIJKLMNOPQR

Ayuda plz :D

Codigo
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Ejemplo 2</title>
</
head>
<
body>
<
form action="formulario.php" method="POST">
Para descifrar: <input type="text" name="mensaje" />
<
input type="checkbox" name="opcion_4" />Desencriptacion 4 
</select>
<
br /><input type="submit" value="descifrar!" />
</
form>
<?
php
$decrypt_4 
$HTTP_POST_VARS["opcion_4"];
$mensaje_4 $HTTP_POST_VARS["mensaje"];
$rep = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
$sol = array("W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","w","x","y","z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v");
$conteo count($sol);
if (
$decrypt_4) {
for (
$i 0$i $conteo$i++){
$mensaje_4 str_replace($rep[$i],$sol[$i],$mensaje_4);
}
echo 
"<strong>Desencriptacion 4: </strong>"$mensaje_4"<br>";
}
?>
</body>
</html>
Muy pronto...

Azielito

No hagas temas que despues le borraras tanto la pregunta como tu respuesta [en este caso] asi no nos enteramos cual era tu problema ni como lo solucionaste, si encuentras la solucion la posteas como respuesta aun que paresca "tonto" pero asi aprendemos todos ¬¬

DaXGoN

Cita de: Azielito en 26 Septiembre 2009, 00:38 AM
No hagas temas que despues le borraras tanto la pregunta como tu respuesta [en este caso] asi no nos enteramos cual era tu problema ni como lo solucionaste, si encuentras la solucion la posteas como respuesta aun que paresca "tonto" pero asi aprendemos todos ¬¬
Lo siento, Hay tengo una nueva duda con el mismo SCRIPT :)

Porfavor ayuda XD
Muy pronto...

YST

Tengo un poco de sueño ( son las 6 am y no eh dormido ) pero el error ocurre por que guardas la cadena remplazada en $mensaje_4 entonces por ejemplo si en el primer bucle remplaza a todas las W por una A en el segundo bucle los remplaza esa misma A por una E ;)


Yo le enseñe a Kayser a usar objetos en ASM

DaXGoN

Cita de: YST en 26 Septiembre 2009, 11:49 AM
Tengo un poco de sueño ( son las 6 am y no eh dormido ) pero el error ocurre por que guardas la cadena remplazada en $mensaje_4 entonces por ejemplo si en el primer bucle remplaza a todas las W por una A en el segundo bucle los remplaza esa misma A por una E ;)
Bno man no entendi mucho, Cuando puedas me ayudas arreglando el code ;)

Graicas =
Muy pronto...

XafiloX

#5
Ahi va bien hecho...
Código (php) [Seleccionar]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ejemplo 2</title>
</head>
<body>
<form action="count.php" method="POST">
Para descifrar: <input type="text" name="mensaje" />
<input type="checkbox" name="opcion_4" />Desencriptacion 4
</select>
<br /><input type="submit" value="descifrar!" />
</form>
<?php
$decrypt_4 
$HTTP_POST_VARS["opcion_4"];
$mensaje_4 $HTTP_POST_VARS["mensaje"];
$rep = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
$sol = array("W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","w","x","y","z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v");
$conteo strlen($mensaje_4);
if (
$decrypt_4) {
    for (
$i 0$i $conteo$i++){
$key array_search($mensaje_4[$i], $sol);
$mensaje_4[$i] = $rep[$key];
    }
    echo 
"<strong>Desencriptacion 4: </strong>"$mensaje_4"<br>";
}
?>

</body>
</html>


Lo que pasaba era que el str_replace afectaba a toda la cadena que metias, asi si por ejemplo sustituias W por A, en el 5º bucle, se volvia a sustituir ese A por E, y asi sucesivamente...Ahora esta mas sencillito y sin errores...

XafiloX

Cita de: XafiloX en 28 Septiembre 2009, 20:29 PM
Ahi va bien hecho...
Código (php) [Seleccionar]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ejemplo 2</title>
</head>
<body>
<form action="count.php" method="POST">
Para descifrar: <input type="text" name="mensaje" />
<input type="checkbox" name="opcion_4" />Desencriptacion 4
</select>
<br /><input type="submit" value="descifrar!" />
</form>
<?php
$decrypt_4 
$HTTP_POST_VARS["opcion_4"];
$mensaje_4 $HTTP_POST_VARS["mensaje"];
$rep = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
$sol = array("W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","w","x","y","z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v");
$conteo strlen($mensaje_4);
if (
$decrypt_4) {
    for (
$i 0$i $conteo$i++){
$key array_search($mensaje_4[$i], $sol);
$mensaje_4[$i] = $rep[$key];
    }
    echo 
"<strong>Desencriptacion 4: </strong>"$mensaje_4"<br>";
}
?>

</body>
</html>


Lo que pasaba (entre otras cosas) era que el str_replace afectaba a toda la cadena que metias, asi si por ejemplo sustituias W por A, en el 5º bucle, se volvia a sustituir ese A por E, y asi sucesivamente...Ahora esta mas sencillito y sin errores...


DaXGoN

Cita de: XafiloX en 28 Septiembre 2009, 20:29 PM
Ahi va bien hecho...
Código (php) [Seleccionar]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ejemplo 2</title>
</head>
<body>
<form action="count.php" method="POST">
Para descifrar: <input type="text" name="mensaje" />
<input type="checkbox" name="opcion_4" />Desencriptacion 4
</select>
<br /><input type="submit" value="descifrar!" />
</form>
<?php
$decrypt_4 
$HTTP_POST_VARS["opcion_4"];
$mensaje_4 $HTTP_POST_VARS["mensaje"];
$rep = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
$sol = array("W","X","Y","Z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","w","x","y","z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v");
$conteo strlen($mensaje_4);
if (
$decrypt_4) {
    for (
$i 0$i $conteo$i++){
$key array_search($mensaje_4[$i], $sol);
$mensaje_4[$i] = $rep[$key];
    }
    echo 
"<strong>Desencriptacion 4: </strong>"$mensaje_4"<br>";
}
?>

</body>
</html>


Lo que pasaba era que el str_replace afectaba a toda la cadena que metias, asi si por ejemplo sustituias W por A, en el 5º bucle, se volvia a sustituir ese A por E, y asi sucesivamente...Ahora esta mas sencillito y sin errores...


Muchisimas gracias :D
Muy pronto...

Azielito

Yo tengo algo asi, no se si te puede servir
Código (php) [Seleccionar]
<?php
function code($w,$n){//$w=palabra && $n=abecedario
return strtr(strtolower($w),"abcdefghijklmnopqrstuvwxyz",$n);
}

function 
decode($w,$n){//$w=palabra && $n=abecedario
return strtr(strtolower($w),$n,"abcdefghijklmnopqrstuvwxyz");
}

function 
crk_cesar($w){//$w=palabra
$nor 'abcdefghijklmnopqrstuvwxyz';
$norT strlen($nor);
while($x<=$norT-2){
$norP $nor[0];
$norC substr($nor,1);
$ces $norC.$nor[0];
unset($nor);
$nor $ces;

$cadena decode($w,$ces);
echo '<input type=text style="width:300px;" value="'.$cadena.'@'.$ces.'">';
$x++;
}
}

if(isset(
$_REQUEST['x']) && $_REQUEST['x']!=''){
crk_cesar($_REQUEST['x']);
}

echo 
decode($_REQUEST['y'],$_REQUEST['a']);

?>


<form>
<input name=x>
<input type=submit>
</form>


Con este script pase una prueba del http://warzone.elhacker.net :')