<?

// elimina chiavi (separate da uno spazio) all'interno della query
function query_elimina($chiavi, $query="NULLA") {
	global $_SERVER;

	if ($query=="NULLA")
		$query = $_SERVER['QUERY_STRING'];

	if ($query=="") return "";

	$lista_elimina=explode(" ", $chiavi);

	$return_query="";
	$query_esplosa=explode("&", $query);

	for ($j=0; $j<count($query_esplosa); $j++, $cambiato="") { // scorro tutte le chiavi
		$temp=explode("=",$query_esplosa[$j]);

		for ($i=0; $i<count($lista_elimina); $i++) // scorro le chiavi da togliere ..
			if ($temp[0] == $lista_elimina[$i]) { // Trovata! La chiave e' da togliere!
				$cambiato=1;
				$modificata=1;
			} // if temp[0]

		if ($cambiato=="") // Se e' da togliere.. non la metto
			$return_query .= "$temp[0]=$temp[1]&";

	} // for i

	$return_query=substr($return_query,0,-1);

	return $return_query;

} // query elimina

// Cambia il valore della chiave all'interno della query ..
function query_cambia($chiave, $valore, $query="NULLA") {
	global $_SERVER;

	if ($query=="NULLA")
		$query = $_SERVER['QUERY_STRING'];

	if ($query=="") return "$chiave=$valore";

	// Quando si cambia il valore di qualche chiave bisogna di solito eliminarne
	// qualcun altra.. specificarla qua:
	switch ($chiave) {
		// quando cambio id in index.php devo eliminare page e ricerca=sottometti, che
		// non servon piu'..
		case "id": $elimina="page ricerca"; break;
		default: $elimina=""; // Di default non cancelliamo niente
	} // switch chiave

	if ($elimina!="")
		$query=query_elimina($elimina,$query);

	$return_query=""; $cambiato=0;
	$query_esplosa=explode("&", $query);
	for ($i=0; $i<count($query_esplosa); $i++) {
		$temp=explode("=",$query_esplosa[$i]);
		if ($temp[0]==$chiave) { // Ecco la chiave che cercavo
			$temp[1]=urlencode($valore);
			$cambiato=1;
		} // if temp[0]
		$return_query .= $temp[0]."=".$temp[1]."&";
	} // for i

	if (!$cambiato) // Non c'era la chiave.. la aggiungo!
		$return_query .= "$chiave=".urlencode($valore)."&";

return substr($return_query,0,-1);
} // query_cambia

?>