Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: DaXGoN en 25 Septiembre 2009, 17:37 pm



Título: [Duda] array mal hecho
Publicado por: DaXGoN en 25 Septiembre 2009, 17:37 pm
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>


Título: Re: [Duda] Remplazar caracteres de una variable POST
Publicado por: 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 ¬¬


Título: Re: [Duda] Remplazar caracteres de una variable POST
Publicado por: DaXGoN en 26 Septiembre 2009, 10:11 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


Título: Re: [Duda] array mal hecho
Publicado por: 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 ;)


Título: Re: [Duda] array mal hecho
Publicado por: DaXGoN en 26 Septiembre 2009, 14:20 pm
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 =


Título: Re: [Duda] array mal hecho
Publicado por: XafiloX en 28 Septiembre 2009, 20:29 pm
Ahi va bien hecho...
Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Ejemplo 2</title>
  6. </head>
  7. <body>
  8. <form action="count.php" method="POST">
  9. Para descifrar: <input type="text" name="mensaje" />
  10. <input type="checkbox" name="opcion_4" />Desencriptacion 4
  11. </select>
  12. <br /><input type="submit" value="descifrar!" />
  13. </form>
  14. <?php
  15. $decrypt_4 = $HTTP_POST_VARS["opcion_4"];
  16. $mensaje_4 = $HTTP_POST_VARS["mensaje"];
  17. $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");
  18. $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");
  19. $conteo = strlen($mensaje_4);
  20. if ($decrypt_4) {
  21.    for ($i = 0; $i < $conteo; $i++){
  22. $key = array_search($mensaje_4[$i], $sol);
  23. $mensaje_4[$i] = $rep[$key];
  24.    }
  25.    echo "<strong>Desencriptacion 4: </strong>", $mensaje_4, "<br>";
  26. }
  27. ?>
  28. </body>
  29. </html>
  30.  

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...


Título: Re: [Duda] array mal hecho
Publicado por: XafiloX en 28 Septiembre 2009, 20:32 pm
Ahi va bien hecho...
Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Ejemplo 2</title>
  6. </head>
  7. <body>
  8. <form action="count.php" method="POST">
  9. Para descifrar: <input type="text" name="mensaje" />
  10. <input type="checkbox" name="opcion_4" />Desencriptacion 4
  11. </select>
  12. <br /><input type="submit" value="descifrar!" />
  13. </form>
  14. <?php
  15. $decrypt_4 = $HTTP_POST_VARS["opcion_4"];
  16. $mensaje_4 = $HTTP_POST_VARS["mensaje"];
  17. $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");
  18. $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");
  19. $conteo = strlen($mensaje_4);
  20. if ($decrypt_4) {
  21.    for ($i = 0; $i < $conteo; $i++){
  22. $key = array_search($mensaje_4[$i], $sol);
  23. $mensaje_4[$i] = $rep[$key];
  24.    }
  25.    echo "<strong>Desencriptacion 4: </strong>", $mensaje_4, "<br>";
  26. }
  27. ?>
  28. </body>
  29. </html>
  30.  

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...



Título: Re: [Duda] array mal hecho
Publicado por: DaXGoN en 28 Septiembre 2009, 21:15 pm
Ahi va bien hecho...
Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Ejemplo 2</title>
  6. </head>
  7. <body>
  8. <form action="count.php" method="POST">
  9. Para descifrar: <input type="text" name="mensaje" />
  10. <input type="checkbox" name="opcion_4" />Desencriptacion 4
  11. </select>
  12. <br /><input type="submit" value="descifrar!" />
  13. </form>
  14. <?php
  15. $decrypt_4 = $HTTP_POST_VARS["opcion_4"];
  16. $mensaje_4 = $HTTP_POST_VARS["mensaje"];
  17. $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");
  18. $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");
  19. $conteo = strlen($mensaje_4);
  20. if ($decrypt_4) {
  21.    for ($i = 0; $i < $conteo; $i++){
  22. $key = array_search($mensaje_4[$i], $sol);
  23. $mensaje_4[$i] = $rep[$key];
  24.    }
  25.    echo "<strong>Desencriptacion 4: </strong>", $mensaje_4, "<br>";
  26. }
  27. ?>
  28. </body>
  29. </html>
  30.  

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


Título: Re: [Duda] array mal hecho
Publicado por: Azielito en 29 Septiembre 2009, 21:41 pm
Yo tengo algo asi, no se si te puede servir
Código
  1. <?php
  2. function code($w,$n){//$w=palabra && $n=abecedario
  3. return strtr(strtolower($w),"abcdefghijklmnopqrstuvwxyz",$n);
  4. }
  5.  
  6. function decode($w,$n){//$w=palabra && $n=abecedario
  7. return strtr(strtolower($w),$n,"abcdefghijklmnopqrstuvwxyz");
  8. }
  9.  
  10. function crk_cesar($w){//$w=palabra
  11. $nor = 'abcdefghijklmnopqrstuvwxyz';
  12. $norT = strlen($nor);
  13. while($x<=$norT-2){
  14. $norP = $nor[0];
  15. $norC = substr($nor,1);
  16. $ces = $norC.$nor[0];
  17. unset($nor);
  18. $nor = $ces;
  19.  
  20. $cadena = decode($w,$ces);
  21. echo '<input type=text style="width:300px;" value="'.$cadena.'@'.$ces.'">';
  22. $x++;
  23. }
  24. }
  25.  
  26. if(isset($_REQUEST['x']) && $_REQUEST['x']!=''){
  27. crk_cesar($_REQUEST['x']);
  28. }
  29.  
  30. echo decode($_REQUEST['y'],$_REQUEST['a']);
  31.  
  32. ?>
  33.  
  34. <form>
  35. <input name=x>
  36. <input type=submit>
  37. </form>

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