Si lo haces como los estás planteando ..debes usar isset() para ver si está o no definida dicha variable ..
Ademas, en tu ejemplo de los botones .. el "name" es para PHP la varible .. y PHP puede ser "case sensitive" (sensible a mayusculas) ..
Y ..mejor usar if .. else if ..
Código PHP:
if (isset($_GET['Calcular'])){
//proceso calcular
} elseif (isset($_GET['Guardar'])) {
//proceso guardar
} else {
// aquí el formulario donde pidas esos datos ..
}
La opción que te planteo .. usando el switch() es muchooo más claro y ordenado el código (pese que tengas sólo dos opciones + 1 extra "por defecto" .. que sería el caso de llamadas a esa página sin indicar esas variables ..)
En el ejemplo que te puse .. la parte de javascript que te hacia referencia es:
Código PHP:
<form name="formulario" action="igualpagina.php" method="GET">
<!-- La variable oculta que le damos "value" vía javascript -->
<input type="hidden" name="accion">
<input type="button" name="Calcular" onClick="document.formulario.accion.value='calcular';this.form.submit()" >
<input type="button" name="Guardar" onClick="document.formulario.accion.value='guardar';this.form.submit()" >
</form>
Entre otras cosas .. con la opción del campo hidden y javascript me evito problemas con el nombre de la variable que tendría el botón .. para tener libertad en poner nombre del boton (el texto que tendrá) cómo: "lo que sea bla bla" ..
Un saludo,
pd: Si no funciona correctamente la parte javacript .. pregunta mejor en el foro javacript (lo escribí e memoria y .. javascript no es mi fuerte xD)