Foros del Web » Programando para Internet » PHP »

Juego: "¿Dónde está el error?"

Estas en el tema de Juego: "¿Dónde está el error?" en el foro de PHP en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php echo eval ( 'eval("base64_decode(\"TG8gbG9ncmFzdGUuLi4=\");");' ) ; ¿Por qué no imprime el mensaje, y cuál mensaje es?...

  #61 (permalink)  
Antiguo 23/12/2010, 13:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Código PHP:
Ver original
  1. <?php
  2. echo eval('eval("base64_decode(\"TG8gbG9ncmFzdGUuLi4=\");");');
¿Por qué no imprime el mensaje, y cuál mensaje es?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #62 (permalink)  
Antiguo 23/12/2010, 13:09
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Juego: "¿Dónde está el error?"

Código PHP:
Ver original
  1. <?php
  2. eval('eval("echo base64_decode(\"TG8gbG9ncmFzdGUuLi4=\");");');
  3.  
  4. // Lo lograste...
  #63 (permalink)  
Antiguo 23/12/2010, 13:10
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por abimaelrc Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. echo eval('eval("base64_decode(\"TG8gbG9ncmFzdGUuLi4=\");");');
¿Por qué no imprime el mensaje, y cuál mensaje es?
Me parece que sobran los "eval()", los dos, y debería imprimir: Lo lograste...

por tanto, debería ser:

Código PHP:
Ver original
  1. <?php
  2. echo base64_decode("TG8gbG9ncmFzdGUuLi4=");

No lo he probado, pero en principio, debería funcionar.

Tambien debería ir con 1 eval:

Código PHP:
Ver original
  1. <?php
  2. echo eval("base64_decode(\"TG8gbG9ncmFzdGUuLi4=\");");

Parece que llego tarde :D
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #64 (permalink)  
Antiguo 23/12/2010, 13:15
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Juego: "¿Dónde está el error?"

el mensaje es lo lograste y no lo imprime porque eval si dentro de la funcion eval no existe la palabra return el resultado es NULL, como se acomoda diciendole el return
Código PHP:
Ver original
  1. echo eval(' return eval("return base64_decode(\"TG8gbG9ncmFzdGUuLi4=\");");');
saludos.
P.D: que otro coloque otra pregunta no he podido pensar en una funcion que tenga error aunque normalmente los cometo

edito
se me adelantaron y creo que de mejor manera
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #65 (permalink)  
Antiguo 23/12/2010, 13:38
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Código PHP:
Ver original
  1. <?php
  2. $arr = array('foo'=>'bar','baz'=>'candy');
  3. $arr2 = array_merge(array('twix'=>'snickers'),$arr);
  4. $arr3 = array_merge(array('twix'=>'apple'),$arr2);
  5. echo '<pre>';
  6. print_r($arr3);
  7. echo '</pre>';
