Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Alarkon_88 en 19 Julio 2018, 19:15 pm



Título: [Resuelto] Problema simple al usar base64_decode en php
Publicado por: Alarkon_88 en 19 Julio 2018, 19:15 pm
Hola que tal, tengo el siguiente problema:

Tengo este enlace en mi archivo php

Código
  1. <a href="operacionales.php?name=<?php echo base64_encode('name'); ?>

Recibo el valor name de un input de texto hasta ahora todo bien el valor llega cifrado a la url, ok el problema es el siguiente tengo otra pagina php donde de la url que me entrega muestro el valor en la pagina nueva deberia funcionar asi pero no me sirve me muestra

Código
  1. Ok amigo <?php echo base64_decode('name');?> recibimos tu reporte

No se que estoy haciendo mal solo lo que quiero es que me muestre la variable descifrada


Título: Re: Problema simple al usar base64_decode en php
Publicado por: engel lex en 19 Julio 2018, 19:20 pm
Citar
la pagina nueva deberia funcionar asi pero no me sirve me muestra

Código
  1. Ok amigo <?php echo base64_decode('name');?> recibimos tu reporte

es decir, te muestra literalmente ese texto?


Título: Re: Problema simple al usar base64_decode en php
Publicado por: Alarkon_88 en 19 Julio 2018, 19:27 pm
Me sale esto: Notice: Undefined variable: name

Por ejemplo yo recibo desde el input esto:   name=CARLOS y con lo de el base64_encode me llegaria algo asi a la URL name=bmFtZQ==

entonces yo en el nuevo php quiero que me muestre un texto que contenga la misma variable que se envio pero decodificada que diga por ejemplo  "Ok CARLOS perfecto recibimos tu reporte y utilizo este codigo

Código
  1. <?php echo base64_decode($name); ?>

y me marca error


Título: Re: Problema simple al usar base64_decode en php
Publicado por: engel lex en 19 Julio 2018, 19:28 pm
ahí tienes tu error
Código:
Notice: Undefined variable: name

porque $name no está definida... seguramente no estás leyendo el $_GET


Título: Re: Problema simple al usar base64_decode en php
Publicado por: Alarkon_88 en 19 Julio 2018, 19:32 pm
Como haria en este caso?  he colocado asi y me marca error

Código
  1. <?php
  2.   echo base64_decode $_GET($name);
  3. ?>
  4.  

pero si lo coloco de esta manera

Código
  1. <?php echo $_GET['name'];?>

me muestra la variable cifrada y lo que quiero es que me salga descifrada con el base64_decode, gracais amigo lo que pasa es que soy nuevo como puedo hacer? gracias


Título: Re: Problema simple al usar base64_decode en php
Publicado por: engel lex en 19 Julio 2018, 19:35 pm
creo que antes de tirarte a hacer cosas, deberías aprender lo basico de la programación en php, si no, vas a pasar más tiempo intentando resolver errores tontos que realmente aprendiendo... en este punto veo que careces incluso del conocimiento basico de las estructuras de control :s

malo
Código
  1. <?php
  2.   echo base64_decode $_GET($name);
  3. ?>

incorrecto
Código
  1. <?php echo $_GET['name'];?>

Código
  1. echo base64_decode($_GET['name']);


Título: Re: Problema simple al usar base64_decode en php
Publicado por: Alarkon_88 en 19 Julio 2018, 19:35 pm
Lo he colocado de esta forma

Código
  1. <?php echo base64_decode $_GET['name'];?>

y me marca el siguiente error:

Parse error: syntax error, unexpected '$_GET' (T_VARIABLE), expecting ',' or ';' in acional.php on line 539


Título: Re: Problema simple al usar base64_decode en php
Publicado por: engel lex en 19 Julio 2018, 19:36 pm
Lo he colocado de esta forma

Código:
<?php echo base64_decode $_GET['name'];?>

y me marca el siguiente error:

Parse error: syntax error, unexpected '$_GET' (T_VARIABLE), expecting ',' or ';' in acional.php on line 539

y por qué la pusiste así? te acabo de dar la solución...


Título: Re: Problema simple al usar base64_decode en php
Publicado por: Alarkon_88 en 19 Julio 2018, 19:38 pm

lo he colocado como me has dicho de esta forma

Código
  1. <?php echo base64_decode($_GET['name']); ?>

y solo me sale Ok name, tu reporte fue enviado.


Título: Re: Problema simple al usar base64_decode en php
Publicado por: engel lex en 19 Julio 2018, 19:41 pm
me atengo a mi anterior comentario :s

Citar
creo que antes de tirarte a hacer cosas, deberías aprender lo basico de la programación en php, si no, vas a pasar más tiempo intentando resolver errores tontos que realmente aprendiendo... en este punto veo que careces incluso del conocimiento basico de las estructuras de control :s

http://php.net/manual/es/function.base64-decode.php (http://php.net/manual/es/function.base64-decode.php)

Citar
Valores devueltos

Devuelve los datos originales o FALSE en caso de error. ...

es decir, lo que ves no es un error


Título: Re: Problema simple al usar base64_decode en php
Publicado por: Alarkon_88 en 19 Julio 2018, 19:44 pm
Entiendo amigo estoy muy agradecido por tu ayuda, se que no se casi nada de esto pero estoy intentando hacerlo solo me faltaria esto para finalizar lo que estoy haciendo   :-( que podria hacer para que me muestre el nombre exacto como lo ingreso en el input



No entiendo porque solo dice name si en la url sale asi

acional.php?name=bmFtZQ


Título: Re: Problema simple al usar base64_decode en php
Publicado por: engel lex en 19 Julio 2018, 19:49 pm
Entiendo amigo estoy muy agradecido por tu ayuda, se que no se casi nada de esto pero estoy intentando hacerlo solo me faltaria esto para finalizar lo que estoy haciendo   :-( que podria hacer para que me muestre el nombre exacto como lo ingreso en el input

te digo.. bmFtZQ== es el base64 de la palabra 'name', Q0FSTE9T es 'CARLOS'...

y tu codigo nunca envía CARLOS

Citar
<a href="operacionales.php?name=<?php echo base64_encode('name'); ?>



No hagas doble post (dos respuestas seguidas)... si quieres agregar algo, usa el botón modificar


Título: Re: Problema simple al usar base64_decode en php
Publicado por: Alarkon_88 en 19 Julio 2018, 19:59 pm
Listo amigo gracais eso era todo excelente eres genial. ;-)


Título: Re: Problema simple al usar base64_decode en php
Publicado por: WHK en 19 Julio 2018, 20:36 pm
Porque pasar el dato en base64?

Mucho ojo, vas a tener problemas en la url ya que base64 por estandar también hace uso del caracter plus "+" y este mismo valor también es utilizado en el estandar del formato de url, ya que plus significa espacio en blanco, asi que puede que en algunos casos el valor no sea correctamente interpretado. Para prevenir este problema debes incluir en el enlace un urlencode() para que plus se transforme en %2b. también en algunos casos los sistemas de protección como un waf te pueden arrojar falsos positivos y denegar el acceso legítimo a personas debido a que el base64 puede contener caracteres como / + y = los cuales tambien se pueden usar para ataques de tipo directory traversal.

Te recomiendo que te replantees el uso de base64 para el traspaso de datos.

Saludos.