Foros del Web » Programando para Internet » PHP »

Problema al setear cookie

Estas en el tema de Problema al setear cookie en el foro de PHP en Foros del Web. Hola, estoy seteando unas cookies para pasar los datos y el caso es q me hace perfectamente el Post pero a la hora de setear ...
  #1 (permalink)  
Antiguo 07/10/2011, 05:23
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Problema al setear cookie

Hola,
estoy seteando unas cookies para pasar los datos y el caso es q me hace perfectamente el Post pero a la hora de setear las cookies no me lo hace bien. antes de hacer el set le indico q me la elimine pero en el navegador no me lo respeta.
Código PHP:
$date1 $_POST['date1'];
if (isset(
$_POST['date1'])){
    
$date1 "'".$_POST['date1']."'";
    
setcookie("date1",time() - 3600);
    
setcookie("date1",$_POST['date1']);
    
//echo $date1;
} else {
    echo 
"no existe  ";

en javascript lo recojo del modo
Código:
url: "consulta3.php?date1="+ReadCookie('date1')+"&date2="+ReadCookie('date2')+"&especies="+encodeURI(ReadCookie('especies')),
voy a ver las cookies en las opciones de firefox y efectivamente me mete las cookies q le paso, pero no me hace reload de los datos.
  #2 (permalink)  
Antiguo 07/10/2011, 09:02
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 3 meses
Puntos: 297
Respuesta: Problema al setear cookie

¿Y como eliminas las cookies? de todas formas te las estás pisando:

Código PHP:
Ver original
  1. setcookie("date1",time() - 3600);
  2. setcookie("date1",$_POST['date1']);
  #3 (permalink)  
Antiguo 07/10/2011, 10:17
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 4 meses
Puntos: 19
Respuesta: Problema al setear cookie

exacto estas eliminando una cookie y la creas inmediatamente luego, entonces que es lo que buscas hacer???
  #4 (permalink)  
Antiguo 07/10/2011, 12:01
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problema al setear cookie

pues como no me actualizaba la cookie, pense en cargarmela primero por si seguia en cache y una vez q la eliminase setearla.
tengo el script javascript q extrae y lee la cookie:
Código:
<script>
function extractCookieValue(val) {
  if ((endOfCookie = document.cookie.indexOf(";", val)) == -1) {
     endOfCookie = document.cookie.length;
  }
  return unescape(document.cookie.substring(val,endOfCookie));
}

function ReadCookie(cookiename) {
  var numOfCookies = document.cookie.length;
  var nameOfCookie = cookiename + "=";
  var cookieLen = nameOfCookie.length;
  var x = 0;
  while (x <= numOfCookies) {
        var y = (x + cookieLen);
        if (document.cookie.substring(x, y) == nameOfCookie)
           return (extractCookieValue(y));
           x = document.cookie.indexOf(" ", x) + 1;
           if (x == 0){
              break;
           }
  }
  return (null);
}
</script>
de todos modos hay un punto del q no hable y me acabo de dar cuenta al releer el mensaje. la consulta php recibe los datos de un form q envio por ajax para evitar la recarga de la pagina.
Código:
<script type="text/javascript">
function enviarDatos(){
	var formulario = document.getElementById("formulario");
	var datos = new FormData(formulario);
	probadate1=document.getElementById('date1');
    proba_date1=probadate1.value;
    probadate2=document.getElementById('date2');
    proba_date2=probadate2.value;
	probachooser=document.getElementById('especies');
	// completar la seguiente linea para obtener los values seleccionados en "selector"
	var txt='';
	var i;
	var count = 0;
	for (i=0; i<probachooser.options.length; i++) {
	    if (probachooser.options[i].selected) {
	      if (count==0)
		txt+= "'"+probachooser.options[i].value+"'";
	      else
	     txt+= "#'"+probachooser.options[i].value+"'";
	    }
	count++;
	}
	//hace la comparacion de las dos fechas
	compareDates('datechooser','date1','date2');
    url_proba='date1='+proba_date1+'&date2='+proba_date2+'&especies='+txt;
	xhr(url_proba);
}
var xmlhttp; 
function xhr(datos){ //funcion para crear las peticiones de XMLHttpResquest
// Generalmente sacada de páginas que usan un método para IE6 o anteriores,
// IE 7, FF, Opera, Google Chrome, u otros.
		if (window.XMLHttpRequest)
  			{// code for IE7+, Firefox, Chrome, Opera, Safari
  				xmlhttp=new XMLHttpRequest();
	  		}
		else
	  		{// code for IE6, IE5
  				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  		}
		xmlhttp.onreadystatechange = procesarRespuesta; //Ojo sin parentesis
		xmlhttp.open("POST", "consulta2.php", true); 
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", 3);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.send(datos);
		}
	function procesarRespuesta(){
		if(xmlhttp.readyState == 4) {
      		if(xmlhttp.status == 200) {
			//recarga el grid al hacer la peticion. de salida esta a false para que no lo muestre.
				store.load();
				
			}
    	}
}
</script>
la otra parte del codigo q puse en el mensaje original pasando las cookies, rellenaria el grid de datos con el Json y ese store de datos se carga con el store.load(); y claro como no setea bien la cookie lo rellena la primera vez y hasta q recargo la pagina no me deja hacer nada mas. si hace el POST de los datos q envio con este script, pero no me hace el GET por culpa del problema de las cookies.

Etiquetas: cookie
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




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