Recordar a usuarios entre distintas sesiones con cookies

ZF no dispone de ninguna función para establecer cookies, para ello se debe usar la función nativa PHP setcookie() que define una cookie para ser enviada junto con el resto de las cabeceras de HTTP. Al igual que otras cabeceras, las cookies deben ser enviadas antes de que el script genere ninguna salida (es una restricción del protocolo). Ésto implica que las llamadas a esta función se coloquen antes de que se genere cualquier salida, incluyendo las etiquetas <html> y <head> al igual que cualquier espacio en blanco.

Una vez que han sido enviadas las cookies, se puede acceder a ellas en la próxima carga de la página gracias a los arrays $_COOKIE o $HTTP_COOKIE_VARS. Nótese que las superglobales tales como $_COOKIE están disponibles a partir de PHP 4.1.0. El valor de las cookies también está en $_REQUEST.

Para establecer una cookie utilizaremos:
  setcookie('cookieName', 'value', 'lifetime', 'path', 'domain');

Para leer una cookie, se puede usar Zend_Controller_Request_Http(); como por ejemplo:

  $request = new Zend_Controller_Request_Http();
 $myCookie = $request->getCookie('cookieName'); 

¿Cual es la diferencia entre setcookie('cookie_name','cookie_value'); y $cookie=new Zend_Http_Cookie('cookie_name','cookie_value','.google.com'); 
Aclaración: setcookie() establece la cookie enviándola al navegador, mientras que Zend_Http_Cookie,  es una clase que representa a una cookie HTTP (no sirve para establecer cookies, sino para crear un objeto con los datos de una cookie ya leída). Digamos que quieres mostrar sólo ciertos contenidos del site cuando el usuario está logado. Se puede usar Zend_Http_Client para enviar tus credenciales al formulario de login, el servidor al recibir las credenciales devolverá una cookie. Puedes posteriormente incluir esa cookie de sesión en una subsiguiente petición a la página a la que quieres  atacar para simular que un usuario logado está viendo la página.
<!–nextpage–>
Pregunta: i also tried the normal setcookie() and $_COOKIE[‘cookie_var’] method but it only lives in that particular Controller, when i tried to access $_COOKIE[] from another file. it wont coming..
Respuesta: objects are not transfered on other controllers..
if you initialize object in one controller it wont be available in any other controller unless you:a) save object in your register and retrieve it from there
b) initialize new object
c) move that part of code to your action controller (my_action_controller extends zend_action_controller) witch will then make it available to all controllers by extending my_action_controlleri think that there might be a static method for getting cookies (like for registry) but im not quite sure, take a closer look at class..
<!--nextpage-->

<?php
//Para crear una cookie debemos hacer lo siguiente:
setcookie("nombre_cookie","valor_cookie","tiempo_de_duracion_en_segundos");
setcookie("pass_MKD", "$_POST[password_MKD]", time () + 604800); 

//Para acceder a esta cookie
echo $_COOKIE['nombre_cookie']; //Se mostraría "valor_cookie"

//Para eliminar una cookie
setcookie("nombre_cookie");
?>

<?
If($_COOKIE['nombre_cookie'] == "pass12345") {
echo "Contraseña correcta"; //Luego usas un header si quieres.
} else {
echo "Contraseña incorrecta";
?>

<!--nextpage-->

http://www.desarrolloweb.com/articulos/autenticar-usuario-guardar-cookie-php.html

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s