Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: RevolucionVegana en 7 Agosto 2017, 23:03 pm



Título: Duda con arrays en PHP
Publicado por: RevolucionVegana en 7 Agosto 2017, 23:03 pm
Buenas a todos me preguntaba si se puede declarar un array de esta forma:

Código
  1. //new_fav_array sería el array
  2. //size_old_fav_array sería una variable que almacena un entero
  3.  
  4. $new_fav_array[$size_old_fav_array];
  5.  
  6.  

Y también si se puede pasar un array a una función de esta forma:

Código
  1.  
  2. serialize($new_fav_array)
  3.  
  4.  

Y por último si se puede pasar de esta forma:

Código
  1.  
  2. mostrar($new_fav_array[$i]);
  3.  
  4.  

Muchas gracias y un saludo!


Título: Re: Duda con arrays en PHP
Publicado por: #!drvy en 8 Agosto 2017, 00:48 am
Citar
me preguntaba si se puede declarar un array de esta forma:

No. En todo caso seria:
Código
  1. $new_fav_array[] = $size_old_fav_array;

o

Código
  1. $new_fav_array[$index] = $size_old_fav_array;



Citar
Y también si se puede pasar un array a una función de esta forma:

Si.



Citar
Y por último si se puede pasar de esta forma:

Si, pero solo pasarias el valor del indice indicado.

Saludos


Título: Re: Duda con arrays en PHP
Publicado por: RevolucionVegana en 8 Agosto 2017, 02:03 am
Vale muchas gracias, esa parte ya la he solucionado ahora estoy haciendo unas pruebas con el tema de las COOKIES porque tengo un problema con ellas, quizás me puedas echar una mano mira:

Código
  1. <?php
  2.  
  3. $nombres[]="Susanita";
  4. $nombres[]="tiene";
  5. $nombres[]="un";
  6. $nombres[]="raton";
  7.  
  8. echo $nombres[0];
  9. echo $nombres[1];
  10. echo $nombres[2];
  11. echo $nombres[3];
  12.  
  13. echo "<br />";
  14.  
  15.  
  16. if(isset($_COOKIE['favcookie'])){
  17.  
  18. echo "La cookie existe.";
  19. }else{
  20.  
  21. echo "La cookie NO existe.";
  22. }
  23.  
  24. $cookie_name = "favcookie";
  25. setcookie($cookie_name, serialize($nombres), time() + (86400 * 30), "/"); // 86400 = 1 day
  26.  
  27. $prueba_array_cookie = unserialize($_COOKIE['favcookie']);
  28.  
  29. foreach($prueba_array_cookie as $valor){
  30.  
  31. echo $valor;
  32.  
  33. }
  34.  
  35.  
  36.  
  37. ?>

El problema lo tengo en que siempre me dice que SÍ existe la cookie cuando no debería ser así, es decir si yo abro un navegador en modo privado que no contiene cookies, y entro al archivo al principio debería mostrarme en pantalla que no existe la cookie, y cuando vuelva a recargar me debería mostrar que sí existe porque se ha creado al final de ese archivo, o es que las cookies son lo primero que se crea? Como va el tema?, muchas gracias!

PD: Me cago en el p*** https


Título: Re: Duda con arrays en PHP
Publicado por: #!drvy en 8 Agosto 2017, 02:10 am
He hecho la prueba con tu script, y funciona según debe. Primero me pone que no existe, y a la próxima recarga que si.

Prueba hacer un var_dump sobre $_COOKIE antes de ponerla para ver que cookies te responde que tiene.

Saludos


Título: Re: Duda con arrays en PHP
Publicado por: RevolucionVegana en 8 Agosto 2017, 02:23 am
Vale entonces mi problema lo tengo al destruir la cookie, hasta ahora he estado usando esto:

Código
  1.  
  2. <?php
  3.  
  4.  
  5. unset($_COOKIE['favcookie']);
  6.  
  7.  
  8. ?>
  9.  
  10.  

Pero veo que no funciona correctamente, acabo de probar esto que me lo he cogido de stackoverflow y sí que me funciona bien:

Código
  1.  
  2. <?php
  3.  
  4.  
  5. unset($_COOKIE['favcookie']);
  6. setcookie('favcookie', null, -1, '/');
  7.  
  8.  
  9. ?>
  10.  
  11.  

He mirado en la documentación de php:

Citar
setcookie — Enviar una cookie

Pero no acabo de pillar como es que setcookie() hace como que la borra, que hace exactamente la borra, la inhabilita? xD

Gracias eh drvy!




Título: Re: Duda con arrays en PHP
Publicado por: #!drvy en 8 Agosto 2017, 02:39 am
Las cookies en si no se pueden borrar directamente. Tienes que decirle al navegador que han expirado para que las borre el. Por eso unset() no funciona.

De todos modos, te recomiendo empezar a trabajar con SESSIONES cuanto antes. Son mucho más cómodas y seguras. Y obviamente te permiten manejaras a tu antojo.

http://php.net/manual/es/session.examples.basic.php

Saludos


Título: Re: Duda con arrays en PHP
Publicado por: RevolucionVegana en 8 Agosto 2017, 02:47 am
Las cookies en si no se pueden borrar directamente. Tienes que decirle al navegador que han expirado para que las borre el. Por eso unset() no funciona.

De todos modos, te recomiendo empezar a trabajar con SESSIONES cuanto antes. Son mucho más cómodas y seguras. Y obviamente te permiten manejaras a tu antojo.

http://php.net/manual/es/session.examples.basic.php

Saludos

Si para los login y eso uso sesiones pero pensaba que solo servían para esa sesion del navegador, es decir, que cuando se cierra el navegador ya no existe la sesion, las sesiones también pueden durar 1 mes?

Saludos


Título: Re: Duda con arrays en PHP
Publicado por: #!drvy en 8 Agosto 2017, 02:53 am
Citar
las sesiones también pueden durar 1 mes?

Si quieres si.

https://stackoverflow.com/a/9797962

Saludos


Título: Re: Duda con arrays en PHP
Publicado por: RevolucionVegana en 8 Agosto 2017, 03:09 am
Vale pues excelente drvy me ayudaste muchísimo y por cierto, ya que veo que te interesa el tema de la seguridad por si acaso todavía no lo habías visto, he leído en stackoverflow (esta mañana) que serialize y unserialize no son seguros, ya lo cambiaré en un futuro solo que ahora tengo prisa con esto, gracias de nuevo y un saludo drvy!