Se supone que la llave twix contenga el valor apple, pero imprime snickers ¿Por qué?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #66 (permalink)  
Antiguo 23/12/2010, 13:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por abimaelrc Ver Mensaje
Se supone que la llave twix contenga el valor apple, pero imprime snickers ¿Por qué?
es sencillo, el segundo argumento de array_merge() es usado para sobre escribir al primero, de modo que $arr2 suple $arr3 eventualmente... (:

en dado caso, solo hay que invertir los argumentos:
Código PHP:
$arr3 array_merge($arr2,array('twix'=>'apple')); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #67 (permalink)  
Antiguo 23/12/2010, 13:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #68 (permalink)  
Antiguo 23/12/2010, 14:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Código PHP:
Ver original
  1. <?php
  2. $n = 2;
  3. echo $n==1 ?'op1'
  4.     : $n==2 ? 'op2'
  5.     : $n==3 ? 'op3' : 'op4';
Se supone que imprima op2 pero imprime op3 ¿Por qué?

Me estoy acordando de un montón de errores que me pasaron mientras programaba, así que seguiré mientras me acuerde de alguno.
Aunque se supone que el que lo logre es el que siga, pero en lo que postean...
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 23/12/2010 a las 14:32
  #69 (permalink)  
Antiguo 23/12/2010, 14:30
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Juego: "¿Dónde está el error?"

Código PHP:
Ver original
  1. <?php
  2. $n = 2;
  3. echo $n==1 ? 'op1' : ($n==2 ? 'op2' : ($n==3 ? 'op3' : 'op4'));


Cita:
Iniciado por abimaelrc
Me estoy acordando de un montón de errores que me pasaron mientras programaba, así que seguiré mientras me acuerde de alguno.
no eres el único al que le han pasado jajaaja ;D !
  #70 (permalink)  
Antiguo 23/12/2010, 14:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Pero escriban también el por que, no solo el resultado
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #71 (permalink)  
Antiguo 23/12/2010, 14:44
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Juego: "¿Dónde está el error?"

las expresiones ternarias se evalúan de izquierda a derecha

PD: disculpar lo vagas de mis respuestas... estoy siendo explotado en mi trabajo en estos momentos xD! ..
  #72 (permalink)  
Antiguo 23/12/2010, 14:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

a.php
Código PHP:
Ver original
  1. <?php
  2. echo 'foo';
b.php
Código PHP:
Ver original
  1. <?php
  2. echo file_get_contents('a.php');
Se supone que imprima en pantalla foo, pero sale en blanco, ¿Por qué?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #73 (permalink)  
Antiguo 23/12/2010, 14:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por abimaelrc Ver Mensaje
Se supone que imprima en pantalla foo, pero sale en blanco, ¿Por qué?
resulta que file_get_contents() no evalúa código... he ahí el detalle!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #74 (permalink)  
Antiguo 23/12/2010, 15:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Se me olvidaba escribir, hay al menos dos formas de lograr que se imprima en pantalla, por lo menos mencionen una y que no sea llamando el archivo a.php directamente.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #75 (permalink)  
Antiguo 23/12/2010, 15:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Otro ejercicio en lo que dan un ejemplo de como resolver el problema de file_get_contents
Código PHP:
Ver original
  1. <?php
  2. $a = 1;
  3. function change(){
  4.     global $a;
  5.     $a = 2;
  6. }
  7. change();
  8. echo $a;
Haciendo este ejercicio de esta forma, imprime 2 que es lo que debería imprimir, pero si lo hago así
Código PHP:
Ver original
  1. <?php
  2. $a = 1;
  3. function change(){
  4.     extract($GLOBALS);
  5.     $a = 2;
  6. }
  7. change();
  8. echo $a;
imprime 1 ¿Por qué no está imprimiendo 2 y cómo lo resolverías, aparte de usar global $a?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #76 (permalink)  
Antiguo 23/12/2010, 16:04
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Juego: "¿Dónde está el error?"

Saludos

Una posible solucion seria
Código PHP:
Ver original
  1. <?php
  2. $a = 1;
  3. function change(){
  4.     $a = 2;
  5.     return $a;
  6. }
  7. $a=change();
  8. echo $a;
  9. ?>
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #77 (permalink)  
Antiguo 23/12/2010, 16:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Bueno no solucionas en realidad el ejercicio, pero buen intento. Podrías en ese caso tratar de explicar por qué no funciona el segundo ejercicio.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #78 (permalink)  
Antiguo 23/12/2010, 16:13
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Juego: "¿Dónde está el error?"

Saludos


jejeeje no entiendo bien la dinámica hasta ahora estoy leyendo los post . Pero bueno si me puedes de paso explicar como es la dinámica

No va funcionar en el segundo caso ya que la función no esta retornando ningún valor, entonces al momento de llamarse no esta haciendo "nada" y como antes de la función esta declarada la variable $a con 1 ese es el valor que va tomar la variable.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #79 (permalink)  
Antiguo 23/12/2010, 16:15
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Si es así ¿por qué entonces cambia el valor del primer ejercicio?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #80 (permalink)  
Antiguo 23/12/2010, 16:20
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Juego: "¿Dónde está el error?"

como se declara como una variable global el valor de $a ya quedara guardada en todo el programa con el valor de 2 cada vez que se llame la funcion sin importar que antes por ejemplo se tenga

Código PHP:
Ver original
  1. $a=1
  2. change();
  3. echo $a;

Toma prioridad la variable global. Cosa que si cambiaría si lo tenemos de esta manera

Código PHP:
Ver original
  1. change();
  2. $a=1
  3. echo $a;

Cambiaria el valor de la variable en ese instante del programa mas no el valor de la variable global.
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 23/12/2010 a las 16:27
  #81 (permalink)  
Antiguo 23/12/2010, 16:29
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por Nano_ Ver Mensaje
Toma prioridad la variable global. Cosa que si cambiaría si lo tenemos de esta manera
Claro que cambiaría; devolvería tremendo error de sintaxis jejeje.
  #82 (permalink)  
Antiguo 23/12/2010, 16:31
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Juego: "¿Dónde está el error?"

Error de Sintaxys ???... No metacortex por que lo dices?
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #83 (permalink)  
Antiguo 23/12/2010, 16:37
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Te comiste un ";"
  #84 (permalink)  
Antiguo 23/12/2010, 16:38
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Juego: "¿Dónde está el error?"

jejejejejejejeje a bestia si se me fue ejejeje
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #85 (permalink)  
Antiguo 23/12/2010, 17:38
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Juego: "¿Dónde está el error?"

Ya que nadie escribio nada y lei tarde este tema... pongo un problema a ver quien sabe el xq el resultado?

Cuando se imprime el siguiente codigo... que hay de malo con la linea 31 y 32 (la variable $i)... El error aparece en rojo.

Código PHP:
Ver original
  1. for($i = 1 ; $i < 40 ; $i++){
  2.         $j = 1 << $i ;     
  3.         if(!isset($tmp)) $tmp = 1 ;
  4.         if($j == ($tmp * 2)) echo '<pre style="color: blue">' . $i . '. ok</pre>' ;
  5.         else echo '<pre style="color: red">' . $i . '. bad</pre>' ;
  6.         $tmp = $j ;
  7.     }
  #86 (permalink)  
Antiguo 23/12/2010, 18:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

¿Sabes la respuesta? Porque si no, te recomiendo que crees un tema.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #87 (permalink)  
Antiguo 23/12/2010, 18:45
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Todavia no han contestado el ejercicio que dejé.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #88 (permalink)  
Antiguo 23/12/2010, 19:28
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por BloodShadow Ver Mensaje
Ya que nadie escribio nada y lei tarde este tema... pongo un problema a ver quien sabe el xq el resultado?
Sólo pueden lanzar el tiro quien responda correctamente al anterior y al mismo tiempo esa respuesta debe ser validada por... Mejor lee las reglas en el primer post.
  #89 (permalink)  
Antiguo 23/12/2010, 19:40
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por abimaelrc Ver Mensaje
Otro ejercicio en lo que dan un ejemplo de como resolver el problema de file_get_contents
Código PHP:
Ver original
  1. <?php
  2. $a = 1;
  3. function change(){
  4.     global $a;
  5.     $a = 2;
  6. }
  7. change();
  8. echo $a;
Haciendo este ejercicio de esta forma, imprime 2 que es lo que debería imprimir, pero si lo hago así
Código PHP:
Ver original
  1. <?php
  2. $a = 1;
  3. function change(){
  4.     extract($GLOBALS);
  5.     $a = 2;
  6. }
  7. change();
  8. echo $a;
imprime 1 ¿Por qué no está imprimiendo 2 y cómo lo resolverías, aparte de usar global $a?
Definiendo la primera variable $a como null y dándole salida a la función.

Código PHP:
Ver original
  1. <?php
  2. $a = null;
  3. function change(){
  4.     extract($GLOBALS);
  5.     $a = 2;
  6.     echo $a;
  7. }
  8. change();
  9. echo $a;
  10. ?>
  #90 (permalink)  
Antiguo 23/12/2010, 20:02
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Eh... No hagan caso a la burrada anterior.

Si usamos $GLOBALS, el nombre de la variable se convierte en la clave de un array. Le asignamos un nuevo valor a la clave y listo.

Código PHP:
Ver original
  1. <?php
  2. $a = 1;
  3. function change(){
  4.     $GLOBALS['a'] = 2;
  5. }
  6. change();
  7. echo $a;
  8. ?>

Etiquetas: a-por-la-vecina-de-meta, juegos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 40 personas




La zona horaria es GMT -6. Ahora son las 10:10.