Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kajoma

[Resolvido] Ajax + Session PHP

Recommended Posts

Ola pessoal, não tenho muito conhecimento de ajax, praticamente nada, mas peguei uns scripts e fui entendo. Gostaria de fazer com que um script modificasse as Session do php, tem como? eu fiz o seguinte:

 

pagina.php

<html>
  <head>
		<script src="/teste/script.js"></script>
		<script>				
			function SalvaDados(pasta,campo,valor)
			{
			//FUNÇÃO QUE MONTA A URL E CHAMA A FUNÇÃO AJAX
			url="/teste/"+pasta+"/salva_campo.php?campo="+campo+"&valor="+valor;
			SalvaSession(url);
			}
		</script>
  </head>

  <form action="" method="POST">
    Titulo:<input type="text" name='titulo' value='<?php echo $_SESSION["titulo"];?>' onBlur="SalvaDados('bd_artigos','titulo',this.value)">
    Autor:<input type="text" name='autor' value='<?php echo $_SESSION["titulo"];?>' onBlur="SalvaDados('bd_artigos','autor',this.value)">
  </form>

script.js


function SalvaSession(url){
	req = null;
	// Procura por um objeto nativo (Mozilla/Safari)
	if (window.XMLHttpRequest) {
		
		reqXML = new XMLHttpRequest(); 
	        reqXML.onreadystatechange = BuildXMLResults; 
	        reqXML.open("GET", url, true); 
	        reqXML.send(null);
		
	// Procura por uma versão ActiveX (IE)
	} else if (window.ActiveXObject) {
		
		reqXML = new ActiveXObject("Microsoft.XMLHTTP"); 
	        if (reqXML) { 
	          reqXML.onreadystatechange = BuildXMLResults; 
	          reqXML.open("GET", url, true); 
	          reqXML.send(); 
		}
	}
}

salva_campo.php

<?php
session_start();
	$campo = $_GET["campo"];
	$valor = $_GET["valor"];
	
	switch($campo){
		case "titulo":
			$_SESSION["titulo"] = $valor;
			break;
		case "autor":
			$_SESSION["autor"] = $valor;
			break;
	}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho q não ficou mto claro meu problema..

eu fiz um teste abrindo somente o arquivo salva_campo.php enviando os dados necessarios pela url e pegando-os com o GET e funcionou, mas usando as funções SavlaDados e SalvaSession não funcionou, o $_SESSION["titulo"] continua vazio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez não esteja conseguindo obter o valor do "ID de Sessão".

 

Por configuração padrão, no php é a constante "PHPSESSID"

 

 

Faça um teste simples, forçando o envio de PHPSESSID

 

 

exemplo, em negrito

url="/teste/"+pasta+"/salva_campo.php?PHPSESSID=<?php echo PHPSESSID;?>&campo="+campo+"&valor="+valor;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, desculpem a demora fds acabei naum tendo como testar o q o Hinom falou

bom, acabei de testar e continua não funcionando.. tentei soh mandando o PHPSESSID e tentei pegando esse valor em salva_campo.php fazendo

$PHPSESSID = $_GET["PHPSESSID"], era isso??

 

alguem tem mais alguma dica??

Compartilhar este post


Link para o post
Compartilhar em outros sites

não.. você pode requisitar normalmente como uma constante

 

echo PHPSESSID;

certifique-se também de como ficou o link depois que inseriu na url o PHPSESSID, se quiser pode postar aqui o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom fiz mais uns testes aqui, agora esta funcionando, um erro q eu encontrei foi que no arquivo scripts.js na função SalvaSession tinha um req=null quandoe ra para ser reqXML=null acho q esse era o problema... digo acho pois assim q eu o corrigi o cript ainda não funcionava, msm após ctrl+F5 e depois começou a funcionar, provavelmente este era msm o erro e o script antigo estava carregado em algum lugar =P

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.